CMakeLists.txt 4.2 KB
Newer Older
L
Leo Chen 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
include(ExternalProject)

set(ALLOCATOR_DEPS place stats profiler)
set(ALLOCATOR_SRCS
    allocator.cc
    cpu_allocator.cc
    locked_allocator.cc
    aligned_allocator.cc
    buffered_allocator.cc
    best_fit_allocator.cc
    naive_best_fit_allocator.cc
    allocator_strategy.cc
    allocator_facade.cc
    auto_growth_best_fit_allocator.cc
    virtual_memory_auto_growth_best_fit_allocator.cc
    retry_allocator.cc
    memory_block.cc
    memory_block_desc.cc
    meta_cache.cc
    buddy_allocator.cc
    system_allocator.cc)
22

L
Leo Chen 已提交
23 24 25 26 27 28 29 30 31 32
if(WITH_GPU OR WITH_ROCM)
  list(
    APPEND
    ALLOCATOR_SRCS
    cuda_allocator.cc
    cuda_managed_allocator.cc
    pinned_allocator.cc
    stream_safe_cuda_allocator.cc
    thread_local_allocator.cc)
  list(APPEND ALLOCATOR_DEPS cuda_device_guard gpu_info dynload_cuda)
33 34
endif()

35
if(WITH_GPU)
L
Leo Chen 已提交
36 37
  list(APPEND ALLOCATOR_DEPS cuda_graph)
endif()
38

L
Leo Chen 已提交
39 40 41 42 43 44 45 46
if(CUDA_VERSION VERSION_GREATER_EQUAL 10.2)
  list(APPEND ALLOCATOR_SRCS cuda_virtual_mem_allocator.cc)
endif()

if(NOT WIN32)
  list(APPEND ALLOCATOR_SRCS mmap_allocator.cc)
  if(WITH_GPU)
    list(APPEND ALLOCATOR_SRCS cuda_ipc_allocator.cc)
47
  endif()
48 49
endif()

L
Leo Chen 已提交
50 51 52 53
if(WITH_ASCEND_CL)
  list(APPEND ALLOCATOR_SRCS npu_allocator.cc npu_pinned_allocator.cc)
  list(APPEND ALLOCATOR_DEPS npu_info)
endif()
54

L
Leo Chen 已提交
55 56 57
if(WITH_CUSTOM_DEVICE)
  list(APPEND ALLOCATOR_SRCS custom_allocator.cc)
  list(APPEND ALLOCATOR_DEPS device_manager)
S
sneaxiy 已提交
58
endif()
59

L
Leo Chen 已提交
60 61
if(WITH_XPU)
  list(APPEND ALLOCATOR_DEPS xpu_info)
62 63
endif()

L
Leo Chen 已提交
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
if(WITH_IPU)
  list(APPEND ALLOCATOR_DEPS ipu_info)
endif()

add_library(allocator "${ALLOCATOR_SRCS}")
target_link_libraries(allocator ${ALLOCATOR_DEPS})
# note: why only add dependency for framework_proto.
# Because it is needed to generate framework.pb.h used in some header files.
add_dependencies(allocator framework_proto)
set_property(GLOBAL PROPERTY FLUID_MODULES allocator)

cc_test(
  naive_best_fit_allocator_test
  SRCS naive_best_fit_allocator_test.cc
  DEPS allocator)
cc_test(
  buffered_allocator_test
  SRCS buffered_allocator_test.cc
82
  DEPS allocator)
S
sneaxiy 已提交
83

L
Leo Chen 已提交
84 85 86 87 88
if(WITH_GPU)
  nv_test(
    thread_local_allocator_test
    SRCS thread_local_allocator_test.cc
    DEPS allocator)
89
endif()
L
Leo Chen 已提交
90 91 92 93 94
if(WITH_ROCM)
  hip_test(
    thread_local_allocator_test
    SRCS thread_local_allocator_test.cc
    DEPS allocator)
95 96
endif()

97 98 99 100
if(WITH_GPU)
  nv_test(
    best_fit_allocator_test
    SRCS best_fit_allocator_test.cc best_fit_allocator_test.cu
L
Leo Chen 已提交
101
    DEPS allocator memcpy)
102 103 104 105
elseif(WITH_ROCM)
  hip_test(
    best_fit_allocator_test
    SRCS best_fit_allocator_test.cc best_fit_allocator_test.cu
L
Leo Chen 已提交
106
    DEPS allocator memcpy)
107
else()
108 109 110
  cc_test(
    best_fit_allocator_test
    SRCS best_fit_allocator_test.cc
L
Leo Chen 已提交
111
    DEPS allocator)
112 113
endif()

114 115 116
cc_test(
  test_aligned_allocator
  SRCS test_aligned_allocator.cc
L
Leo Chen 已提交
117
  DEPS allocator)
Y
Yu Yang 已提交
118

119 120 121
cc_test(
  retry_allocator_test
  SRCS retry_allocator_test.cc
L
Leo Chen 已提交
122 123 124 125
  DEPS allocator)
if(TEST retry_allocator_test)
  set_tests_properties(retry_allocator_test PROPERTIES LABELS
                                                       "RUN_TYPE=EXCLUSIVE")
Z
Zeng Jinle 已提交
126 127
endif()

128 129 130
cc_test(
  allocator_facade_abs_flags_test
  SRCS allocator_facade_abs_flags_test.cc
L
Leo Chen 已提交
131
  DEPS allocator)
S
sneaxiy 已提交
132

133 134 135
cc_test(
  allocator_facade_frac_flags_test
  SRCS allocator_facade_frac_flags_test.cc
L
Leo Chen 已提交
136
  DEPS allocator)
137

138 139 140
cc_test(
  auto_growth_best_fit_allocator_facade_test
  SRCS auto_growth_best_fit_allocator_facade_test.cc
L
Leo Chen 已提交
141
  DEPS allocator)
142 143 144
cc_test(
  auto_growth_best_fit_allocator_test
  SRCS auto_growth_best_fit_allocator_test.cc
L
Leo Chen 已提交
145
  DEPS allocator)
146

147
if(NOT WIN32)
148 149 150
  cc_test(
    mmap_allocator_test
    SRCS mmap_allocator_test.cc
L
Leo Chen 已提交
151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177
    DEPS allocator)
endif()

cc_test(
  system_allocator_test
  SRCS system_allocator_test.cc
  DEPS allocator)

cc_test(
  buddy_allocator_test
  SRCS buddy_allocator_test.cc
  DEPS allocator)

if(WITH_TESTING)
  if(TEST buddy_allocator_test)
    set_tests_properties(buddy_allocator_test PROPERTIES LABELS
                                                         "RUN_TYPE=EXCLUSIVE")
  endif()

  # TODO(zhiqiu): why not win32? because wget is not found on windows
  if(NOT WIN32)
    add_custom_target(
      download_data
      COMMAND wget -nc
              https://paddle-ci.cdn.bcebos.com/buddy_allocator_test_data.tar
      COMMAND tar -xf buddy_allocator_test_data.tar)
    add_dependencies(buddy_allocator_test download_data)
178
  endif()
W
Wilber 已提交
179
endif()