CMakeLists.txt 3.9 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 60
endif()

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

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

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

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

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

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

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

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

133
if(NOT WIN32)
134 135 136
  cc_test(
    mmap_allocator_test
    SRCS mmap_allocator_test.cc
L
Leo Chen 已提交
137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154
    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 已提交
155
      COMMAND wget -nc --no-check-certificate
L
Leo Chen 已提交
156 157
              https://paddle-ci.cdn.bcebos.com/buddy_allocator_test_data.tar
      COMMAND tar -xf buddy_allocator_test_data.tar)
158
  endif()
W
Wilber 已提交
159
endif()