Skip to content

Commit 501b2b7

Browse files
[Bug] Multiple fixes for CUDA 11 support (dmlc#2333)
* multiple fixes * fix CI * fiddle * revert stubs * remove stubs * poke * remove linking of driver library * minor Co-authored-by: Minjie Wang <[email protected]>
1 parent d89f825 commit 501b2b7

File tree

5 files changed

+13
-40
lines changed

5 files changed

+13
-40
lines changed

CMakeLists.txt

+3-2
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@ if(USE_CUDA)
4646
# is fixed by https://github.com/NVIDIA/cub/commit/9143e47e048641aa0e6ddfd645bcd54ff1059939
4747
# in 11.1.
4848
message(STATUS "Detected CUDA of version ${CUDA_VERSION}. Use external CUB/Thrust library.")
49-
list(INSERT CUDA_INCLUDE_DIRS 0 "${CMAKE_SOURCE_DIR}/third_party/thrust")
50-
list(INSERT CUDA_INCLUDE_DIRS 0 "${CMAKE_SOURCE_DIR}/third_party/cub")
49+
cuda_include_directories(BEFORE "${CMAKE_SOURCE_DIR}/third_party/thrust")
50+
cuda_include_directories(BEFORE "${CMAKE_SOURCE_DIR}/third_party/cub")
5151
endif()
5252
endif(USE_CUDA)
5353

@@ -92,6 +92,7 @@ else(MSVC)
9292
check_cxx_compiler_flag("-std=c++14" SUPPORT_CXX14)
9393
set(CMAKE_C_FLAGS "-O2 -Wall -fPIC ${CMAKE_C_FLAGS}")
9494
set(CMAKE_CXX_FLAGS "-O2 -Wall -fPIC -std=c++14 ${CMAKE_CXX_FLAGS}")
95+
set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--warn-common ${CMAKE_SHARED_LINKER_FLAGS}")
9596
endif(MSVC)
9697

9798
if(USE_OPENMP)

Jenkinsfile

+1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ def unpack_lib(name, libs) {
3030
def build_dgl_linux(dev) {
3131
init_git()
3232
sh "bash tests/scripts/build_dgl.sh ${dev}"
33+
sh "ls -lh /usr/lib/x86_64-linux-gnu/"
3334
pack_lib("dgl-${dev}-linux", dgl_linux_libs)
3435
}
3536

cmake/modules/CUDA.cmake

+3-2
Original file line numberDiff line numberDiff line change
@@ -253,8 +253,9 @@ macro(dgl_config_cuda out_variable)
253253
list(APPEND CMAKE_CUDA_FLAGS "${NVCC_FLAGS_EXTRA}")
254254

255255
list(APPEND DGL_LINKER_LIBS
256-
${CUDA_CUDA_LIBRARY} ${CUDA_CUDART_LIBRARY}
257-
${CUDA_CUBLAS_LIBRARIES} ${CUDA_cusparse_LIBRARY})
256+
${CUDA_CUDART_LIBRARY}
257+
${CUDA_CUBLAS_LIBRARIES}
258+
${CUDA_cusparse_LIBRARY})
258259

259260
set(${out_variable} ${DGL_CUDA_SRC})
260261
endmacro()

cmake/util/FindCUDA.cmake

+6-16
Original file line numberDiff line numberDiff line change
@@ -41,28 +41,18 @@ macro(find_cuda use_cuda)
4141
${CUDA_TOOLKIT_ROOT_DIR}/lib/x64
4242
${CUDA_TOOLKIT_ROOT_DIR}/lib/Win32)
4343
else(MSVC)
44-
find_library(_CUDA_CUDA_LIBRARY cuda
45-
PATHS ${CUDA_TOOLKIT_ROOT_DIR}
46-
PATH_SUFFIXES lib lib64 targets/x86_64-linux/lib targets/x86_64-linux/lib/stubs lib64/stubs
47-
NO_DEFAULT_PATH)
48-
if(_CUDA_CUDA_LIBRARY)
49-
set(CUDA_CUDA_LIBRARY ${_CUDA_CUDA_LIBRARY})
50-
endif()
51-
find_library(CUDA_NVRTC_LIBRARY nvrtc
52-
PATHS ${CUDA_TOOLKIT_ROOT_DIR}
53-
PATH_SUFFIXES lib lib64 targets/x86_64-linux/lib targets/x86_64-linux/lib/stubs lib64/stubs lib/x86_64-linux-gnu
54-
NO_DEFAULT_PATH)
55-
#find_library(CUDA_CUDNN_LIBRARY cudnn
56-
# ${CUDA_TOOLKIT_ROOT_DIR}/lib64
57-
# ${CUDA_TOOLKIT_ROOT_DIR}/lib)
44+
#find_library(CUDA_CUDA_LIBRARY cuda
45+
# PATHS ${CUDA_TOOLKIT_ROOT_DIR}
46+
# PATH_SUFFIXES lib lib64 targets/x86_64-linux/lib
47+
# NO_DEFAULT_PATH)
5848
find_library(CUDA_CUBLAS_LIBRARY cublas
5949
${CUDA_TOOLKIT_ROOT_DIR}/lib64
6050
${CUDA_TOOLKIT_ROOT_DIR}/lib)
6151
endif(MSVC)
6252
message(STATUS "Found CUDA_TOOLKIT_ROOT_DIR=" ${CUDA_TOOLKIT_ROOT_DIR})
63-
message(STATUS "Found CUDA_CUDA_LIBRARY=" ${CUDA_CUDA_LIBRARY})
53+
#message(STATUS "Found CUDA_CUDA_LIBRARY=" ${CUDA_CUDA_LIBRARY})
6454
message(STATUS "Found CUDA_CUDART_LIBRARY=" ${CUDA_CUDART_LIBRARY})
65-
message(STATUS "Found CUDA_NVRTC_LIBRARY=" ${CUDA_NVRTC_LIBRARY})
55+
#message(STATUS "Found CUDA_NVRTC_LIBRARY=" ${CUDA_NVRTC_LIBRARY})
6656
#message(STATUS "Found CUDA_CUDNN_LIBRARY=" ${CUDA_CUDNN_LIBRARY})
6757
message(STATUS "Found CUDA_CUBLAS_LIBRARY=" ${CUDA_CUBLAS_LIBRARY})
6858
endif(CUDA_FOUND)

src/array/cpu/array_op_impl.cc

-20
Original file line numberDiff line numberDiff line change
@@ -222,26 +222,6 @@ IdArray Relabel_(const std::vector<IdArray>& arrays) {
222222
template IdArray Relabel_<kDLCPU, int32_t>(const std::vector<IdArray>& arrays);
223223
template IdArray Relabel_<kDLCPU, int64_t>(const std::vector<IdArray>& arrays);
224224

225-
226-
///////////////////////////// NonZero /////////////////////////////
227-
228-
template <DLDeviceType XPU, typename IdType>
229-
IdArray NonZero(BoolArray bool_arr) {
230-
const IdType* bool_data = static_cast<IdType*>(bool_arr->data);
231-
CHECK(bool_arr->ndim == 1) << "NonZero only supports 1D array";
232-
std::vector<IdType> nonzero_indices;
233-
for (int64_t i = 0; i < bool_arr->shape[0]; i++) {
234-
if ((bool_data[i]) != 0) {
235-
nonzero_indices.push_back(i);
236-
}
237-
}
238-
return VecToIdArray(nonzero_indices, sizeof(IdType) * 8);
239-
}
240-
241-
// TODO(Allen): Implement GPU version
242-
template IdArray NonZero<kDLCPU, int32_t>(BoolArray bool_arr);
243-
template IdArray NonZero<kDLCPU, int64_t>(BoolArray bool_arr);
244-
245225
} // namespace impl
246226
} // namespace aten
247227
} // namespace dgl

0 commit comments

Comments
 (0)