]> git.djapps.eu Git - pkg/ggml/sources/ggml/commitdiff
cmake : Handle mixed-case 'Power' strings in POWER CPU detection (llama/13966)
authorshalinib-ibm <redacted>
Mon, 2 Jun 2025 12:18:36 +0000 (17:48 +0530)
committerGeorgi Gerganov <redacted>
Tue, 10 Jun 2025 06:59:25 +0000 (09:59 +0300)
Some systems report the CPU implementation as "Power11" instead of "POWER11".
The existing CMake logic uses a case-sensitive regular expression to extract
the CPU generation, which fails when the casing doesn't exactly match "POWER".

This patch provides a fix by first converting the string to uppercase before applying the regex.

Signed-off-by: root <redacted>
Co-authored-by: root <redacted>
src/ggml-cpu/CMakeLists.txt

index b3237eeadd22bfae3478af60babe8d8a78874b63..33f66af8d031ba58ed4504c514e9b000b7ac479b 100644 (file)
@@ -318,7 +318,8 @@ function(ggml_add_cpu_backend_variant_impl tag_name)
                 execute_process(COMMAND bash -c "prtconf |grep 'Implementation' | head -n 1" OUTPUT_VARIABLE POWER10_M)
             endif()
 
-            string(REGEX MATCHALL "POWER *([0-9]+)" MATCHED_STRING "${POWER10_M}")
+            string(TOUPPER "${POWER10_M}" POWER10_M_UPPER)
+            string(REGEX MATCHALL "POWER *([0-9]+)" MATCHED_STRING "${POWER10_M_UPPER}")
             string(REGEX REPLACE "POWER *([0-9]+)" "\\1" EXTRACTED_NUMBER "${MATCHED_STRING}")
 
             if (EXTRACTED_NUMBER GREATER_EQUAL 10)