option(GGML_VXE "ggml: enable vxe" ON)
option(GGML_CPU_ALL_VARIANTS "ggml: build all variants of the CPU backend (requires GGML_BACKEND_DL)" OFF)
-set(GGML_CPU_ARM_ARCH "" CACHE STRING "ggml: CPU architecture for ARM")
+set(GGML_CPU_ARM_ARCH "" CACHE STRING "ggml: CPU architecture for ARM")
+set(GGML_CPU_POWERPC_CPUTYPE "" CACHE STRING "ggml: CPU type for PowerPC")
if (WIN32)
endif()
elseif (${CMAKE_SYSTEM_PROCESSOR} MATCHES "ppc64")
message(STATUS "PowerPC detected")
- execute_process(COMMAND bash -c "grep POWER /proc/cpuinfo | head -n 1" OUTPUT_VARIABLE POWER_M)
- if (${POWER_M} MATCHES "POWER10")
- list(APPEND ARCH_FLAGS -mcpu=power10)
- elseif (${POWER_M} MATCHES "POWER9")
- list(APPEND ARCH_FLAGS -mcpu=power9)
- elseif (${CMAKE_SYSTEM_PROCESSOR} MATCHES "ppc64le")
- list(APPEND ARCH_FLAGS -mcpu=powerpc64le -mtune=native)
+ if (GGML_NATIVE)
+ execute_process(COMMAND bash -c "grep POWER /proc/cpuinfo | head -n 1" OUTPUT_VARIABLE POWER_M)
+ if (${POWER_M} MATCHES "POWER10")
+ list(APPEND ARCH_FLAGS -mcpu=power10)
+ elseif (${POWER_M} MATCHES "POWER9")
+ list(APPEND ARCH_FLAGS -mcpu=power9)
+ elseif (${CMAKE_SYSTEM_PROCESSOR} MATCHES "ppc64le")
+ list(APPEND ARCH_FLAGS -mcpu=powerpc64le -mtune=native)
+ else()
+ list(APPEND ARCH_FLAGS -mcpu=powerpc64 -mtune=native)
+ endif()
else()
- list(APPEND ARCH_FLAGS -mcpu=powerpc64 -mtune=native)
+ 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")