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 (35 lines) | stat: -rw-r--r-- 1,347 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
if(USE_FAKELOWP)
  message(STATUS "Including FakeLowP operators")

  # ---[ CPU files.
  file(GLOB_RECURSE tmp *.cc)
  set(FAKELOWP_CPU_SRCS ${FAKELOWP_CPU_SRCS} ${tmp})
  # exclude test files and gpu files
  file(GLOB_RECURSE tmp *_test.cc)
  exclude(FAKELOWP_CPU_SRCS "${FAKELOWP_CPU_SRCS}" ${tmp})

  # We will only build the perf kernel files if the compiler supports avx2
  # extensions.
  if(CXX_AVX2_FOUND)
    add_library(caffe2_fakelowp_ops OBJECT ${FAKELOWP_CPU_SRCS})
    add_dependencies(caffe2_fakelowp_ops fbgemm cpuinfo Caffe2_PROTO c10 aten_op_header_gen)
    target_include_directories(caffe2_fakelowp_ops BEFORE
      PRIVATE $<BUILD_INTERFACE:${FBGEMM_SOURCE_DIR}/include>)
    target_include_directories(caffe2_fakelowp_ops BEFORE
      PRIVATE $<BUILD_INTERFACE:${CPUINFO_SOURCE_DIR}/include>)

    if(MSVC)
      set_property(SOURCE ${FAKELOWP_CPU_SRCS}
        APPEND_STRING PROPERTY COMPILE_FLAGS " /arch:AVX2 ")
    else()
      set_property(SOURCE ${FAKELOWP_CPU_SRCS}
        APPEND_STRING PROPERTY COMPILE_FLAGS " -mavx2 -mfma -mf16c -mxsave ")
    endif()
    set(Caffe2_CPU_SRCS ${Caffe2_CPU_SRCS}
      $<TARGET_OBJECTS:caffe2_fakelowp_ops>)
  endif()
  # ---[ Send the lists to the parent scope.
  set(Caffe2_CPU_SRCS ${Caffe2_CPU_SRCS} PARENT_SCOPE)
else()
  message(STATUS "Excluding FakeLowP operators")
endif()