Skip to content

Commit e3daf70

Browse files
peterjc123facebook-github-bot
authored andcommittedMar 30, 2020
Fix AVX detection with clang-cl (pytorch#35653)
Summary: Defining macros `/D__F16C__` or sth similar won't work on clang-cl. Pull Request resolved: pytorch#35653 Differential Revision: D20735878 Pulled By: ezyang fbshipit-source-id: 392a664b0a9e74222b1a03b8c3f6ebb2c61d867e
1 parent 340048b commit e3daf70

File tree

2 files changed

+4
-4
lines changed

2 files changed

+4
-4
lines changed
 

‎caffe2/perfkernels/CMakeLists.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ if(CAFFE2_COMPILER_SUPPORTS_AVX2_EXTENSIONS)
2828
add_dependencies(Caffe2_perfkernels_avx2 Caffe2_PROTO)
2929
target_link_libraries(Caffe2_perfkernels_avx PRIVATE c10)
3030
target_link_libraries(Caffe2_perfkernels_avx2 PRIVATE c10)
31-
if(MSVC)
31+
if(MSVC AND NOT "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
3232
target_compile_options(Caffe2_perfkernels_avx
3333
PRIVATE "/arch:AVX"
3434
PRIVATE "/D__F16C__")
@@ -61,7 +61,7 @@ if(CAFFE2_COMPILER_SUPPORTS_AVX2_EXTENSIONS)
6161
add_library(Caffe2_perfkernels_avx512 STATIC ${avx512_srcs})
6262
add_dependencies(Caffe2_perfkernels_avx512 Caffe2_PROTO)
6363
target_link_libraries(Caffe2_perfkernels_avx512 PRIVATE c10)
64-
if(MSVC)
64+
if(MSVC AND NOT "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
6565
target_compile_options(Caffe2_perfkernels_avx512
6666
PRIVATE "/D__AVX512F__"
6767
PRIVATE "/D__AVX512DQ__"

‎cmake/MiscCheck.cmake

+2-2
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ cmake_pop_check_state()
134134
# ---[ Check if the compiler has AVX/AVX2 support. We only check AVX2.
135135
if(NOT INTERN_BUILD_MOBILE)
136136
cmake_push_check_state(RESET)
137-
if(MSVC)
137+
if(MSVC AND NOT CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
138138
set(CMAKE_REQUIRED_FLAGS "/arch:AVX2")
139139
else()
140140
set(CMAKE_REQUIRED_FLAGS "-mavx2")
@@ -160,7 +160,7 @@ if(NOT INTERN_BUILD_MOBILE)
160160
endif()
161161
# ---[ Check if the compiler has AVX512 support.
162162
cmake_push_check_state(RESET)
163-
if(MSVC)
163+
if(MSVC AND NOT CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
164164
# We could've used MSVC's hidden option /arch:AVX512 that defines __AVX512F__,
165165
# __AVX512DQ__, and __AVX512VL__, and /arch:AVX512F that defines __AVX512F__.
166166
# But, we chose not to do that not to rely on hidden options.

0 commit comments

Comments
 (0)
Please sign in to comment.