From 89d3b094fa6490166c82b135a524c526eaf65a23 Mon Sep 17 00:00:00 2001 From: Jinzhe Zeng Date: Sun, 25 Jun 2023 13:00:25 -0400 Subject: [PATCH 01/12] cmake: migrate from FindCUDA to CUDA language FindCUDA will be removed in CMake 3.27, per https://cmake.org/cmake/help/latest/release/3.27.html#deprecated-and-removed-features. Signed-off-by: Jinzhe Zeng --- doc/install/install-from-source.md | 4 +- doc/install/install-gromacs.md | 2 +- setup.py | 10 +- source/CMakeLists.txt | 8 +- source/lib/CMakeLists.txt | 2 +- source/lib/src/cuda/CMakeLists.txt | 214 ++-------------------- source/lib/src/cuda/cudart/CMakeLists.txt | 5 +- 7 files changed, 33 insertions(+), 212 deletions(-) diff --git a/doc/install/install-from-source.md b/doc/install/install-from-source.md index 5d3a434f0a..e1a21dca28 100644 --- a/doc/install/install-from-source.md +++ b/doc/install/install-from-source.md @@ -74,7 +74,7 @@ One may set the following environment variables before executing `pip`: | Environment variables | Allowed value | Default value | Usage | | --------------------- | ---------------------- | ------------- | -------------------------- | | DP_VARIANT | `cpu`, `cuda`, `rocm` | `cpu` | Build CPU variant or GPU variant with CUDA or ROCM support. | -| CUDA_TOOLKIT_ROOT_DIR | Path | Detected automatically | The path to the CUDA toolkit directory. CUDA 7.0 or later is supported. NVCC is required. | +| CUDAToolkit_ROOT | Path | Detected automatically | The path to the CUDA toolkit directory. CUDA 7.0 or later is supported. NVCC is required. | | ROCM_ROOT | Path | Detected automatically | The path to the ROCM toolkit directory. | | TENSORFLOW_ROOT | Path | Detected automatically | The path to TensorFlow Python library. By default the installer only finds TensorFlow under user site-package directory (`site.getusersitepackages()`) or system site-package directory (`sysconfig.get_path("purelib")`) due to limitation of [PEP-517](https://peps.python.org/pep-0517/). If not found, the latest TensorFlow (or the environment variable `TENSORFLOW_VERSION` if given) from PyPI will be built against.| | DP_ENABLE_NATIVE_OPTIMIZATION | 0, 1 | 0 | Enable compilation optimization for the native machine's CPU type. Do not enable it if generated code will run on different CPUs. | @@ -180,7 +180,7 @@ One may add the following arguments to `cmake`: | -DTENSORFLOW_ROOT=<value> | Path | - | The Path to TensorFlow's C++ interface. | | -DCMAKE_INSTALL_PREFIX=<value> | Path | - | The Path where DeePMD-kit will be installed. | | -DUSE_CUDA_TOOLKIT=<value> | `TRUE` or `FALSE` | `FALSE` | If `TRUE`, Build GPU support with CUDA toolkit. | -| -DCUDA_TOOLKIT_ROOT_DIR=<value> | Path | Detected automatically | The path to the CUDA toolkit directory. CUDA 7.0 or later is supported. NVCC is required. | +| -DCUDAToolkit_ROOT=<value> | Path | Detected automatically | The path to the CUDA toolkit directory. CUDA 7.0 or later is supported. NVCC is required. | | -DUSE_ROCM_TOOLKIT=<value> | `TRUE` or `FALSE` | `FALSE` | If `TRUE`, Build GPU support with ROCM toolkit. | | -DCMAKE_HIP_COMPILER_ROCM_ROOT=<value> | Path | Detected automatically | The path to the ROCM toolkit directory. | | -DLAMMPS_SOURCE_ROOT=<value> | Path | - | Only neccessary for LAMMPS plugin mode. The path to the [LAMMPS source code](install-lammps.md). LAMMPS 8Apr2021 or later is supported. If not assigned, the plugin mode will not be enabled. | diff --git a/doc/install/install-gromacs.md b/doc/install/install-gromacs.md index 0cb0f7d7ff..758ad7784a 100644 --- a/doc/install/install-gromacs.md +++ b/doc/install/install-gromacs.md @@ -27,7 +27,7 @@ cd build cmake3 .. -DCMAKE_CXX_STANDARD=14 \ # not required, but c++14 seems to be more compatible with higher version of tensorflow -DGMX_MPI=ON \ -DGMX_GPU=CUDA \ # Gromacs on ROCm has not been fully developed yet - -DCUDA_TOOLKIT_ROOT_DIR=/path/to/cuda \ + -DCUDAToolkit_ROOT=/path/to/cuda \ -DCMAKE_INSTALL_PREFIX=/path/to/gromacs-2020.2-deepmd make -j make install diff --git a/setup.py b/setup.py index d185f5e3c7..cafec16e7f 100644 --- a/setup.py +++ b/setup.py @@ -27,13 +27,15 @@ # get variant option from the environment varibles, available: cpu, cuda, rocm dp_variant = os.environ.get("DP_VARIANT", "cpu").lower() if dp_variant == "cpu" or dp_variant == "": - pass + cmake_minimum_required_version = "3.16" elif dp_variant == "cuda": + cmake_minimum_required_version = "3.23" cmake_args.append("-DUSE_CUDA_TOOLKIT:BOOL=TRUE") - cuda_root = os.environ.get("CUDA_TOOLKIT_ROOT_DIR") + cuda_root = os.environ.get("CUDAToolkit_ROOT") if cuda_root: - cmake_args.append(f"-DCUDA_TOOLKIT_ROOT_DIR:STRING={cuda_root}") + cmake_args.append(f"-DCUDAToolkit_ROOT:STRING={cuda_root}") elif dp_variant == "rocm": + cmake_minimum_required_version = "3.21" cmake_args.append("-DUSE_ROCM_TOOLKIT:BOOL=TRUE") rocm_root = os.environ.get("ROCM_ROOT") if rocm_root: @@ -111,7 +113,7 @@ def get_tag(self): *cmake_args, ], cmake_source_dir="source", - cmake_minimum_required_version="3.16", + cmake_minimum_required_version=cmake_minimum_required_version, extras_require={ "test": ["dpdata>=0.1.9", "ase", "pytest", "pytest-cov", "pytest-sugar"], "docs": [ diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index ccf9641795..efb36dae72 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -97,12 +97,10 @@ set(DP_VARIANT "cpu") # define USE_CUDA_TOOLKIT if(USE_CUDA_TOOLKIT) - set(CUDA_USE_STATIC_CUDA_RUNTIME - OFF - CACHE INTERNAL "") - find_package(CUDA REQUIRED) + find_package(CUDAToolkit REQUIRED) + set(CMAKE_CUDA_COMPILER ${CUDAToolkit_NVCC_EXECUTABLE}) add_definitions("-DGOOGLE_CUDA") - message(STATUS "Found CUDA in ${CUDA_TOOLKIT_ROOT_DIR}, build nv GPU support") + message(STATUS "Found CUDA in ${CUDAToolkit_BIN_DIR}, build nv GPU support") set(DP_VARIANT "cuda") else() message(STATUS "Will not build nv GPU support") diff --git a/source/lib/CMakeLists.txt b/source/lib/CMakeLists.txt index af88cb5ae6..bd6b585644 100644 --- a/source/lib/CMakeLists.txt +++ b/source/lib/CMakeLists.txt @@ -16,7 +16,7 @@ if(USE_CUDA_TOOLKIT) target_link_libraries(${libname} INTERFACE deepmd_dyn_cudart ${EXTRA_LIBS}) # gpu_cuda.h target_include_directories( - ${libname} PUBLIC $ + ${libname} PUBLIC $ $) endif() diff --git a/source/lib/src/cuda/CMakeLists.txt b/source/lib/src/cuda/CMakeLists.txt index b1ecf82c9a..9e72d8a5d7 100644 --- a/source/lib/src/cuda/CMakeLists.txt +++ b/source/lib/src/cuda/CMakeLists.txt @@ -1,19 +1,21 @@ -# required cmake version -cmake_minimum_required(VERSION 3.16) +# required cmake version 3.23: CMAKE_CUDA_ARCHITECTURES all +cmake_minimum_required(VERSION 3.23) # project name project(deepmd_op_cuda) -# SET(CUDA_SEPARABLE_COMPILATION ON) -find_package(CUDA REQUIRED) -if(NOT CUDA_FOUND) - message(STATUS "CUDA not found. Project will not be built.") -endif(NOT CUDA_FOUND) +set(CMAKE_CUDA_ARCHITECTURES all) +enable_language(CUDA) +if(NOT DEFINED CMAKE_CUDA_STANDARD) + # cub recommends c++14 + set(CMAKE_CUDA_STANDARD 14) + set(CMAKE_CUDA_STANDARD_REQUIRED OFF) +endif() + +find_package(CUDAToolkit REQUIRED) # take dynamic open cudart library replace of static one so it's not required # when using CPUs add_subdirectory(cudart) -# important: it must be before cuda_add_library and any link target to cudart -set(CUDA_LIBRARIES deepmd_dyn_cudart) # set c++ version c++11 set(CMAKE_CXX_STANDARD 11) @@ -26,201 +28,21 @@ set(CMAKE_CUDA_STANDARD 11) # cub has been included in CUDA Toolkit 11, we do not need to include it any # more see https://github.com/NVIDIA/cub -if(${CUDA_VERSION_MAJOR} LESS_EQUAL "10") +if(${CMAKE_CUDA_COMPILER_VERSION} VERSION_LESS "11") include_directories(cub) endif() -message(STATUS "CUDA major version is " ${CUDA_VERSION_MAJOR}) +message(STATUS "NVCC version is " ${CMAKE_CUDA_COMPILER_VERSION}) -if(${CUDA_VERSION_MAJOR} GREATER "11" - OR (${CUDA_VERSION_MAJOR} STREQUAL "11" AND ${CUDA_VERSION_MINOR} - GREATER_EQUAL "5")) - # nvcc flags - set(CUDA_NVCC_FLAGS - -arch=all; # embeds a compiled code image for all supported architectures - # (sm_*), and a PTX program for the highest major virtual - # architecture - -O3; - -Xcompiler - -fPIC; - ${CUDA_NVCC_FLAGS}) -elseif(${CUDA_VERSION_MAJOR} STREQUAL "11" AND ${CUDA_VERSION_MINOR} GREATER - "0") - # nvcc flags - set(CUDA_NVCC_FLAGS - -gencode - arch=compute_52,code=sm_52; # Tesla M40, Tesla M40, Quadro M6000... - -gencode - arch=compute_53,code=sm_53; - -gencode - arch=compute_60,code=sm_60; # Pascal – GP100/Tesla P100 – DGX-1 (Generic - # Pascal) - -gencode - arch=compute_61,code=sm_61; # Pascal - GTX 1080, GTX 1070, GTX 1060, GTX - # 1050, GTX 1030, Titan Xp, Tesla P40, Tesla - # P4, Discrete GPU on the NVIDIA Drive PX2 - -gencode - arch=compute_70,code=sm_70; # Volta - GV100/Tesla V100, GTX 1180 (GV104) - -gencode - arch=compute_75,code=sm_75; # Turing - RTX 2080, Titan RTX, Quadro R8000 - -gencode - arch=compute_80,code=sm_80; # Anpere - A100 - -gencode - arch=compute_86,code=sm_86; # Anpere - RTX 3090 - -O3; - -Xcompiler - -fPIC; - ${CUDA_NVCC_FLAGS}) -elseif(${CUDA_VERSION_MAJOR} STREQUAL "11" AND ${CUDA_VERSION_MINOR} STREQUAL - "0") - # nvcc flags - set(CUDA_NVCC_FLAGS - -gencode - arch=compute_52,code=sm_52; # Tesla M40, Tesla M40, Quadro M6000... - -gencode - arch=compute_53,code=sm_53; - -gencode - arch=compute_60,code=sm_60; # Pascal – GP100/Tesla P100 – DGX-1 (Generic - # Pascal) - -gencode - arch=compute_61,code=sm_61; # Pascal - GTX 1080, GTX 1070, GTX 1060, GTX - # 1050, GTX 1030, Titan Xp, Tesla P40, Tesla - # P4, Discrete GPU on the NVIDIA Drive PX2 - -gencode - arch=compute_70,code=sm_70; # Volta - GV100/Tesla V100, GTX 1180 (GV104) - -gencode - arch=compute_75,code=sm_75; # Turing - RTX 2080, Titan RTX, Quadro R8000 - -gencode - arch=compute_80,code=sm_80; # Anpere - A100 - -O3; - -Xcompiler - -fPIC; - ${CUDA_NVCC_FLAGS}) -elseif(${CUDA_VERSION_MAJOR} STREQUAL "10") - set(CUDA_NVCC_FLAGS - -gencode - arch=compute_30,code=sm_30; # Tesla K10, Quadro K600 K420 K410, - -gencode - arch=compute_35,code=sm_35; # Tesla K20 K40, TITAN Z Black, GTX 780Ti 780 - -gencode - arch=compute_37,code=sm_37; # Tesla K80 - -gencode - arch=compute_50,code=sm_50; # Quadro 620 1200 - -gencode - arch=compute_52,code=sm_52; # Tesla M40 M40, Quadro M6000 M5000 M4000 - # M2000, TITAN X, GTX 980Ti 980 970 960 950 - -gencode - arch=compute_53,code=sm_53; # Jetson TX1, Tegra X1 - -gencode - arch=compute_60,code=sm_60; # Pascal – GP100/Tesla P100 – DGX-1 (Generic - # Pascal) - -gencode - arch=compute_61,code=sm_61; # Pascal - GTX 1080, GTX 1070, GTX 1060, GTX - # 1050, GTX 1030, Titan Xp, Tesla P40, Tesla - # P4, Discrete GPU on the NVIDIA Drive PX2 - -gencode - arch=compute_70,code=sm_70; # Volta - GV100/Tesla V100, GTX 1180 (GV104) - -gencode - arch=compute_75,code=sm_75; # Turing - RTX 2080, Titan RTX, Quadro R8000 - -O3; - -Xcompiler - -fPIC; - ${CUDA_NVCC_FLAGS}) -elseif(${CUDA_VERSION_MAJOR} STREQUAL "9") - set(CUDA_NVCC_FLAGS - -gencode - arch=compute_30,code=sm_30; - -gencode - arch=compute_35,code=sm_35; - -gencode - arch=compute_37,code=sm_37; - -gencode - arch=compute_50,code=sm_50; - -gencode - arch=compute_52,code=sm_52; # Tesla M40, Tesla M40, Quadro M6000... - -gencode - arch=compute_53,code=sm_53; - -gencode - arch=compute_60,code=sm_60; # Pascal – GP100/Tesla P100 – DGX-1 (Generic - # Pascal) - -gencode - arch=compute_61,code=sm_61; # Pascal - GTX 1080, GTX 1070, GTX 1060, GTX - # 1050, GTX 1030, Titan Xp, Tesla P40, Tesla - # P4, Discrete GPU on the NVIDIA Drive PX2 - -gencode - arch=compute_70,code=sm_70; # Volta - GV100/Tesla V100, GTX 1180 (GV104) - -O3; - -Xcompiler - -fPIC; - ${CUDA_NVCC_FLAGS}) -elseif(${CUDA_VERSION_MAJOR} STREQUAL "8") - set(CUDA_NVCC_FLAGS - -gencode - arch=compute_30,code=sm_30; - -gencode - arch=compute_35,code=sm_35; - -gencode - arch=compute_37,code=sm_37; - -gencode - arch=compute_50,code=sm_50; - -gencode - arch=compute_52,code=sm_52; # Tesla M40, Tesla M40, Quadro M6000... - -gencode - arch=compute_53,code=sm_53; - -gencode - arch=compute_60,code=sm_60; # Pascal – GP100/Tesla P100 – DGX-1 (Generic - # Pascal) - -gencode - arch=compute_61,code=sm_61; # Pascal - GTX 1080, GTX 1070, GTX 1060, GTX - # 1050, GTX 1030, Titan Xp, Tesla P40, Tesla - # P4, Discrete GPU on the NVIDIA Drive PX2 - -O3; - -Xcompiler - -fPIC; - ${CUDA_NVCC_FLAGS}) -elseif(${CUDA_VERSION_MAJOR} STREQUAL "7") - set(CUDA_NVCC_FLAGS - -gencode - arch=compute_30,code=sm_30; - -gencode - arch=compute_35,code=sm_35; - -gencode - arch=compute_37,code=sm_37; - -gencode - arch=compute_50,code=sm_50; - -gencode - arch=compute_52,code=sm_52; # Tesla M40, Tesla M40, Quadro M6000... - -gencode - arch=compute_53,code=sm_53; - -O3; - -Xcompiler - -fPIC; - ${CUDA_NVCC_FLAGS}) -else() - message(FATAL_ERROR "unsupported CUDA_VERSION " ${CUDA_VERSION} - ", please use a newer version (>=7.0) of CUDA toolkit!") -endif() - -set(CMAKE_CXX_FLAGS - "${CMAKE_CXX_FLAGS} -std=c++11 -DCUB_IGNORE_DEPRECATED_CPP_DIALECT -DCUB_IGNORE_DEPRECATED_CPP_DIALECT" +# arch will be configured by CMAKE_CUDA_ARCHITECTURES +set(CMAKE_CUDA_FLAGS + "${CMAKE_CUDA_FLAGS} -DCUB_IGNORE_DEPRECATED_CPP_DIALECT -DCUB_IGNORE_DEPRECATED_CPP_DIALECT" ) -if(${CUDA_VERSION_MAJOR} LESS_EQUAL "11") - # check unsupported -std=c++17 - set(CMAKE_CXX_FLAGS_LIST "${CMAKE_CXX_FLAGS}") - separate_arguments(CMAKE_CXX_FLAGS_LIST) - if("-std=c++17" IN_LIST CMAKE_CXX_FLAGS_LIST) - message( - WARNING - "Environment variable CXXFLAGS contains flag --std=c++17 which is unsupported by CUDA ${CUDA_VERSION}. Such flag will be removed automatically." - ) - string(REPLACE "-std=c++17" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") - endif() -endif() - file(GLOB SOURCE_FILES "*.cu") -cuda_add_library(deepmd_op_cuda SHARED ${SOURCE_FILES}) +add_library(deepmd_op_cuda SHARED ${SOURCE_FILES}) +target_link_libraries(deepmd_op_cuda PRIVATE deepmd_dyn_cudart) target_include_directories( deepmd_op_cuda PUBLIC $ diff --git a/source/lib/src/cuda/cudart/CMakeLists.txt b/source/lib/src/cuda/cudart/CMakeLists.txt index 7e9552fbe9..7562c2ea1b 100644 --- a/source/lib/src/cuda/cudart/CMakeLists.txt +++ b/source/lib/src/cuda/cudart/CMakeLists.txt @@ -1,8 +1,7 @@ add_library(deepmd_dyn_cudart SHARED cudart_stub.cc) -target_include_directories(deepmd_dyn_cudart PUBLIC ${CUDA_INCLUDE_DIRS}) -get_filename_component(CUDA_LIBRARY_DIR ${CUDA_cudart_static_LIBRARY} DIRECTORY) +target_include_directories(deepmd_dyn_cudart PUBLIC ${CUDAToolkit_INCLUDE_DIRS}) set_target_properties(deepmd_dyn_cudart PROPERTIES INSTALL_RPATH - "${CUDA_LIBRARY_DIR}") + "${CUDAToolkit_LIBRARY_DIR}") if(BUILD_CPP_IF AND NOT BUILD_PY_IF) install( TARGETS deepmd_dyn_cudart From b279e78fe55e37d9a5f8ba8537e7523c274ac4e5 Mon Sep 17 00:00:00 2001 From: Jinzhe Zeng Date: Sun, 25 Jun 2023 13:10:07 -0400 Subject: [PATCH 02/12] enforce C++ 11 --- source/lib/src/cuda/CMakeLists.txt | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/source/lib/src/cuda/CMakeLists.txt b/source/lib/src/cuda/CMakeLists.txt index 9e72d8a5d7..3ba5ddd518 100644 --- a/source/lib/src/cuda/CMakeLists.txt +++ b/source/lib/src/cuda/CMakeLists.txt @@ -5,11 +5,8 @@ project(deepmd_op_cuda) set(CMAKE_CUDA_ARCHITECTURES all) enable_language(CUDA) -if(NOT DEFINED CMAKE_CUDA_STANDARD) - # cub recommends c++14 - set(CMAKE_CUDA_STANDARD 14) - set(CMAKE_CUDA_STANDARD_REQUIRED OFF) -endif() +set(CMAKE_CUDA_STANDARD 11) +set(CMAKE_CUDA_STANDARD_REQUIRED ON) find_package(CUDAToolkit REQUIRED) From 047399c43c85fdcad554d72637deb26c50dd3cec Mon Sep 17 00:00:00 2001 From: Jinzhe Zeng Date: Sun, 25 Jun 2023 14:27:53 -0400 Subject: [PATCH 03/12] set cxx11 abi for CUDA --- source/lib/src/cuda/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/source/lib/src/cuda/CMakeLists.txt b/source/lib/src/cuda/CMakeLists.txt index 3ba5ddd518..21aa8bdac9 100644 --- a/source/lib/src/cuda/CMakeLists.txt +++ b/source/lib/src/cuda/CMakeLists.txt @@ -7,6 +7,7 @@ set(CMAKE_CUDA_ARCHITECTURES all) enable_language(CUDA) set(CMAKE_CUDA_STANDARD 11) set(CMAKE_CUDA_STANDARD_REQUIRED ON) +add_definitions(-D_GLIBCXX_USE_CXX11_ABI=${OP_CXX_ABI}) find_package(CUDAToolkit REQUIRED) From 6223fe36db5e49230e63043a293d32c1b6973c4b Mon Sep 17 00:00:00 2001 From: Jinzhe Zeng Date: Sun, 25 Jun 2023 14:39:55 -0400 Subject: [PATCH 04/12] CMakeLists.txt --- source/lib/src/cuda/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/lib/src/cuda/CMakeLists.txt b/source/lib/src/cuda/CMakeLists.txt index 21aa8bdac9..7b90cfa4c4 100644 --- a/source/lib/src/cuda/CMakeLists.txt +++ b/source/lib/src/cuda/CMakeLists.txt @@ -7,7 +7,7 @@ set(CMAKE_CUDA_ARCHITECTURES all) enable_language(CUDA) set(CMAKE_CUDA_STANDARD 11) set(CMAKE_CUDA_STANDARD_REQUIRED ON) -add_definitions(-D_GLIBCXX_USE_CXX11_ABI=${OP_CXX_ABI}) +add_compile_definitions(D_GLIBCXX_USE_CXX11_ABI=${OP_CXX_ABI}) find_package(CUDAToolkit REQUIRED) From 14e44bd9528fda3c2d4a2899eafd01f0c48ed70d Mon Sep 17 00:00:00 2001 From: Jinzhe Zeng Date: Sun, 25 Jun 2023 15:15:59 -0400 Subject: [PATCH 05/12] Update CMakeLists.txt Signed-off-by: Jinzhe Zeng --- source/lib/src/cuda/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/lib/src/cuda/CMakeLists.txt b/source/lib/src/cuda/CMakeLists.txt index 7b90cfa4c4..162e5fcebe 100644 --- a/source/lib/src/cuda/CMakeLists.txt +++ b/source/lib/src/cuda/CMakeLists.txt @@ -7,7 +7,7 @@ set(CMAKE_CUDA_ARCHITECTURES all) enable_language(CUDA) set(CMAKE_CUDA_STANDARD 11) set(CMAKE_CUDA_STANDARD_REQUIRED ON) -add_compile_definitions(D_GLIBCXX_USE_CXX11_ABI=${OP_CXX_ABI}) +add_compile_definitions("$<$:_GLIBCXX_USE_CXX11_ABI=${OP_CXX_ABI}>") find_package(CUDAToolkit REQUIRED) From 80804556350062f81a1790b02f5c8bc0260a5ac3 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sun, 25 Jun 2023 19:16:23 +0000 Subject: [PATCH 06/12] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- source/lib/src/cuda/CMakeLists.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/lib/src/cuda/CMakeLists.txt b/source/lib/src/cuda/CMakeLists.txt index 162e5fcebe..84bd57d9af 100644 --- a/source/lib/src/cuda/CMakeLists.txt +++ b/source/lib/src/cuda/CMakeLists.txt @@ -7,7 +7,8 @@ set(CMAKE_CUDA_ARCHITECTURES all) enable_language(CUDA) set(CMAKE_CUDA_STANDARD 11) set(CMAKE_CUDA_STANDARD_REQUIRED ON) -add_compile_definitions("$<$:_GLIBCXX_USE_CXX11_ABI=${OP_CXX_ABI}>") +add_compile_definitions( + "$<$:_GLIBCXX_USE_CXX11_ABI=${OP_CXX_ABI}>") find_package(CUDAToolkit REQUIRED) From d2fc5e308236af29f7412d04a1e9cefa793ee103 Mon Sep 17 00:00:00 2001 From: Jinzhe Zeng Date: Sun, 25 Jun 2023 15:42:48 -0400 Subject: [PATCH 07/12] set verbose to 1 Signed-off-by: Jinzhe Zeng --- source/install/package_c.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/install/package_c.sh b/source/install/package_c.sh index c250956e19..b3e482aa88 100755 --- a/source/install/package_c.sh +++ b/source/install/package_c.sh @@ -20,7 +20,7 @@ cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} \ -DPACKAGE_C=TRUE \ -DUSE_TF_PYTHON_LIBS=TRUE \ .. -make -j${NPROC} +make -j${NPROC} VERBOSE=1 make install #------------------ From 0a56d57cf2746d62b93a7481ef78dec1286266dd Mon Sep 17 00:00:00 2001 From: Jinzhe Zeng Date: Sun, 25 Jun 2023 16:17:57 -0400 Subject: [PATCH 08/12] do not set cxx standard Signed-off-by: Jinzhe Zeng --- source/lib/src/cuda/CMakeLists.txt | 3 --- 1 file changed, 3 deletions(-) diff --git a/source/lib/src/cuda/CMakeLists.txt b/source/lib/src/cuda/CMakeLists.txt index 84bd57d9af..9468ace695 100644 --- a/source/lib/src/cuda/CMakeLists.txt +++ b/source/lib/src/cuda/CMakeLists.txt @@ -16,9 +16,6 @@ find_package(CUDAToolkit REQUIRED) # when using CPUs add_subdirectory(cudart) -# set c++ version c++11 -set(CMAKE_CXX_STANDARD 11) -set(CMAKE_CUDA_STANDARD 11) # nvcc -o libdeepmd_op_cuda.so -I/usr/local/cub-1.8.0 -rdc=true -DHIGH_PREC=true # -gencode arch=compute_61,code=sm_61 -shared -Xcompiler -fPIC deepmd_op.cu # -L/usr/local/cuda/lib64 -lcudadevrt very important here! Include path to cub. From 47184cd7519436146093a85ac58624e2f6bee09a Mon Sep 17 00:00:00 2001 From: Jinzhe Zeng Date: Sun, 25 Jun 2023 16:37:10 -0400 Subject: [PATCH 09/12] set the same standard as c++ Signed-off-by: Jinzhe Zeng --- source/lib/src/cuda/CMakeLists.txt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/source/lib/src/cuda/CMakeLists.txt b/source/lib/src/cuda/CMakeLists.txt index 9468ace695..2cfb9cd32c 100644 --- a/source/lib/src/cuda/CMakeLists.txt +++ b/source/lib/src/cuda/CMakeLists.txt @@ -5,8 +5,7 @@ project(deepmd_op_cuda) set(CMAKE_CUDA_ARCHITECTURES all) enable_language(CUDA) -set(CMAKE_CUDA_STANDARD 11) -set(CMAKE_CUDA_STANDARD_REQUIRED ON) +set(CMAKE_CUDA_STANDARD ${CMAKE_CXX_STANDARD}) add_compile_definitions( "$<$:_GLIBCXX_USE_CXX11_ABI=${OP_CXX_ABI}>") From 34844d52992617ae529dfd2244da7e35cbc4fffb Mon Sep 17 00:00:00 2001 From: Jinzhe Zeng Date: Sun, 25 Jun 2023 17:04:51 -0400 Subject: [PATCH 10/12] set CMAKE_CUDA_HOST_COMPILER Signed-off-by: Jinzhe Zeng --- source/CMakeLists.txt | 1 + source/lib/src/cuda/CMakeLists.txt | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index efb36dae72..8b823e1521 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -99,6 +99,7 @@ set(DP_VARIANT "cpu") if(USE_CUDA_TOOLKIT) find_package(CUDAToolkit REQUIRED) set(CMAKE_CUDA_COMPILER ${CUDAToolkit_NVCC_EXECUTABLE}) + set(CMAKE_CUDA_HOST_COMPILER ${CMAKE_CXX_COMPILER}) add_definitions("-DGOOGLE_CUDA") message(STATUS "Found CUDA in ${CUDAToolkit_BIN_DIR}, build nv GPU support") set(DP_VARIANT "cuda") diff --git a/source/lib/src/cuda/CMakeLists.txt b/source/lib/src/cuda/CMakeLists.txt index 2cfb9cd32c..bfdf9cd466 100644 --- a/source/lib/src/cuda/CMakeLists.txt +++ b/source/lib/src/cuda/CMakeLists.txt @@ -5,7 +5,7 @@ project(deepmd_op_cuda) set(CMAKE_CUDA_ARCHITECTURES all) enable_language(CUDA) -set(CMAKE_CUDA_STANDARD ${CMAKE_CXX_STANDARD}) +set(CMAKE_CUDA_STANDARD 11) add_compile_definitions( "$<$:_GLIBCXX_USE_CXX11_ABI=${OP_CXX_ABI}>") From c982b443175314825cde6c23d3c4cb364e9faaa1 Mon Sep 17 00:00:00 2001 From: Jinzhe Zeng Date: Sun, 25 Jun 2023 17:29:02 -0400 Subject: [PATCH 11/12] only define CMAKE_CUDA_COMPILER and CMAKE_CUDA_HOST_COMPILER when not defined Signed-off-by: Jinzhe Zeng --- source/CMakeLists.txt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index 8b823e1521..ed943f4716 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -98,8 +98,12 @@ set(DP_VARIANT "cpu") # define USE_CUDA_TOOLKIT if(USE_CUDA_TOOLKIT) find_package(CUDAToolkit REQUIRED) - set(CMAKE_CUDA_COMPILER ${CUDAToolkit_NVCC_EXECUTABLE}) - set(CMAKE_CUDA_HOST_COMPILER ${CMAKE_CXX_COMPILER}) + if(NOT DEFINED CMAKE_CUDA_COMPILER) + set(CMAKE_CUDA_COMPILER ${CUDAToolkit_NVCC_EXECUTABLE}) + endif() + if(NOT DEFINED CMAKE_CUDA_HOST_COMPILER) + set(CMAKE_CUDA_HOST_COMPILER ${CMAKE_CXX_COMPILER}) + endif() add_definitions("-DGOOGLE_CUDA") message(STATUS "Found CUDA in ${CUDAToolkit_BIN_DIR}, build nv GPU support") set(DP_VARIANT "cuda") From b2a7e9e76f4a2584c7b826c5acbb292290da484e Mon Sep 17 00:00:00 2001 From: Jinzhe Zeng Date: Sun, 25 Jun 2023 21:39:34 -0400 Subject: [PATCH 12/12] revert VEBOSE Signed-off-by: Jinzhe Zeng --- source/install/package_c.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/install/package_c.sh b/source/install/package_c.sh index b3e482aa88..c250956e19 100755 --- a/source/install/package_c.sh +++ b/source/install/package_c.sh @@ -20,7 +20,7 @@ cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} \ -DPACKAGE_C=TRUE \ -DUSE_TF_PYTHON_LIBS=TRUE \ .. -make -j${NPROC} VERBOSE=1 +make -j${NPROC} make install #------------------