From b8b9f8287680a4fd870f6959aebf9bfd43746ff5 Mon Sep 17 00:00:00 2001 From: ignaciosica Date: Fri, 18 Jul 2025 12:06:43 -0300 Subject: [PATCH 1/3] fix cpu_extension for apple silicon Signed-off-by: ignaciosica --- cmake/cpu_extension.cmake | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/cmake/cpu_extension.cmake b/cmake/cpu_extension.cmake index 21fcee66d603..bc20baab51fd 100644 --- a/cmake/cpu_extension.cmake +++ b/cmake/cpu_extension.cmake @@ -58,6 +58,22 @@ function (find_isa CPUINFO TARGET OUT) endif() endfunction() + +function(check_sysctl TARGET OUT) + execute_process(COMMAND sysctl -n ${TARGET} + RESULT_VARIABLE SYSCTL_RET + OUTPUT_VARIABLE SYSCTL_INFO + ERROR_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE) + if(SYSCTL_RET EQUAL 0 AND + (SYSCTL_INFO STREQUAL "1" OR SYSCTL_INFO GREATER 0)) + set(${OUT} ON PARENT_SCOPE) + else() + set(${OUT} OFF PARENT_SCOPE) + endif() +endfunction() + + function (is_avx512_disabled OUT) set(DISABLE_AVX512 $ENV{VLLM_CPU_DISABLE_AVX512}) if(DISABLE_AVX512 AND DISABLE_AVX512 STREQUAL "true") @@ -70,7 +86,11 @@ endfunction() is_avx512_disabled(AVX512_DISABLED) if (MACOSX_FOUND AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + message(STATUS "Apple Silicon Detected") set(APPLE_SILICON_FOUND TRUE) + set(ENABLE_NUMA OFF) + check_sysctl(hw.optional.neon ASIMD_FOUND) + check_sysctl(hw.optional.arm.FEAT_BF16 ARM_BF16_FOUND) else() find_isa(${CPUINFO} "avx2" AVX2_FOUND) find_isa(${CPUINFO} "avx512f" AVX512_FOUND) @@ -82,7 +102,6 @@ else() find_isa(${CPUINFO} "S390" S390_FOUND) endif() - if (AVX512_FOUND AND NOT AVX512_DISABLED) list(APPEND CXX_COMPILE_FLAGS "-mavx512f" @@ -149,9 +168,6 @@ elseif (ASIMD_FOUND) set(MARCH_FLAGS "-march=armv8.2-a+dotprod+fp16") endif() list(APPEND CXX_COMPILE_FLAGS ${MARCH_FLAGS}) -elseif(APPLE_SILICON_FOUND) - message(STATUS "Apple Silicon Detected") - set(ENABLE_NUMA OFF) elseif (S390_FOUND) message(STATUS "S390 detected") # Check for S390 VXE support From 6a92cbf5fddaa064d2f5423aff5132c979fd8a37 Mon Sep 17 00:00:00 2001 From: ignaciosica Date: Fri, 18 Jul 2025 12:38:17 -0300 Subject: [PATCH 2/3] revert whitespace change Signed-off-by: ignaciosica --- cmake/cpu_extension.cmake | 1 + 1 file changed, 1 insertion(+) diff --git a/cmake/cpu_extension.cmake b/cmake/cpu_extension.cmake index bc20baab51fd..e053ec056231 100644 --- a/cmake/cpu_extension.cmake +++ b/cmake/cpu_extension.cmake @@ -102,6 +102,7 @@ else() find_isa(${CPUINFO} "S390" S390_FOUND) endif() + if (AVX512_FOUND AND NOT AVX512_DISABLED) list(APPEND CXX_COMPILE_FLAGS "-mavx512f" From e25e7999ee63f84a227203a7daee65da01e1671f Mon Sep 17 00:00:00 2001 From: ignaciosica Date: Fri, 18 Jul 2025 12:44:08 -0300 Subject: [PATCH 3/3] address gemini suggestion Signed-off-by: ignaciosica --- cmake/cpu_extension.cmake | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/cmake/cpu_extension.cmake b/cmake/cpu_extension.cmake index e053ec056231..e0da46e2acca 100644 --- a/cmake/cpu_extension.cmake +++ b/cmake/cpu_extension.cmake @@ -60,7 +60,7 @@ endfunction() function(check_sysctl TARGET OUT) - execute_process(COMMAND sysctl -n ${TARGET} + execute_process(COMMAND sysctl -n "${TARGET}" RESULT_VARIABLE SYSCTL_RET OUTPUT_VARIABLE SYSCTL_INFO ERROR_QUIET @@ -87,7 +87,6 @@ is_avx512_disabled(AVX512_DISABLED) if (MACOSX_FOUND AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") message(STATUS "Apple Silicon Detected") - set(APPLE_SILICON_FOUND TRUE) set(ENABLE_NUMA OFF) check_sysctl(hw.optional.neon ASIMD_FOUND) check_sysctl(hw.optional.arm.FEAT_BF16 ARM_BF16_FOUND) @@ -102,7 +101,6 @@ else() find_isa(${CPUINFO} "S390" S390_FOUND) endif() - if (AVX512_FOUND AND NOT AVX512_DISABLED) list(APPEND CXX_COMPILE_FLAGS "-mavx512f"