@@ -289,23 +289,29 @@ function(ggml_add_cpu_backend_variant_impl tag_name)
289289 endif ()
290290 elseif ("${CMAKE_SYSTEM_PROCESSOR} " STREQUAL "ppc64le " OR "${CMAKE_SYSTEM_PROCESSOR} " STREQUAL "powerpc " )
291291 message (STATUS "PowerPC detected" )
292- if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "ppc64" )
293- file (READ "/proc/cpuinfo" POWER10_M)
294- elseif (${CMAKE_SYSTEM_PROCESSOR} MATCHES "powerpc" )
295- execute_process (COMMAND bash -c "prtconf |grep 'Implementation' | head -n 1" OUTPUT_VARIABLE POWER10_M)
296- endif ()
292+ if (GGML_NATIVE)
293+ if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "ppc64" )
294+ file (READ "/proc/cpuinfo" POWER10_M)
295+ elseif (${CMAKE_SYSTEM_PROCESSOR} MATCHES "powerpc" )
296+ execute_process (COMMAND bash -c "prtconf |grep 'Implementation' | head -n 1" OUTPUT_VARIABLE POWER10_M)
297+ endif ()
297298
298- string (REGEX MATCHALL "POWER *([0-9]+)" MATCHED_STRING "${POWER10_M} " )
299- string (REGEX REPLACE "POWER *([0-9]+)" "\\ 1" EXTRACTED_NUMBER "${MATCHED_STRING} " )
299+ string (REGEX MATCHALL "POWER *([0-9]+)" MATCHED_STRING "${POWER10_M} " )
300+ string (REGEX REPLACE "POWER *([0-9]+)" "\\ 1" EXTRACTED_NUMBER "${MATCHED_STRING} " )
300301
301- if (EXTRACTED_NUMBER GREATER_EQUAL 10)
302- list (APPEND ARCH_FLAGS -mcpu=power10 -mpowerpc64)
303- elseif (EXTRACTED_NUMBER EQUAL 9)
304- list (APPEND ARCH_FLAGS -mcpu=power9 -mpowerpc64)
305- elseif (${CMAKE_SYSTEM_PROCESSOR} MATCHES "ppc64le" )
306- list (APPEND ARCH_FLAGS -mcpu=powerpc64le -mtune=native)
302+ if (EXTRACTED_NUMBER GREATER_EQUAL 10)
303+ list (APPEND ARCH_FLAGS -mcpu=power10 -mpowerpc64)
304+ elseif (EXTRACTED_NUMBER EQUAL 9)
305+ list (APPEND ARCH_FLAGS -mcpu=power9 -mpowerpc64)
306+ elseif (${CMAKE_SYSTEM_PROCESSOR} MATCHES "ppc64le" )
307+ list (APPEND ARCH_FLAGS -mcpu=powerpc64le -mtune=native)
308+ else ()
309+ list (APPEND ARCH_FLAGS -mcpu=native -mtune=native -mpowerpc64)
310+ endif ()
307311 else ()
308- list (APPEND ARCH_FLAGS -mcpu=native -mtune=native -mpowerpc64)
312+ if (GGML_CPU_POWERPC_CPUTYPE)
313+ list (APPEND ARCH_FLAGS -mcpu=${GGML_CPU_POWERPC_CPUTYPE} )
314+ endif ()
309315 endif ()
310316 elseif (${CMAKE_SYSTEM_PROCESSOR} MATCHES "loongarch64" )
311317 message (STATUS "loongarch64 detected" )
0 commit comments