Skip to content

Commit d855010

Browse files
update build flags
1 parent 49f4293 commit d855010

1 file changed

Lines changed: 36 additions & 22 deletions

File tree

CMakeLists.txt

Lines changed: 36 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -355,36 +355,50 @@ set_source_files_properties(${CPP_FILES} PROPERTIES LANGUAGE CXX)
355355
add_library(bitsandbytes SHARED ${SRC_FILES})
356356
target_compile_features(bitsandbytes PUBLIC cxx_std_17)
357357
target_include_directories(bitsandbytes PUBLIC csrc)
358+
set_target_properties(bitsandbytes PROPERTIES VISIBILITY_INLINES_HIDDEN ON)
358359

359360
if (BUILD_CPU)
361+
include(CheckIPOSupported)
362+
check_ipo_supported(RESULT ipo_supported OUTPUT ipo_output)
363+
if (ipo_supported)
364+
set_property(TARGET bitsandbytes PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE)
365+
endif()
366+
360367
if (OpenMP_CXX_FOUND)
361368
target_link_libraries(bitsandbytes PRIVATE OpenMP::OpenMP_CXX)
362369
add_definitions(-DHAS_OPENMP)
363370
endif()
364371

365-
if ((HOST_ARCH MATCHES "x86_64|amd64") AND (NOT MSVC))
366-
include(CheckCXXCompilerFlag)
367-
check_cxx_compiler_flag(-mavx512f HAS_AVX512F_FLAG)
368-
check_cxx_compiler_flag(-mavx512bf16 HAS_AVX512BF16_FLAG)
369-
if (HAS_AVX512F_FLAG)
370-
target_compile_options(bitsandbytes PRIVATE -mavx512f)
371-
target_compile_options(bitsandbytes PRIVATE -mavx512dq)
372-
target_compile_options(bitsandbytes PRIVATE -mavx512bw)
373-
target_compile_options(bitsandbytes PRIVATE -mavx512vl)
374-
endif()
375-
if (HAS_AVX512BF16_FLAG)
376-
target_compile_options(bitsandbytes PRIVATE -mavx512bf16)
372+
if (NOT MSVC)
373+
target_compile_options(bitsandbytes PRIVATE -fno-semantic-interposition)
374+
375+
if (HOST_ARCH MATCHES "x86_64|amd64")
376+
include(CheckCXXCompilerFlag)
377+
check_cxx_compiler_flag(-mavx512f HAS_AVX512F_FLAG)
378+
check_cxx_compiler_flag(-mavx512bf16 HAS_AVX512BF16_FLAG)
379+
if (HAS_AVX512F_FLAG)
380+
target_compile_options(
381+
bitsandbytes PRIVATE
382+
-mavx512f
383+
-mavx512dw
384+
-mavx512bw
385+
-mavx512vl
386+
)
387+
endif()
388+
if (HAS_AVX512BF16_FLAG)
389+
target_compile_options(bitsandbytes PRIVATE -mavx512bf16)
390+
endif()
391+
target_compile_options(
392+
bitsandbytes PRIVATE
393+
-mprefer-vector-width=256
394+
-mfma
395+
-mavx2
396+
-mf16c
397+
-mlzcnt
398+
-mbmi
399+
-mbmi2
400+
)
377401
endif()
378-
target_compile_options(
379-
bitsandbytes PRIVATE
380-
-mprefer-vector-width=256
381-
-mfma
382-
-mavx2
383-
-mf16c
384-
-mlzcnt
385-
-mbmi
386-
-mbmi2
387-
)
388402
endif()
389403
endif()
390404

0 commit comments

Comments
 (0)