@@ -27,55 +27,7 @@ add_library(faiss_perf_tests_utils
27
27
target_include_directories (faiss_perf_tests_utils PRIVATE
28
28
${PROJECT_SOURCE_DIR} /../..)
29
29
30
- function (link_to_faiss_lib target )
31
- if (NOT FAISS_OPT_LEVEL STREQUAL "avx2" AND NOT FAISS_OPT_LEVEL STREQUAL "avx512" AND NOT FAISS_OPT_LEVEL STREQUAL "sve" )
32
- target_link_libraries (${target} PRIVATE faiss)
33
- endif ()
34
-
35
- if (FAISS_OPT_LEVEL STREQUAL "avx2" )
36
- if (NOT WIN32 )
37
- target_compile_options (${target} PRIVATE $<$<COMPILE_LANGUAGE:CXX>:-mavx2 -mfma>)
38
- else ()
39
- target_compile_options (${target} PRIVATE $<$<COMPILE_LANGUAGE:CXX>:/arch:AVX2>)
40
- endif ()
41
- target_link_libraries (${target} PRIVATE faiss_avx2)
42
- endif ()
43
-
44
- if (FAISS_OPT_LEVEL STREQUAL "avx512" )
45
- if (NOT WIN32 )
46
- target_compile_options (${target} PRIVATE $<$<COMPILE_LANGUAGE:CXX>:-mavx2 -mfma -mavx512f -mavx512f -mavx512cd -mavx512vl -mavx512dq -mavx512bw>)
47
- else ()
48
- target_compile_options (${target} PRIVATE $<$<COMPILE_LANGUAGE:CXX>:/arch:AVX512>)
49
- endif ()
50
- target_link_libraries (${target} PRIVATE faiss_avx512)
51
- endif ()
52
-
53
- if (FAISS_OPT_LEVEL STREQUAL "sve" )
54
- if (NOT WIN32 )
55
- if ("${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_DEBUG} " MATCHES "(^| )-march=native" )
56
- # Do nothing, expect SVE to be enabled by -march=native
57
- elseif ("${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_DEBUG} " MATCHES "(^| )(-march=armv[0-9]+(\\ .[1-9]+)?-[^+ ](\\ +[^+$ ]+)*)" )
58
- # Add +sve
59
- target_compile_options (${target} PRIVATE $<$<AND :$<COMPILE_LANGUAGE:CXX>,$<CONFIG:DEBUG>>:${CMAKE_MATCH_2} +sve>)
60
- elseif (NOT "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_DEBUG} " MATCHES "(^| )-march=armv" )
61
- # No valid -march, so specify -march=armv8-a+sve as the default
62
- target_compile_options (${target} PRIVATE $<$<AND :$<COMPILE_LANGUAGE:CXX>,$<CONFIG:DEBUG>>:-march=armv8-a+sve>)
63
- endif ()
64
- if ("${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_RELEASE} " MATCHES "(^| )-march=native" )
65
- # Do nothing, expect SVE to be enabled by -march=native
66
- elseif ("${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_RELEASE} " MATCHES "(^| )(-march=armv[0-9]+(\\ .[1-9]+)?-[^+ ](\\ +[^+$ ]+)*)" )
67
- # Add +sve
68
- target_compile_options (${target} PRIVATE $<$<AND :$<COMPILE_LANGUAGE:CXX>,$<CONFIG:RELEASE>>:${CMAKE_MATCH_2} +sve>)
69
- elseif (NOT "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_RELEASE} " MATCHES "(^| )-march=armv" )
70
- # No valid -march, so specify -march=armv8-a+sve as the default
71
- target_compile_options (${target} PRIVATE $<$<AND :$<COMPILE_LANGUAGE:CXX>,$<CONFIG:RELEASE>>:-march=armv8-a+sve>)
72
- endif ()
73
- else ()
74
- # TODO: support Windows
75
- endif ()
76
- target_link_libraries (${target} PRIVATE faiss_sve)
77
- endif ()
78
- endfunction ()
30
+ include (../cmake/link_to_faiss_lib.cmake)
79
31
80
32
link_to_faiss_lib(faiss_perf_tests_utils)
81
33
0 commit comments