endif()
elseif ("${CMAKE_SYSTEM_PROCESSOR} " STREQUAL "ppc64le " OR "${CMAKE_SYSTEM_PROCESSOR} " STREQUAL "powerpc ")
message(STATUS "PowerPC detected")
- if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "ppc64")
- file(READ "/proc/cpuinfo" POWER10_M)
- elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "powerpc")
- execute_process(COMMAND bash -c "prtconf |grep 'Implementation' | head -n 1" OUTPUT_VARIABLE POWER10_M)
- endif()
+ if (GGML_NATIVE)
+ if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "ppc64")
+ file(READ "/proc/cpuinfo" POWER10_M)
+ elseif (${CMAKE_SYSTEM_PROCESSOR} MATCHES "powerpc")
+ 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(REGEX REPLACE "POWER *([0-9]+)" "\\1" EXTRACTED_NUMBER "${MATCHED_STRING}")
+ string(REGEX MATCHALL "POWER *([0-9]+)" MATCHED_STRING "${POWER10_M}")
+ string(REGEX REPLACE "POWER *([0-9]+)" "\\1" EXTRACTED_NUMBER "${MATCHED_STRING}")
- if (EXTRACTED_NUMBER GREATER_EQUAL 10)
- list(APPEND ARCH_FLAGS -mcpu=power10 -mpowerpc64)
- elseif (EXTRACTED_NUMBER EQUAL 9)
- list(APPEND ARCH_FLAGS -mcpu=power9 -mpowerpc64)
- elseif (${CMAKE_SYSTEM_PROCESSOR} MATCHES "ppc64le")
- list(APPEND ARCH_FLAGS -mcpu=powerpc64le -mtune=native)
+ if (EXTRACTED_NUMBER GREATER_EQUAL 10)
+ list(APPEND ARCH_FLAGS -mcpu=power10 -mpowerpc64)
+ elseif (EXTRACTED_NUMBER EQUAL 9)
+ list(APPEND ARCH_FLAGS -mcpu=power9 -mpowerpc64)
+ elseif (${CMAKE_SYSTEM_PROCESSOR} MATCHES "ppc64le")
+ list(APPEND ARCH_FLAGS -mcpu=powerpc64le -mtune=native)
+ else()
+ list(APPEND ARCH_FLAGS -mcpu=native -mtune=native -mpowerpc64)
+ endif()
else()
- list(APPEND ARCH_FLAGS -mcpu=native -mtune=native -mpowerpc64)
+ if (GGML_CPU_POWERPC_CPUTYPE)
+ list(APPEND ARCH_FLAGS -mcpu=${GGML_CPU_POWERPC_CPUTYPE})
+ endif()
endif()
elseif (${CMAKE_SYSTEM_PROCESSOR} MATCHES "loongarch64")
message(STATUS "loongarch64 detected")