|
|
@@ -158,48 +158,45 @@ function(ggml_add_cpu_backend_variant_impl tag_name)
|
|
|
if (GGML_CPU_ARM_ARCH)
|
|
|
list(APPEND ARCH_FLAGS -march=${GGML_CPU_ARM_ARCH})
|
|
|
elseif(GGML_CPU_ALL_VARIANTS)
|
|
|
- if (CMAKE_SYSTEM_NAME MATCHES "Linux")
|
|
|
- # Begin with the lowest baseline
|
|
|
- set(ARM_MCPU "armv8-a")
|
|
|
- set(ARCH_TAGS "")
|
|
|
- set(ARCH_DEFINITIONS "")
|
|
|
-
|
|
|
- # When a feature is selected, bump the MCPU to the first
|
|
|
- # version that supported it
|
|
|
- if (GGML_INTERNAL_DOTPROD)
|
|
|
- set(ARM_MCPU "armv8.2-a")
|
|
|
- set(ARCH_TAGS "${ARCH_TAGS}+dotprod")
|
|
|
- list(APPEND ARCH_DEFINITIONS GGML_USE_DOTPROD)
|
|
|
- endif()
|
|
|
- if (GGML_INTERNAL_FP16_VECTOR_ARITHMETIC)
|
|
|
- set(ARM_MCPU "armv8.2-a")
|
|
|
- set(ARCH_TAGS "${ARCH_TAGS}+fp16")
|
|
|
- list(APPEND ARCH_DEFINITIONS GGML_USE_FP16_VECTOR_ARITHMETIC)
|
|
|
- endif()
|
|
|
- if (GGML_INTERNAL_SVE)
|
|
|
- set(ARM_MCPU "armv8.2-a")
|
|
|
- set(ARCH_TAGS "${ARCH_TAGS}+sve")
|
|
|
- list(APPEND ARCH_DEFINITIONS GGML_USE_SVE)
|
|
|
- endif()
|
|
|
- if (GGML_INTERNAL_MATMUL_INT8)
|
|
|
- set(ARM_MCPU "armv8.6-a")
|
|
|
- set(ARCH_TAGS "${ARCH_TAGS}+i8mm")
|
|
|
- list(APPEND ARCH_DEFINITIONS GGML_USE_MATMUL_INT8)
|
|
|
- endif()
|
|
|
- if (GGML_INTERNAL_SVE2)
|
|
|
- set(ARM_MCPU "armv8.6-a")
|
|
|
- set(ARCH_TAGS "${ARCH_TAGS}+sve2")
|
|
|
- list(APPEND ARCH_DEFINITIONS GGML_USE_SVE2)
|
|
|
- endif()
|
|
|
- if (GGML_INTERNAL_SME)
|
|
|
- set(ARM_MCPU "armv9.2-a")
|
|
|
- set(ARCH_TAGS "${ARCH_TAGS}+sme")
|
|
|
- list(APPEND ARCH_DEFINITIONS GGML_USE_SME)
|
|
|
- endif()
|
|
|
-
|
|
|
- list(APPEND ARCH_FLAGS "-march=${ARM_MCPU}${ARCH_TAGS}")
|
|
|
- ggml_add_cpu_backend_features(${GGML_CPU_NAME} arm ${ARCH_DEFINITIONS})
|
|
|
+ # Begin with the lowest baseline
|
|
|
+ set(ARM_MCPU "armv8-a")
|
|
|
+ set(ARCH_TAGS "")
|
|
|
+ set(ARCH_DEFINITIONS "")
|
|
|
+
|
|
|
+ # When a feature is selected, bump the MCPU to the first
|
|
|
+ # version that supported it
|
|
|
+ if (GGML_INTERNAL_DOTPROD)
|
|
|
+ set(ARM_MCPU "armv8.2-a")
|
|
|
+ set(ARCH_TAGS "${ARCH_TAGS}+dotprod")
|
|
|
+ list(APPEND ARCH_DEFINITIONS GGML_USE_DOTPROD)
|
|
|
+ endif()
|
|
|
+ if (GGML_INTERNAL_FP16_VECTOR_ARITHMETIC)
|
|
|
+ set(ARM_MCPU "armv8.2-a")
|
|
|
+ set(ARCH_TAGS "${ARCH_TAGS}+fp16")
|
|
|
+ list(APPEND ARCH_DEFINITIONS GGML_USE_FP16_VECTOR_ARITHMETIC)
|
|
|
+ endif()
|
|
|
+ if (GGML_INTERNAL_SVE)
|
|
|
+ set(ARM_MCPU "armv8.2-a")
|
|
|
+ set(ARCH_TAGS "${ARCH_TAGS}+sve")
|
|
|
+ list(APPEND ARCH_DEFINITIONS GGML_USE_SVE)
|
|
|
+ endif()
|
|
|
+ if (GGML_INTERNAL_MATMUL_INT8)
|
|
|
+ set(ARM_MCPU "armv8.6-a")
|
|
|
+ set(ARCH_TAGS "${ARCH_TAGS}+i8mm")
|
|
|
+ list(APPEND ARCH_DEFINITIONS GGML_USE_MATMUL_INT8)
|
|
|
+ endif()
|
|
|
+ if (GGML_INTERNAL_SVE2)
|
|
|
+ set(ARM_MCPU "armv8.6-a")
|
|
|
+ set(ARCH_TAGS "${ARCH_TAGS}+sve2")
|
|
|
+ list(APPEND ARCH_DEFINITIONS GGML_USE_SVE2)
|
|
|
+ endif()
|
|
|
+ if (GGML_INTERNAL_SME)
|
|
|
+ set(ARM_MCPU "armv9.2-a")
|
|
|
+ set(ARCH_TAGS "${ARCH_TAGS}+sme")
|
|
|
+ list(APPEND ARCH_DEFINITIONS GGML_USE_SME)
|
|
|
endif()
|
|
|
+ list(APPEND ARCH_FLAGS "-march=${ARM_MCPU}${ARCH_TAGS}")
|
|
|
+ ggml_add_cpu_backend_features(${GGML_CPU_NAME} arm ${ARCH_DEFINITIONS})
|
|
|
endif()
|
|
|
endif()
|
|
|
|