@@ -12,12 +12,20 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
1212set (CMAKE_CXX_EXTENSIONS OFF )
1313set (CMAKE_POSITION_INDEPENDENT_CODE ON )
1414
15+ # Download with:
16+ #
17+ # mkdir -p cmake
18+ # wget -O cmake/CPM.cmake https://github.com/cpm-cmake/CPM.cmake/releases/latest/download/get_cpm.cmake
19+ include (cmake/CPM.cmake)
20+
1521if (USE_CUDA)
22+ CPMAddPackage(NAME CCCL SOURCE_DIR ${CMAKE_SOURCE_DIR} /3rd-party/cccl)
23+
1624 add_compile_definitions (USE_CUDA)
1725 enable_language (CUDA)
1826 set (CMAKE_CUDA_HOST_COMPILER ${CMAKE_CXX_COMPILER} )
1927 if (NOT DEFINED CMAKE_CUDA_ARCHITECTURES)
20- set (CMAKE_CUDA_ARCHITECTURES 80 )
28+ set (CMAKE_CUDA_ARCHITECTURES native )
2129 endif ()
2230 if (NOT DEFINED CMAKE_CUDA_STANDARD)
2331 set (CMAKE_CUDA_STANDARD 17)
@@ -45,7 +53,7 @@ endif()
4553if (USE_BANG)
4654 add_compile_definitions (USE_BANG)
4755 include_directories (src/kernels/mlu/include )
48-
56+
4957 # Neuware Evironment
5058 if ((NOT DEFINED NEUWARE_HOME) AND (NOT DEFINED ENV{NEUWARE_HOME}))
5159 message (FATAL_ERROR "NEUWARE_HOME is not defined from cmake or env" )
@@ -55,14 +63,14 @@ if (USE_BANG)
5563 set (NEUWARE_HOME $ENV{NEUWARE_HOME} CACHE STRING "NEUWARE_HOME directory for Cambricon Neuware development" )
5664 endif ()
5765 message (STATUS "NEUWARE_HOME: ${NEUWARE_HOME} " )
58-
66+
5967 # cnrt cndrv cnnl
6068 include_directories ("${NEUWARE_HOME} /include" )
6169 find_library (CAMBRICON_CNNL libcnnl.so "${NEUWARE_HOME} /lib64" )
6270 find_library (CAMBRICON_CNRT libcnrt.so "${NEUWARE_HOME} /lib64" )
6371 find_library (CAMBRICON_CNDRV libcndrv.so "${NEUWARE_HOME} /lib64" )
6472 set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -lstdc++ -Wall" )
65-
73+
6674 if ((NOT DEFINED TARGET_CPU_ARCH) AND (NOT DEFINED ENV{TARGET_CPU_ARCH}))
6775 execute_process (COMMAND uname -m OUTPUT_VARIABLE _uname_m OUTPUT_STRIP_TRAILING_WHITESPACE)
6876 set (TARGET_CPU_ARCH "${_uname_m} " CACHE STRING "Target CPU ARCH" )
0 commit comments