Compare commits
6 Commits
Author | SHA1 | Date | |
---|---|---|---|
8f00d2a593 | |||
1606b641d4 | |||
c4e7029b5d | |||
8750ea06e5 | |||
69a9f7b9fb | |||
7abc9fdbd3 |
@ -1,15 +1,16 @@
|
||||
CMAKE_MINIMUM_REQUIRED (VERSION 3.2)
|
||||
PROJECT (DKS)
|
||||
SET (DKS_VERSION_MAJOR 1)
|
||||
SET (DKS_VERSION_MINOR 0.1)
|
||||
SET (DKS_VERSION_MINOR 0)
|
||||
SET (DKS_VERSION_PATCH 2)
|
||||
SET (PACKAGE \"dks\")
|
||||
SET (PACKAGE_BUGREPORT \"locagoons.uldis@psi.ch\")
|
||||
SET (PACKAGE_NAME \"DKS\")
|
||||
SET (PACKAGE_STRING \"DKS\ 1.0.1\")
|
||||
SET (PACKAGE_TARNAME \"dks\")
|
||||
SET (PACKAGE_VERSION \"1.0.1\")
|
||||
SET (VERSION \"1.0.1\")
|
||||
|
||||
set (DKS_VERSION ${DKS_VERSION_MAJOR}.${DKS_VERSION_MINOR}.${DKS_VERSION_PATCH})
|
||||
SET (PACKAGE \"dks\")
|
||||
SET (PACKAGE_BUGREPORT \"locans.uldis@psi.ch\")
|
||||
SET (PACKAGE_NAME \"DKS\")
|
||||
SET (PACKAGE_TARNAME \"dks\")
|
||||
SET (DKS_VERSION_STR "\"${DKS_VERSION}\"")
|
||||
SET (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
|
||||
|
||||
#get compiler name
|
||||
@ -91,14 +92,16 @@ IF ( (${CMAKE_C_COMPILER_ID} STREQUAL "GNU" OR ${CMAKE_C_COMPILER_ID} STREQUAL "
|
||||
SET (USE_CUDA ON)
|
||||
INCLUDE_DIRECTORIES(${CUDA_INCLUDE_DIRS})
|
||||
LINK_DIRECTORIES(${CUDA_TOOLKIT_ROOT_DIR}/lib64)
|
||||
LINK_DIRECTORIES(${CUDA_TOOLKIT_ROOT_DIR}/lib64/stubs)
|
||||
|
||||
MESSAGE (STATUS "cuda include: ${CUDA_INCLUDE_DIRS}")
|
||||
MESSAGE (STATUS "cuda libs: ${CUDA_TOOLKIT_ROOT_DIR}/lib64")
|
||||
MESSAGE (STATUS "cuda version: ${CUDA_VERSION}")
|
||||
SET(CUDA_PROPAGATE_HOST_FLAGS OFF)
|
||||
|
||||
SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -lcudart -lcufft -lcublas -lnvToolsExt -DDKS_CUDA")
|
||||
SET (CUDA_NVCC_FLAGS "-arch=sm_35 -DDEBUG -lcufft -lcublas -lcudart -fmad=false")
|
||||
|
||||
SET (CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS} -DDEBUG -std=c++11 -D__wsu")
|
||||
SET (CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS} ${OPENCL_KERNELS}")
|
||||
|
||||
#if cuda version >= 7.0 add runtime commpilation flags
|
||||
@ -123,6 +126,7 @@ IF ( (${CMAKE_C_COMPILER_ID} STREQUAL "GNU" OR ${CMAKE_C_COMPILER_ID} STREQUAL "
|
||||
MESSAGE(STATUS "OpenCL version : ${OpenCL_VERSION_STRING}")
|
||||
MESSAGE(STATUS "OpenCL include dir: ${OpenCL_INCLUDE_DIR}")
|
||||
MESSAGE(STATUS "OpenCL library dir: ${OpenCL_LIBRARY}")
|
||||
SET(CMAKE_SKIP_RPATH TRUE)
|
||||
INCLUDE_DIRECTORIES(${OpenCL_INCLUDE_DIR})
|
||||
LINK_DIRECTORIES(${OpenCL_LIBRARY})
|
||||
ENDIF (OpenCL_FOUND)
|
||||
@ -166,9 +170,19 @@ ADD_SUBDIRECTORY (auto-tuning)
|
||||
CONFIGURE_FILE ( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/${PROJECT_NAME}Config.cmake.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config_install.cmake )
|
||||
|
||||
CONFIGURE_FILE (${CMAKE_CURRENT_SOURCE_DIR}/cmake/${PROJECT_NAME}ConfigVersion.cmake.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion_install.cmake @ONLY)
|
||||
|
||||
### install files ###
|
||||
INSTALL (
|
||||
FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config_install.cmake
|
||||
DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/cmake/${PROJECT_NAME}"
|
||||
RENAME ${PROJECT_NAME}Config.cmake
|
||||
)
|
||||
|
||||
INSTALL (
|
||||
FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion_install.cmake
|
||||
DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/cmake/${PROJECT_NAME}"
|
||||
RENAME ${PROJECT_NAME}ConfigVersion.cmake
|
||||
)
|
||||
|
||||
|
@ -1,4 +1,7 @@
|
||||
SET(${PROJECT_NAME}_CMAKE_CXX_FLAGS "${${PROJECT_NAME}_CXX_FLAGS}")
|
||||
SET(${PROJECT_NAME}_CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
||||
SET(${PROJECT_NAME}_INCLUDE_DIR "${CMAKE_INSTALL_PREFIX}/include")
|
||||
SET(${PROJECT_NAME}_LIBRARY_DIR "${CMAKE_INSTALL_PREFIX}/lib")
|
||||
SET(${PROJECT_NAME}_LIBRARY "dks")
|
||||
SET(CMAKE_SKIP_RPATH ${CMAKE_SKIP_RPATH})
|
||||
SET(DKS_VERSION ${DKS_VERSION})
|
||||
SET(DKS_VERSION_STR ${DKS_VERSION_STR})
|
13
cmake/DKSConfigVersion.cmake.in
Normal file
13
cmake/DKSConfigVersion.cmake.in
Normal file
@ -0,0 +1,13 @@
|
||||
set(PACKAGE_VERSION @DKS_VERSION@)
|
||||
|
||||
if("${PACKAGE_FIND_VERSION_MAJOR}" EQUAL "@DKS_VERSION_MAJOR@" AND "${PACKAGE_FIND_VERSION_MINOR}" EQUAL "@DKS_VERSION_MINOR@")
|
||||
if ("${PACKAGE_FIND_VERSION_PATCH}" EQUAL "@DKS_VERSION_PATCH@")
|
||||
set(PACKAGE_VERSION_EXACT TRUE)
|
||||
elseif("${PACKAGE_FIND_VERSION_PATCH}" LESS "@DKS_VERSION_PATCH@")
|
||||
set(PACKAGE_VERSION_COMPATIBLE TRUE)
|
||||
else()
|
||||
set(PACKAGE_VERSION_UNSUITABLE TRUE)
|
||||
endif()
|
||||
else()
|
||||
set(PACKAGE_VERSION_UNSUITABLE TRUE)
|
||||
endif()
|
@ -8,7 +8,7 @@ __global__ void initcuRandState(curandState *state, int size, int seed = 0) {
|
||||
|
||||
int idx = blockIdx.x * blockDim.x + threadIdx.x;
|
||||
if (idx < size) {
|
||||
curand_init(seed + idx, 0, 0, &state[idx]);
|
||||
curand_init(seed, idx, 0, &state[idx]);
|
||||
}
|
||||
|
||||
}
|
||||
@ -41,14 +41,15 @@ CudaBase::~CudaBase() {
|
||||
/*
|
||||
create curandStates
|
||||
*/
|
||||
int CudaBase::cuda_createCurandStates(int size) {
|
||||
int CudaBase::cuda_createCurandStates(int size, int seed) {
|
||||
|
||||
if (defaultRndSet == 1)
|
||||
cuda_deleteCurandStates();
|
||||
|
||||
int threads = 128;
|
||||
int blocks = size / threads + 1;
|
||||
int seed = time(NULL);
|
||||
if (seed == -1)
|
||||
seed = time(NULL);
|
||||
|
||||
//std::cout << "sizeof: " << sizeof(curandState) << std::endl;
|
||||
cudaMalloc(&defaultRndState, sizeof(curandState)*size);
|
||||
|
@ -41,7 +41,7 @@ public:
|
||||
* and create a curandState with different seed for each array entry.
|
||||
* Return success or error code
|
||||
*/
|
||||
int cuda_createCurandStates(int size);
|
||||
int cuda_createCurandStates(int size, int seed = -1);
|
||||
|
||||
/**
|
||||
* Delete curandState.
|
||||
|
@ -807,9 +807,9 @@ int DKSBase::callCollimatorPhysicsSortSoA(void *label_ptr, void *localID_ptr,
|
||||
}
|
||||
|
||||
|
||||
int DKSBase::callInitRandoms(int size) {
|
||||
int DKSBase::callInitRandoms(int size, int seed) {
|
||||
if (apiCuda())
|
||||
return CUDA_SAFECALL(cbase->cuda_createCurandStates(size));
|
||||
return CUDA_SAFECALL(cbase->cuda_createCurandStates(size, seed));
|
||||
else if (apiOpenCL())
|
||||
return OPENCL_SAFECALL(oclbase->ocl_createRndStates(size));
|
||||
else if (apiOpenMP())
|
||||
|
@ -1074,7 +1074,7 @@ public:
|
||||
* Init random number states and save for reuse on device.
|
||||
* TODO: opencl and mic implementations.
|
||||
*/
|
||||
int callInitRandoms(int size);
|
||||
int callInitRandoms(int size, int seed = -1);
|
||||
|
||||
/**
|
||||
* Integration code from ParallelTTracker from OPAL.
|
||||
|
@ -53,7 +53,7 @@ ADD_EXECUTABLE(testCollimatorPhysics testCollimatorPhysics.cpp)
|
||||
#TARGET_LINK_LIBRARIES(testGather dks)
|
||||
#TARGET_LINK_LIBRARIES(testGatherAsync dks)
|
||||
#TARGET_LINK_LIBRARIES(testTranspose dks)
|
||||
TARGET_LINK_LIBRARIES(testCollimatorPhysics dks)
|
||||
TARGET_LINK_LIBRARIES(testCollimatorPhysics dks ${Boost_LIBRARIES})
|
||||
#TARGET_LINK_LIBRARIES(testCollimatorPhysicsSoA dks)
|
||||
#TARGET_LINK_LIBRARIES(testPush dks)
|
||||
#TARGET_LINK_LIBRARIES(testFFTSolverMIC dks)
|
||||
|
Reference in New Issue
Block a user