File: CMakeLists.txt

package info (click to toggle)
pytorch 1.13.1%2Bdfsg-4
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 139,252 kB
  • sloc: cpp: 1,100,274; python: 706,454; ansic: 83,052; asm: 7,618; java: 3,273; sh: 2,841; javascript: 612; makefile: 323; xml: 269; ruby: 185; yacc: 144; objc: 68; lex: 44
file content (57 lines) | stat: -rw-r--r-- 2,298 bytes parent folder | download
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
file(GLOB Detectron_CPU_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/*.cc)
file(GLOB Detectron_GPU_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/*.cu)
file(GLOB_RECURSE Detectron_HIP_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/*.hip)

if(BUILD_CAFFE2_OPS)
  if(USE_OPENMP AND OPENMP_FOUND)
    Set(OpenMP_link ${OpenMP_CXX_LIBRARIES})
  endif()

  # Note(ilijar): Since Detectron ops currently have no
  # CPU implementation, we only build GPU ops for now.
  if(USE_CUDA)
    add_library(
        caffe2_detectron_ops_gpu SHARED
        ${Detectron_CPU_SRCS}
        ${Detectron_GPU_SRCS})

    torch_set_target_props(caffe2_detectron_ops_gpu)
    target_link_libraries(caffe2_detectron_ops_gpu PRIVATE torch ${OpenMP_link})
    if(USE_MKLDNN)
      target_link_libraries(caffe2_detectron_ops_gpu PRIVATE caffe2::mkldnn)
    endif()
    install(TARGETS caffe2_detectron_ops_gpu DESTINATION lib)
    if(MSVC)
      install(FILES $<TARGET_PDB_FILE:caffe2_detectron_ops_gpu> DESTINATION lib OPTIONAL)
    endif()
  elseif(USE_ROCM)
    hip_include_directories(${Caffe2_HIP_INCLUDES})
    set_source_files_properties(${Detectron_HIP_SRCS} PROPERTIES HIP_SOURCE_PROPERTY_FORMAT 1)
    HIP_ADD_LIBRARY(
        caffe2_detectron_ops_hip SHARED
        ${Detectron_CPU_SRCS}
        ${Detectron_HIP_SRCS})
    torch_set_target_props(caffe2_detectron_ops_hip)
    target_compile_options(caffe2_detectron_ops_hip PRIVATE ${HIP_CXX_FLAGS})
    if(USE_MKLDNN)
      target_link_libraries(caffe2_detectron_ops_hip PRIVATE caffe2::mkldnn)
    endif()
    target_link_libraries(caffe2_detectron_ops_hip PRIVATE torch)
    install(TARGETS caffe2_detectron_ops_hip DESTINATION lib)
  elseif(NOT IOS_PLATFORM)
    add_library(caffe2_detectron_ops SHARED ${Detectron_CPU_SRCS})
    if(HAVE_SOVERSION)
      set_target_properties(caffe2_detectron_ops PROPERTIES
        VERSION ${TORCH_VERSION} SOVERSION ${TORCH_SOVERSION})
    endif()
    torch_set_target_props(caffe2_detectron_ops)
    target_link_libraries(caffe2_detectron_ops PRIVATE torch ${OpenMP_link})
    if(USE_MKLDNN)
      target_link_libraries(caffe2_detectron_ops PRIVATE caffe2::mkldnn)
    endif()
    install(TARGETS caffe2_detectron_ops DESTINATION lib)
    if(MSVC)
      install(FILES $<TARGET_PDB_FILE:caffe2_detectron_ops> DESTINATION lib OPTIONAL)
    endif()
  endif()
endif()