Skip to content

Commit df46c34

Browse files
ignaciosicawenscarl
authored andcommitted
[CI/Build] fix cpu_extension for apple silicon (vllm-project#21195)
Signed-off-by: ignaciosica <[email protected]> Signed-off-by: shuw <[email protected]>
1 parent 9bfff78 commit df46c34

File tree

1 file changed

+20
-5
lines changed

1 file changed

+20
-5
lines changed

cmake/cpu_extension.cmake

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,22 @@ function (find_isa CPUINFO TARGET OUT)
5858
endif()
5959
endfunction()
6060

61+
62+
function(check_sysctl TARGET OUT)
63+
execute_process(COMMAND sysctl -n "${TARGET}"
64+
RESULT_VARIABLE SYSCTL_RET
65+
OUTPUT_VARIABLE SYSCTL_INFO
66+
ERROR_QUIET
67+
OUTPUT_STRIP_TRAILING_WHITESPACE)
68+
if(SYSCTL_RET EQUAL 0 AND
69+
(SYSCTL_INFO STREQUAL "1" OR SYSCTL_INFO GREATER 0))
70+
set(${OUT} ON PARENT_SCOPE)
71+
else()
72+
set(${OUT} OFF PARENT_SCOPE)
73+
endif()
74+
endfunction()
75+
76+
6177
function (is_avx512_disabled OUT)
6278
set(DISABLE_AVX512 $ENV{VLLM_CPU_DISABLE_AVX512})
6379
if(DISABLE_AVX512 AND DISABLE_AVX512 STREQUAL "true")
@@ -70,7 +86,10 @@ endfunction()
7086
is_avx512_disabled(AVX512_DISABLED)
7187

7288
if (MACOSX_FOUND AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
73-
set(APPLE_SILICON_FOUND TRUE)
89+
message(STATUS "Apple Silicon Detected")
90+
set(ENABLE_NUMA OFF)
91+
check_sysctl(hw.optional.neon ASIMD_FOUND)
92+
check_sysctl(hw.optional.arm.FEAT_BF16 ARM_BF16_FOUND)
7493
else()
7594
find_isa(${CPUINFO} "avx2" AVX2_FOUND)
7695
find_isa(${CPUINFO} "avx512f" AVX512_FOUND)
@@ -82,7 +101,6 @@ else()
82101
find_isa(${CPUINFO} "S390" S390_FOUND)
83102
endif()
84103

85-
86104
if (AVX512_FOUND AND NOT AVX512_DISABLED)
87105
list(APPEND CXX_COMPILE_FLAGS
88106
"-mavx512f"
@@ -149,9 +167,6 @@ elseif (ASIMD_FOUND)
149167
set(MARCH_FLAGS "-march=armv8.2-a+dotprod+fp16")
150168
endif()
151169
list(APPEND CXX_COMPILE_FLAGS ${MARCH_FLAGS})
152-
elseif(APPLE_SILICON_FOUND)
153-
message(STATUS "Apple Silicon Detected")
154-
set(ENABLE_NUMA OFF)
155170
elseif (S390_FOUND)
156171
message(STATUS "S390 detected")
157172
# Check for S390 VXE support

0 commit comments

Comments
 (0)