Skip to content

Commit ca4c97e

Browse files
committed
Moved CUDA environment variables to GitHub Action so that they will not interfere with users building themselves, added -fPIC to C compile, and added OpenMP link to overall library
1 parent 340f8a4 commit ca4c97e

3 files changed

Lines changed: 14 additions & 11 deletions

File tree

.github/workflows/build.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ jobs:
2828
export CUDA_ROOT=/usr/local/cuda-11.8
2929
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.8/lib64
3030
export CUDACXX=/usr/local/cuda-11.8/bin/nvcc
31+
CIBW_ENVIRONMENT_LINUX: PATH="$PATH:/usr/local/cuda-11.8/bin" CUDA_PATH="/usr/local/cuda-11.8/bin" CUDA_HOME="/usr/local/cuda-11.8" CUDA_ROOT="/usr/local/cuda-11.8" LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda-11.8/lib64" CUDACXX="/usr/local/cuda-11.8/bin/nvcc"
3132
# For Windows, install CUDA
3233
CIBW_BEFORE_ALL_WINDOWS: |
3334
cd src/deepwave
@@ -40,6 +41,7 @@ jobs:
4041
./cuda_12.4.0_windows_network.exe -s nvcc_12.4 cudart_12.4
4142
echo "CUDA_PATH=C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v12.4" >> $GITHUB_ENV
4243
echo "C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v12.4\\bin" >> $GITHUB_PATH
44+
CIBW_ENVIRONMENT_WINDOWS: CUDA_PATH="C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v12.4" PATH="$PATH:C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v12.4\\bin"
4345
CUDAToolkit_ROOT: ${{ env.CUDA_PATH }}
4446

4547
- uses: actions/upload-artifact@v4

CMakeLists.txt

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -89,9 +89,6 @@ else()
8989
message(STATUS "AVX2 is not supported.")
9090
endif()
9191

92-
# Compiler optimization flags
93-
94-
9592
# Add warning flags for GCC/Clang
9693
add_compile_options(
9794
$<$<C_COMPILER_ID:GNU,Clang>:-Wall>
@@ -107,9 +104,9 @@ endif()
107104

108105
# Prepare lists that will collect the object files
109106
set(DEEPWAVE_OBJECTS)
110-
set(SCALAR_ACCURACIES 2 4 6 8)
111-
set(ELASTIC_ACCURACIES 2 4)
112-
set(DTYPES float double)
107+
set(SCALAR_ACCURACIES 2 )#4 6 8)
108+
set(ELASTIC_ACCURACIES 2 )#4)
109+
set(DTYPES float )#double)
113110

114111
# --- CPU object libraries ---
115112
# All CPU object libraries will link to our unified OpenMP target if it was configured.
@@ -130,8 +127,8 @@ foreach(ACCURACY ${SCALAR_ACCURACIES})
130127

131128
if(CMAKE_BUILD_TYPE MATCHES Release)
132129
if(CMAKE_C_COMPILER_ID MATCHES "GNU" OR CMAKE_C_COMPILER_ID MATCHES "Clang" OR CMAKE_C_COMPILER_ID MATCHES "Intel")
133-
target_compile_options(scalar_${ACCURACY}_${DTYPE}_obj PRIVATE -Ofast)
134-
target_compile_options(scalar_born_${ACCURACY}_${DTYPE}_obj PRIVATE -Ofast)
130+
target_compile_options(scalar_${ACCURACY}_${DTYPE}_obj PRIVATE -Ofast -fPIC)
131+
target_compile_options(scalar_born_${ACCURACY}_${DTYPE}_obj PRIVATE -Ofast -fPIC)
135132
elseif(CMAKE_C_COMPILER_ID MATCHES "MSVC")
136133
target_compile_options(scalar_${ACCURACY}_${DTYPE}_obj PRIVATE /O2 /fp:fast)
137134
target_compile_options(scalar_born_${ACCURACY}_${DTYPE}_obj PRIVATE /O2 /fp:fast)
@@ -160,7 +157,7 @@ foreach(ACCURACY ${ELASTIC_ACCURACIES})
160157

161158
if(CMAKE_BUILD_TYPE MATCHES Release)
162159
if(CMAKE_C_COMPILER_ID MATCHES "GNU" OR CMAKE_C_COMPILER_ID MATCHES "Clang" OR CMAKE_C_COMPILER_ID MATCHES "Intel")
163-
target_compile_options(elastic_${ACCURACY}_${DTYPE}_obj PRIVATE -Ofast)
160+
target_compile_options(elastic_${ACCURACY}_${DTYPE}_obj PRIVATE -Ofast -fPIC)
164161
elseif(CMAKE_C_COMPILER_ID MATCHES "MSVC")
165162
target_compile_options(elastic_${ACCURACY}_${DTYPE}_obj PRIVATE /O2 /fp:fast)
166163
endif()
@@ -233,6 +230,10 @@ set_target_properties(deepwave_C PROPERTIES
233230
WINDOWS_EXPORT_ALL_SYMBOLS ON
234231
)
235232

233+
if(OPENMP_CONFIGURED)
234+
target_link_libraries(deepwave_C PRIVATE Deepwave_OpenMP_Interface)
235+
endif()
236+
236237
if(CUDAToolkit_FOUND)
237238
target_link_libraries(deepwave_C PRIVATE CUDA::cudart)
238239
endif()

pyproject.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,11 +51,11 @@ test-requires = "pytest scipy torch"
5151
test-command = "pytest {project}/tests"
5252
# Don't bundle CUDA libraries with the wheel
5353
repair-wheel-command = "auditwheel repair -w {dest_dir} {wheel} --exclude libcuda.so.1 --exclude 'libcudart.so.*'"
54-
environment = { PATH="$PATH:/usr/local/cuda-11.8/bin", CUDA_PATH="/usr/local/cuda-11.8/bin", CUDA_HOME="/usr/local/cuda-11.8", CUDA_ROOT="/usr/local/cuda-11.8", LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda-11.8/lib64", CUDACXX="/usr/local/cuda-11.8/bin/nvcc" }
54+
#environment = { PATH="$PATH:/usr/local/cuda-11.8/bin", CUDA_PATH="/usr/local/cuda-11.8/bin", CUDA_HOME="/usr/local/cuda-11.8", CUDA_ROOT="/usr/local/cuda-11.8", LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda-11.8/lib64", CUDACXX="/usr/local/cuda-11.8/bin/nvcc" }
5555

5656
[tool.cibuildwheel.windows]
5757
test-command = "pytest {project}/tests/test_scalar.py"
58-
environment = { CUDA_PATH="C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v12.4", PATH="$PATH:C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v12.4\\bin" }
58+
#environment = { CUDA_PATH="C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v12.4", PATH="$PATH:C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v12.4\\bin" }
5959

6060
[tool.cibuildwheel.macos]
6161
test-command = "pytest {project}/tests/test_scalar.py"

0 commit comments

Comments
 (0)