Skip to content

Commit 3110a9c

Browse files
authored
Merge branch 'master' into patch-1
2 parents 1eee815 + 8e6cbd6 commit 3110a9c

307 files changed

Lines changed: 34610 additions & 9029 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitmodules

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@
1919
[submodule "third_party/libxsmm"]
2020
path = third_party/libxsmm
2121
url = https://github.com/hfp/libxsmm.git
22-
[submodule "third_party/thrust"]
23-
path = third_party/thrust
24-
url = https://github.com/NVIDIA/thrust.git
2522
[submodule "third_party/pcg"]
2623
path = third_party/pcg
2724
url = https://github.com/imneme/pcg-cpp.git
25+
[submodule "third_party/cccl"]
26+
path = third_party/cccl
27+
url = https://github.com/NVIDIA/cccl.git

CMakeLists.txt

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
cmake_minimum_required(VERSION 3.8)
1+
cmake_minimum_required(VERSION 3.18)
22
########################################
33
# Borrowed and adapted from TVM project
44
########################################
@@ -75,7 +75,7 @@ dgl_feature_option(
7575
dgl_feature_option(
7676
BUILD_GRAPHBOLT
7777
"Build Graphbolt library"
78-
"dev" "dogfood"
78+
"all"
7979
)
8080

8181
dgl_feature_option(
@@ -142,10 +142,10 @@ if(USE_CUDA)
142142
# see https://github.com/NVIDIA/thrust/issues/1401
143143
add_definitions(-DTHRUST_CUB_WRAPPED_NAMESPACE=dgl)
144144
include(cmake/modules/CUDA.cmake)
145-
message(STATUS "Use external CUB/Thrust library for a consistent API and performance.")
146-
cuda_include_directories(BEFORE "${CMAKE_SOURCE_DIR}/third_party/thrust")
147-
cuda_include_directories(BEFORE "${CMAKE_SOURCE_DIR}/third_party/thrust/dependencies/cub")
148-
cuda_include_directories(BEFORE "${CMAKE_SOURCE_DIR}/third_party/thrust/dependencies/libcudacxx/include")
145+
message(STATUS "Use external CCCL library for a consistent API and performance.")
146+
cuda_include_directories(BEFORE "${CMAKE_SOURCE_DIR}/third_party/cccl/thrust")
147+
cuda_include_directories(BEFORE "${CMAKE_SOURCE_DIR}/third_party/cccl/cub")
148+
cuda_include_directories(BEFORE "${CMAKE_SOURCE_DIR}/third_party/cccl/libcudacxx/include")
149149
endif(USE_CUDA)
150150

151151
# initial variables
@@ -527,18 +527,27 @@ endif(BUILD_SPARSE)
527527

528528
if(BUILD_GRAPHBOLT)
529529
message(STATUS "Configuring graphbolt library")
530+
string(REPLACE ";" "\\;" CUDA_ARCHITECTURES_ESCAPED "${CUDA_ARCHITECTURES}")
530531
file(TO_NATIVE_PATH ${CMAKE_CURRENT_BINARY_DIR} BINDIR)
531532
file(TO_NATIVE_PATH ${CMAKE_COMMAND} CMAKE_CMD)
533+
if(USE_CUDA)
534+
get_target_property(GPU_CACHE_INCLUDE_DIRS gpu_cache INCLUDE_DIRECTORIES)
535+
endif(USE_CUDA)
536+
string(REPLACE ";" "\\;" GPU_CACHE_INCLUDE_DIRS_ESCAPED "${GPU_CACHE_INCLUDE_DIRS}")
532537
if(MSVC)
533538
file(TO_NATIVE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/graphbolt/build.bat BUILD_SCRIPT)
534539
add_custom_target(
535540
graphbolt
536541
ALL
537542
${CMAKE_COMMAND} -E env
538543
CMAKE_COMMAND=${CMAKE_CMD}
544+
CUDA_TOOLKIT_ROOT_DIR=${CUDA_TOOLKIT_ROOT_DIR}
545+
USE_CUDA=${USE_CUDA}
539546
BINDIR=${BINDIR}
547+
GPU_CACHE_INCLUDE_DIRS="${GPU_CACHE_INCLUDE_DIRS_ESCAPED}"
540548
CFLAGS=${CMAKE_C_FLAGS}
541549
CXXFLAGS=${CMAKE_CXX_FLAGS}
550+
CUDAARCHS="${CUDA_ARCHITECTURES_ESCAPED}"
542551
LDFLAGS=${CMAKE_SHARED_LINKER_FLAGS}
543552
cmd /e:on /c ${BUILD_SCRIPT} ${TORCH_PYTHON_INTERPS}
544553
DEPENDS ${BUILD_SCRIPT}
@@ -550,12 +559,19 @@ if(BUILD_GRAPHBOLT)
550559
ALL
551560
${CMAKE_COMMAND} -E env
552561
CMAKE_COMMAND=${CMAKE_CMD}
562+
CUDA_TOOLKIT_ROOT_DIR=${CUDA_TOOLKIT_ROOT_DIR}
563+
USE_CUDA=${USE_CUDA}
553564
BINDIR=${CMAKE_CURRENT_BINARY_DIR}
565+
GPU_CACHE_INCLUDE_DIRS="${GPU_CACHE_INCLUDE_DIRS_ESCAPED}"
554566
CFLAGS=${CMAKE_C_FLAGS}
555567
CXXFLAGS=${CMAKE_CXX_FLAGS}
568+
CUDAARCHS="${CUDA_ARCHITECTURES_ESCAPED}"
556569
LDFLAGS=${CMAKE_SHARED_LINKER_FLAGS}
557570
bash ${BUILD_SCRIPT} ${TORCH_PYTHON_INTERPS}
558571
DEPENDS ${BUILD_SCRIPT}
559572
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/graphbolt)
560573
endif(MSVC)
574+
if(USE_CUDA)
575+
add_dependencies(graphbolt gpu_cache)
576+
endif(USE_CUDA)
561577
endif(BUILD_GRAPHBOLT)

CONTRIBUTORS.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ Contributors
3636
* [Michal Szarmach](https://github.com/mszarma) from Intel
3737
* [Izabela Mazur](https://github.com/IzabelaMazur) from Intel
3838
* [Sanchit Misra](https://github.com/sanchit-misra) from Intel
39+
* [Andrzej Kotlowski](https://github.com/anko-intel) from Intel
3940
* [Sheng Zha](https://github.com/szha) from AWS
4041
* [Yifei Ma](https://github.com/yifeim) from AWS
4142
* [Yizhi Liu](https://github.com/yzhliu) from AWS

Jenkinsfile

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,7 @@ def is_authorized(name) {
158158
'frozenbugs', 'peizhou001', 'zheng-da', 'czkkkkkk', 'thvasilo',
159159
// Intern:
160160
'keli-wen', 'caojy1998', 'RamonZhou', 'xiangyuzhi', 'Skeleton003', 'yxy235',
161+
'hutiechuan',
161162
// Friends:
162163
'nv-dlasalle', 'yaox12', 'chang-l', 'Kh4L', 'VibhuJawa', 'kkranen',
163164
'bgawrych', 'itaraban', 'daniil-sizov', 'anko-intel', 'Kacper-Pietkun',
@@ -317,7 +318,7 @@ pipeline {
317318
agent {
318319
docker {
319320
label "dgl-ci-linux-cpu"
320-
image "dgllib/dgl-ci-cpu:v230711"
321+
image "dgllib/dgl-ci-cpu:v240123_1000"
321322
args "-u root"
322323
alwaysPull true
323324
}
@@ -336,7 +337,7 @@ pipeline {
336337
agent {
337338
docker {
338339
label "dgl-ci-linux-cpu"
339-
image "dgllib/dgl-ci-gpu:cu116_v230711"
340+
image "dgllib/dgl-ci-gpu:cu116_v240123_1000"
340341
args "-u root"
341342
alwaysPull true
342343
}
@@ -391,7 +392,7 @@ pipeline {
391392
agent {
392393
docker {
393394
label "dgl-ci-linux-cpu"
394-
image "dgllib/dgl-ci-cpu:v230711"
395+
image "dgllib/dgl-ci-cpu:v240123_1000"
395396
args "-u root"
396397
alwaysPull true
397398
}
@@ -410,7 +411,7 @@ pipeline {
410411
agent {
411412
docker {
412413
label "dgl-ci-linux-gpu"
413-
image "dgllib/dgl-ci-gpu:cu116_v230711"
414+
image "dgllib/dgl-ci-gpu:cu116_v240123_1000"
414415
args "-u root --runtime nvidia"
415416
alwaysPull true
416417
}
@@ -450,6 +451,8 @@ pipeline {
450451
steps {
451452
unit_test_linux('tensorflow', 'cpu')
452453
}
454+
// Tensorflow is deprecated.
455+
when { expression { false } }
453456
}
454457
}
455458
post {
@@ -463,7 +466,7 @@ pipeline {
463466
agent {
464467
docker {
465468
label "dgl-ci-linux-gpu"
466-
image "dgllib/dgl-ci-gpu:cu116_v230711"
469+
image "dgllib/dgl-ci-gpu:cu116_v240123_1000"
467470
args "-u root --runtime nvidia"
468471
alwaysPull true
469472
}
@@ -488,7 +491,7 @@ pipeline {
488491
agent {
489492
docker {
490493
label "dgl-ci-linux-cpu"
491-
image "dgllib/dgl-ci-cpu:v230711"
494+
image "dgllib/dgl-ci-cpu:v240123_1000"
492495
args "-u root --shm-size=4gb"
493496
alwaysPull true
494497
}
@@ -541,7 +544,7 @@ pipeline {
541544
agent {
542545
docker {
543546
label "dgl-ci-linux-gpu"
544-
image "dgllib/dgl-ci-gpu:cu116_v230711"
547+
image "dgllib/dgl-ci-gpu:cu116_v240123_1000"
545548
args "-u root --runtime nvidia --shm-size=8gb"
546549
alwaysPull true
547550
}
@@ -570,7 +573,7 @@ pipeline {
570573
agent {
571574
docker {
572575
label "dgl-ci-linux-cpu"
573-
image "dgllib/dgl-ci-cpu:v230711"
576+
image "dgllib/dgl-ci-cpu:v240123_1000"
574577
args "-u root --shm-size=4gb"
575578
alwaysPull true
576579
}
@@ -580,7 +583,6 @@ pipeline {
580583
steps {
581584
unit_distributed_linux('pytorch', 'cpu')
582585
}
583-
when { expression { false } }
584586
}
585587
}
586588
post {
@@ -618,7 +620,7 @@ pipeline {
618620
agent {
619621
docker {
620622
label "dgl-ci-linux-cpu"
621-
image "dgllib/dgl-ci-cpu:v230711"
623+
image "dgllib/dgl-ci-cpu:v240123_1000"
622624
args "-u root"
623625
alwaysPull true
624626
}

cmake/modules/CUDA.cmake

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,17 @@ endif()
1010
include(CheckCXXCompilerFlag)
1111
check_cxx_compiler_flag("-std=c++17" SUPPORT_CXX17)
1212

13-
set(dgl_known_gpu_archs "35" "50" "60" "70")
13+
set(dgl_known_gpu_archs "35" "50" "60" "70" "75")
1414
set(dgl_cuda_arch_ptx "70")
1515
if (CUDA_VERSION_MAJOR GREATER_EQUAL "11")
16-
list(APPEND dgl_known_gpu_archs "80")
17-
set(dgl_cuda_arch_ptx "80")
16+
list(APPEND dgl_known_gpu_archs "80" "86")
17+
set(dgl_cuda_arch_ptx "80" "86")
1818
endif()
19-
# CMake 3.5 doesn't support VERSION_GREATER_EQUAL
20-
if (NOT CUDA_VERSION VERSION_LESS "11.8")
19+
if (CUDA_VERSION VERSION_GREATER_EQUAL "11.8")
2120
list(APPEND dgl_known_gpu_archs "90")
2221
set(dgl_cuda_arch_ptx "90")
2322
endif()
24-
if (NOT CUDA_VERSION VERSION_LESS "12.0")
23+
if (CUDA_VERSION VERSION_GREATER_EQUAL "12.0")
2524
list(REMOVE_ITEM dgl_known_gpu_archs "35")
2625
endif()
2726

@@ -177,17 +176,20 @@ function(dgl_select_nvcc_arch_flags out_variable)
177176

178177
set(__nvcc_flags "--expt-relaxed-constexpr")
179178
set(__nvcc_archs_readable "")
179+
set(__archs "")
180180

181181
# Tell NVCC to add binaries for the specified GPUs
182182
foreach(__arch ${__cuda_arch_bin})
183183
if(__arch MATCHES "([0-9]+)\\(([0-9]+)\\)")
184184
# User explicitly specified PTX for the concrete BIN
185185
list(APPEND __nvcc_flags -gencode arch=compute_${CMAKE_MATCH_2},code=sm_${CMAKE_MATCH_1})
186186
list(APPEND __nvcc_archs_readable sm_${CMAKE_MATCH_1})
187+
list(APPEND __archs ${CMAKE_MATCH_1})
187188
else()
188189
# User didn't explicitly specify PTX for the concrete BIN, we assume PTX=BIN
189190
list(APPEND __nvcc_flags -gencode arch=compute_${__arch},code=sm_${__arch})
190191
list(APPEND __nvcc_archs_readable sm_${__arch})
192+
list(APPEND __archs ${__arch})
191193
endif()
192194
endforeach()
193195

@@ -200,6 +202,7 @@ function(dgl_select_nvcc_arch_flags out_variable)
200202
string(REPLACE ";" " " __nvcc_archs_readable "${__nvcc_archs_readable}")
201203
set(${out_variable} ${__nvcc_flags} PARENT_SCOPE)
202204
set(${out_variable}_readable ${__nvcc_archs_readable} PARENT_SCOPE)
205+
set(CUDA_ARCHITECTURES ${__archs} PARENT_SCOPE)
203206
endfunction()
204207

205208
################################################################################################

conda/dgl/meta.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package:
22
name: dgl{{ environ.get('DGL_PACKAGE_SUFFIX', '') }}
3-
version: 1.2{{ environ.get('DGL_VERSION_SUFFIX', '') }}
3+
version: 2.1{{ environ.get('DGL_VERSION_SUFFIX', '') }}
44

55
source:
66
git_rev: {{ environ.get('DGL_RELEASE_BRANCH', 'master') }}

dgl_sparse/CMakeLists.txt

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
cmake_minimum_required(VERSION 3.5)
1+
cmake_minimum_required(VERSION 3.8)
22
project(dgl_sparse C CXX)
33

44
# Find PyTorch cmake files and PyTorch versions with the python interpreter $PYTHON_INTERP
@@ -20,8 +20,16 @@ string(REPLACE "." ";" TORCH_VERSION_LIST ${TORCH_VER})
2020
list(GET TORCH_VERSION_LIST 0 TORCH_VERSION_MAJOR)
2121
list(GET TORCH_VERSION_LIST 1 TORCH_VERSION_MINOR)
2222

23+
set(SPARSE_LINKER_LIBS "")
24+
2325
if(USE_CUDA)
2426
add_definitions(-DDGL_USE_CUDA)
27+
enable_language(CUDA)
28+
endif()
29+
30+
# For windows, define NOMINMAX to avoid conflict with std::min/max
31+
if(MSVC)
32+
add_definitions(-DNOMINMAX)
2533
endif()
2634

2735
set(Torch_DIR "${TORCH_PREFIX}/Torch")
@@ -32,6 +40,7 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TORCH_CXX_FLAGS}")
3240
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -g3 -ggdb")
3341

3442
set(LIB_DGL_SPARSE_NAME "dgl_sparse_pytorch_${TORCH_VER}")
43+
list(APPEND SPARSE_LINKER_LIBS ${TORCH_LIBRARIES})
3544

3645
set(SPARSE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src")
3746
set(SPARSE_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/include")
@@ -40,10 +49,17 @@ file(GLOB SPARSE_SRC
4049
${SPARSE_DIR}/*.cc
4150
${SPARSE_DIR}/cpu/*.cc
4251
)
52+
if(USE_CUDA)
53+
file(GLOB SPARSE_CUDA_SRC
54+
${SPARSE_DIR}/cuda/*.cu
55+
)
56+
list(APPEND SPARSE_SRC ${SPARSE_CUDA_SRC})
57+
endif()
58+
4359
add_library(${LIB_DGL_SPARSE_NAME} SHARED ${SPARSE_SRC} ${SPARSE_HEADERS})
4460
target_include_directories(
4561
${LIB_DGL_SPARSE_NAME} PRIVATE ${SPARSE_DIR} ${SPARSE_HEADERS})
46-
target_link_libraries(${LIB_DGL_SPARSE_NAME} "${TORCH_LIBRARIES}")
62+
target_link_libraries(${LIB_DGL_SPARSE_NAME} ${SPARSE_LINKER_LIBS})
4763
target_compile_definitions(${LIB_DGL_SPARSE_NAME} PRIVATE TORCH_VERSION_MAJOR=${TORCH_VERSION_MAJOR})
4864
target_compile_definitions(${LIB_DGL_SPARSE_NAME} PRIVATE TORCH_VERSION_MINOR=${TORCH_VERSION_MINOR})
4965

dgl_sparse/include/sparse/matrix_ops.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
#ifndef SPARSE_MATRIX_OPS_H_
77
#define SPARSE_MATRIX_OPS_H_
88

9-
#include <sparse/sparse_format.h>
109
#include <sparse/sparse_matrix.h>
1110

1211
#include <tuple>
@@ -47,7 +46,7 @@ std::tuple<std::shared_ptr<COO>, torch::Tensor, torch::Tensor> COOIntersection(
4746
*/
4847
std::tuple<c10::intrusive_ptr<SparseMatrix>, torch::Tensor> Compact(
4948
const c10::intrusive_ptr<SparseMatrix>& mat, int64_t dim,
50-
torch::Tensor leading_indices);
49+
const torch::optional<torch::Tensor>& leading_indices);
5150

5251
} // namespace sparse
5352
} // namespace dgl

dgl_sparse/src/macro.h

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

0 commit comments

Comments
 (0)