ROCM.cmake 3.4 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
################################################################################################
# Config hip compilation.
# Usage:
#   dgl_config_hip(<dgl_cuda_src>)
macro(dgl_config_hip out_variable)
  if(NOT HIP_FOUND)
    message(FATAL_ERROR "Cannot find HIP.")
  endif()
  # always set the includedir when cuda is available
  # avoid global retrigger of cmake
	include_directories(${CUDA_INCLUDE_DIRS})

  add_definitions(-DDGL_USE_CUDA)
  
  # src/array/cuda/spmm_hetero.cu
  add_definitions(-DCUDART_VERSION_LT_11000=true)

  # set(DGL_DEBUG_SRC
  #   src/array/cuda/csr_transpose.cc

  #   src/array/cuda/array_cumsum.cu
  #   src/array/cuda/array_index_select.cu
  #   src/array/cuda/array_nonzero.cu
  #   src/array/cuda/array_op_impl.cu
  #   src/array/cuda/array_scatter.cu
  #   src/array/cuda/array_sort.cu
  #   src/array/cuda/coo2csr.cu
  #   src/array/cuda/coo_sort.cu
  #   src/array/cuda/csr2coo.cu
  #   src/array/cuda/csr_get_data.cu
  #   src/array/cuda/csr_mm.cu
  #   src/array/cuda/csr_sort.cu
  #   src/array/cuda/csr_sum.cu
  #   src/array/cuda/cuda_filter.cu
  #   src/array/cuda/disjoint_union.cu
  #   src/array/cuda/gather_mm.cu
  #   src/array/cuda/negative_sampling.cu
  #   src/array/cuda/rowwise_sampling.cu
  #   src/array/cuda/rowwise_sampling_prob.cu
  #   src/array/cuda/sddmm.cu
  #   src/array/cuda/sddmm_hetero_coo.cu
  #   src/array/cuda/sddmm_hetero_csr.cu
  #   src/array/cuda/segment_reduce.cu
  #   src/array/cuda/spmat_op_impl_coo.cu
  #   src/array/cuda/spmat_op_impl_csr.cu
  #   src/array/cuda/spmm.cu
  #   src/array/cuda/spmm_hetero.cu
  #   src/array/cuda/utils.cu

  #   src/array/cuda/uvm/array_index_select_uvm.cu

  #   src/partition/cuda/partition_op.cu

  #   src/runtime/cuda/cuda_device_api.cc

  #   src/runtime/cuda/cuda_hashtable.cu
  #   src/runtime/cuda/nccl_api.cu

  #   src/geometry/cuda/geometry_op_impl.cu

  #   src/graph/transform/cuda/cuda_compact_graph.cu
  #   src/graph/transform/cuda/cuda_to_block.cu
  #   src/graph/transform/cuda/knn.cu

  #   src/graph/sampling/randomwalks/frequency_hashmap.cu
  #   src/graph/sampling/randomwalks/get_node_types_gpu.cu
  #   src/graph/sampling/randomwalks/randomwalk_gpu.cu
  # )

  set_source_files_properties(src/random/random.cc PROPERTIES HIP_SOURCE_PROPERTY_FORMAT 1)
  set_source_files_properties(src/array/cuda/csr_transpose.cc PROPERTIES HIP_SOURCE_PROPERTY_FORMAT 1)
  set_source_files_properties(src/runtime/cuda/cuda_device_api.cc PROPERTIES HIP_SOURCE_PROPERTY_FORMAT 1)

  # set(${out_variable} ${DGL_DEBUG_SRC})


  file(GLOB_RECURSE DGL_HIP_SRC
    src/array/cuda/*.cc
    src/array/cuda/*.cu
    src/array/cuda/uvm/*.cc
    src/array/cuda/uvm/*.cu
    src/kernel/cuda/*.cc
    src/kernel/cuda/*.cu
    src/partition/cuda/*.cu
    src/runtime/cuda/*.cc
    src/runtime/cuda/*.cu
    src/geometry/cuda/*.cu
    src/graph/transform/cuda/*.cu
    src/graph/sampling/randomwalks/*.cu
  )

  find_library(DCU_RUNTIME amdhip64 ${ROCM_PATH}/lib)
  find_library(DCU_SPARSE hipsparse ${ROCM_PATH}/lib)
  find_library(DCU_BLAS hipblas ${ROCM_PATH}/lib)
  find_library(DCU_RAND hiprand ${ROCM_PATH}/lib)
  message(STATUS "Found DCU_RUNTIME: ${DCU_RUNTIME}")
  message(STATUS "Found DCU_SPARSE: ${DCU_SPARSE}")
  message(STATUS "Found DCU_BLAS: ${DCU_BLAS}")
  message(STATUS "Found DCU_RAND: ${DCU_RAND}")

  list(APPEND DGL_LINKER_LIBS
    ${DCU_RUNTIME}
    ${DCU_SPARSE}
    ${DCU_BLAS}
    ${DCU_RAND}
  )

  set(${out_variable} ${DGL_HIP_SRC})
endmacro()