CMakeLists.txt 4.0 KB
Newer Older
L
Leo Chen 已提交
1 2
include(ExternalProject)

3
set(ALLOCATOR_DEPS place stats profiler phi device_context)
L
Leo Chen 已提交
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
set(ALLOCATOR_SRCS
    allocator.cc
    cpu_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)
21

L
Leo Chen 已提交
22 23 24 25 26 27 28 29 30 31
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)
32 33
endif()

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

L
Leo Chen 已提交
38 39 40 41 42 43 44 45
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)
46
  endif()
47 48
endif()

49 50 51 52
if(UNIX AND NOT APPLE)
  list(APPEND ALLOCATOR_DEPS rt)
endif()

L
Leo Chen 已提交
53 54
if(WITH_CUSTOM_DEVICE)
  list(APPEND ALLOCATOR_SRCS custom_allocator.cc)
S
sneaxiy 已提交
55
endif()
56

L
Leo Chen 已提交
57 58
if(WITH_XPU)
  list(APPEND ALLOCATOR_DEPS xpu_info)
59
  list(APPEND ALLOCATOR_SRCS xpu_allocator.cc stream_safe_xpu_allocator.cc)
60 61
endif()

L
Leo Chen 已提交
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
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)
77 78
cc_test_old(buffered_allocator_test SRCS buffered_allocator_test.cc DEPS
            allocator)
S
sneaxiy 已提交
79

L
Leo Chen 已提交
80 81 82 83 84
if(WITH_GPU)
  nv_test(
    thread_local_allocator_test
    SRCS thread_local_allocator_test.cc
    DEPS allocator)
85
endif()
L
Leo Chen 已提交
86 87 88 89 90
if(WITH_ROCM)
  hip_test(
    thread_local_allocator_test
    SRCS thread_local_allocator_test.cc
    DEPS allocator)
91 92
endif()

93 94 95 96
if(WITH_GPU)
  nv_test(
    best_fit_allocator_test
    SRCS best_fit_allocator_test.cc best_fit_allocator_test.cu
L
Leo Chen 已提交
97
    DEPS allocator memcpy)
98 99 100 101
elseif(WITH_ROCM)
  hip_test(
    best_fit_allocator_test
    SRCS best_fit_allocator_test.cc best_fit_allocator_test.cu
L
Leo Chen 已提交
102
    DEPS allocator memcpy)
103
else()
104 105
  cc_test_old(best_fit_allocator_test SRCS best_fit_allocator_test.cc DEPS
              allocator)
106 107
endif()

108 109
cc_test_old(test_aligned_allocator SRCS test_aligned_allocator.cc DEPS
            allocator)
Y
Yu Yang 已提交
110

111
cc_test_old(retry_allocator_test SRCS retry_allocator_test.cc DEPS allocator)
L
Leo Chen 已提交
112 113 114
if(TEST retry_allocator_test)
  set_tests_properties(retry_allocator_test PROPERTIES LABELS
                                                       "RUN_TYPE=EXCLUSIVE")
Z
Zeng Jinle 已提交
115 116
endif()

117 118 119
cc_test(
  allocator_facade_abs_flags_test
  SRCS allocator_facade_abs_flags_test.cc
L
Leo Chen 已提交
120
  DEPS allocator)
S
sneaxiy 已提交
121

122 123 124
cc_test(
  allocator_facade_frac_flags_test
  SRCS allocator_facade_frac_flags_test.cc
L
Leo Chen 已提交
125
  DEPS allocator)
126

127 128 129
cc_test(
  auto_growth_best_fit_allocator_facade_test
  SRCS auto_growth_best_fit_allocator_facade_test.cc
L
Leo Chen 已提交
130
  DEPS allocator)
131 132
cc_test_old(auto_growth_best_fit_allocator_test SRCS
            auto_growth_best_fit_allocator_test.cc DEPS allocator)
133

134
if(NOT WIN32)
135 136 137
  cc_test(
    mmap_allocator_test
    SRCS mmap_allocator_test.cc
L
Leo Chen 已提交
138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155
    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)
  # TODO(zhiqiu): why not win32? because wget is not found on windows
  if(NOT WIN32)
    add_custom_target(
      download_data
D
danleifeng 已提交
156
      COMMAND wget -nc --no-check-certificate
L
Leo Chen 已提交
157 158
              https://paddle-ci.cdn.bcebos.com/buddy_allocator_test_data.tar
      COMMAND tar -xf buddy_allocator_test_data.tar)
159
  endif()
W
Wilber 已提交
160
endif()