Skip to content

Commit 7a3e1a3

Browse files
committed
Converted CUDA to common platform
1 parent 02b7508 commit 7a3e1a3

File tree

7 files changed

+19
-331
lines changed

7 files changed

+19
-331
lines changed

platforms/cuda/CMakeLists.txt

Lines changed: 16 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ SET(EXAMPLE_CUDA_LIBRARY_NAME ExamplePluginCUDA)
99

1010
SET(SHARED_TARGET ${EXAMPLE_CUDA_LIBRARY_NAME})
1111

12-
1312
# These are all the places to search for header files which are
1413
# to be part of the API.
1514
SET(API_INCLUDE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/include" "${CMAKE_CURRENT_SOURCE_DIR}/include/internal")
@@ -25,38 +24,33 @@ ENDFOREACH(dir)
2524
SET(SOURCE_FILES) # empty
2625
SET(SOURCE_INCLUDE_FILES)
2726

28-
FILE(GLOB_RECURSE src_files ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp ${CMAKE_CURRENT_SOURCE_DIR}/${subdir}/src/*.c)
29-
FILE(GLOB incl_files ${CMAKE_CURRENT_SOURCE_DIR}/src/*.h)
30-
SET(SOURCE_FILES ${SOURCE_FILES} ${src_files}) #append
31-
SET(SOURCE_INCLUDE_FILES ${SOURCE_INCLUDE_FILES} ${incl_files})
32-
INCLUDE_DIRECTORIES(BEFORE ${CMAKE_CURRENT_SOURCE_DIR}/include)
27+
SET(OPENMM_SOURCE_SUBDIRS . ../common)
28+
FOREACH(subdir ${OPENMM_SOURCE_SUBDIRS})
29+
FILE(GLOB_RECURSE src_files ${CMAKE_CURRENT_SOURCE_DIR}/${subdir}/src/*.cpp ${CMAKE_CURRENT_SOURCE_DIR}/${subdir}/${subdir}/src/*.c)
30+
FILE(GLOB incl_files ${CMAKE_CURRENT_SOURCE_DIR}/${subdir}/src/*.h)
31+
SET(SOURCE_FILES ${SOURCE_FILES} ${src_files}) #append
32+
SET(SOURCE_INCLUDE_FILES ${SOURCE_INCLUDE_FILES} ${incl_files})
33+
ENDFOREACH(subdir)
34+
35+
SET(COMMON_KERNELS_CPP ${CMAKE_CURRENT_BINARY_DIR}/../common/src/CommonExampleKernelSources.cpp)
36+
SET(SOURCE_FILES ${SOURCE_FILES} ${COMMON_KERNELS_CPP})
3337

3438
INCLUDE_DIRECTORIES(BEFORE ${CMAKE_CURRENT_SOURCE_DIR}/src)
39+
INCLUDE_DIRECTORIES(BEFORE ${CMAKE_CURRENT_SOURCE_DIR}/../common/src)
3540
INCLUDE_DIRECTORIES(BEFORE ${CMAKE_SOURCE_DIR}/platforms/cuda/include)
3641
INCLUDE_DIRECTORIES(BEFORE ${CMAKE_SOURCE_DIR}/platforms/cuda/src)
3742
INCLUDE_DIRECTORIES(BEFORE ${CMAKE_BINARY_DIR}/platforms/cuda/src)
38-
39-
# Set variables needed for encoding kernel sources into a C++ class
40-
41-
SET(CUDA_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src)
42-
SET(CUDA_SOURCE_CLASS CudaExampleKernelSources)
43-
SET(CUDA_KERNELS_CPP ${CMAKE_CURRENT_BINARY_DIR}/src/${CUDA_SOURCE_CLASS}.cpp)
44-
SET(CUDA_KERNELS_H ${CMAKE_CURRENT_BINARY_DIR}/src/${CUDA_SOURCE_CLASS}.h)
45-
SET(SOURCE_FILES ${SOURCE_FILES} ${CUDA_KERNELS_CPP} ${CUDA_KERNELS_H})
46-
INCLUDE_DIRECTORIES(BEFORE ${CMAKE_CURRENT_BINARY_DIR}/src)
43+
INCLUDE_DIRECTORIES(BEFORE ${CMAKE_SOURCE_DIR}/platforms/common/include)
44+
INCLUDE_DIRECTORIES(BEFORE ${CMAKE_BINARY_DIR}/platforms/common/src)
45+
INCLUDE_DIRECTORIES(BEFORE ${CMAKE_CURRENT_BINARY_DIR}/../common/src)
4746

4847
# Create the library
4948

5049
INCLUDE_DIRECTORIES(${CUDA_TOOLKIT_INCLUDE})
5150

52-
FILE(GLOB CUDA_KERNELS ${CUDA_SOURCE_DIR}/kernels/*.cu)
53-
ADD_CUSTOM_COMMAND(OUTPUT ${CUDA_KERNELS_CPP} ${CUDA_KERNELS_H}
54-
COMMAND ${CMAKE_COMMAND}
55-
ARGS -D CUDA_SOURCE_DIR=${CUDA_SOURCE_DIR} -D CUDA_KERNELS_CPP=${CUDA_KERNELS_CPP} -D CUDA_KERNELS_H=${CUDA_KERNELS_H} -D CUDA_SOURCE_CLASS=${CUDA_SOURCE_CLASS} -P ${CMAKE_SOURCE_DIR}/platforms/cuda/EncodeCUDAFiles.cmake
56-
DEPENDS ${CUDA_KERNELS}
57-
)
58-
SET_SOURCE_FILES_PROPERTIES(${CUDA_KERNELS_CPP} ${CUDA_KERNELS_H} PROPERTIES GENERATED TRUE)
51+
SET_SOURCE_FILES_PROPERTIES(${COMMON_KERNELS_CPP} PROPERTIES GENERATED TRUE)
5952
ADD_LIBRARY(${SHARED_TARGET} SHARED ${SOURCE_FILES} ${SOURCE_INCLUDE_FILES} ${API_INCLUDE_FILES})
53+
ADD_DEPENDENCIES(${SHARED_TARGET} CommonKernels)
6054

6155
TARGET_LINK_LIBRARIES(${SHARED_TARGET} ${CUDA_LIBRARIES})
6256
TARGET_LINK_LIBRARIES(${SHARED_TARGET} OpenMM)

platforms/cuda/src/CudaExampleKernelFactory.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@
3232
#include <exception>
3333

3434
#include "CudaExampleKernelFactory.h"
35-
#include "CudaExampleKernels.h"
35+
#include "CommonExampleKernels.h"
36+
#include "openmm/cuda/CudaContext.h"
3637
#include "openmm/internal/windowsExport.h"
3738
#include "openmm/internal/ContextImpl.h"
3839
#include "openmm/OpenMMException.h"
@@ -67,6 +68,6 @@ extern "C" OPENMM_EXPORT void registerExampleCudaKernelFactories() {
6768
KernelImpl* CudaExampleKernelFactory::createKernelImpl(std::string name, const Platform& platform, ContextImpl& context) const {
6869
CudaContext& cu = *static_cast<CudaPlatform::PlatformData*>(context.getPlatformData())->contexts[0];
6970
if (name == CalcExampleForceKernel::Name())
70-
return new CudaCalcExampleForceKernel(name, platform, cu, context.getSystem());
71+
return new CommonCalcExampleForceKernel(name, platform, cu, context.getSystem());
7172
throw OpenMMException((std::string("Tried to create kernel with illegal kernel name '")+name+"'").c_str());
7273
}

platforms/cuda/src/CudaExampleKernelSources.cpp.in

Lines changed: 0 additions & 36 deletions
This file was deleted.

platforms/cuda/src/CudaExampleKernelSources.h.in

Lines changed: 0 additions & 52 deletions
This file was deleted.

platforms/cuda/src/CudaExampleKernels.cpp

Lines changed: 0 additions & 125 deletions
This file was deleted.

platforms/cuda/src/CudaExampleKernels.h

Lines changed: 0 additions & 83 deletions
This file was deleted.

0 commit comments

Comments
 (0)