@@ -152,47 +152,49 @@ function(ggml_add_cpu_backend_variant_impl tag_name)
152
152
else ()
153
153
if (GGML_CPU_ARM_ARCH )
154
154
list (APPEND ARCH_FLAGS -march=${GGML_CPU_ARM_ARCH} )
155
- else ()
156
- # Begin with the lowest baseline
157
- set (ARM_MCPU "armv8-a" )
158
- set (ARCH_TAGS "" )
159
- set (ARCH_DEFINITIONS "" )
160
-
161
- # When a feature is selected, bump the MCPU to the first
162
- # version that supported it
163
- if (GGML_INTERNAL_DOTPROD )
164
- set (ARM_MCPU "armv8.2-a" )
165
- set (ARCH_TAGS "${ARCH_TAGS} +dotprod" )
166
- list (APPEND ARCH_DEFINITIONS GGML_USE_DOTPROD )
167
- endif ()
168
- if (GGML_INTERNAL_FP16_VECTOR_ARITHMETIC )
169
- set (ARM_MCPU "armv8.2-a" )
170
- set (ARCH_TAGS "${ARCH_TAGS} +fp16" )
171
- list (APPEND ARCH_DEFINITIONS GGML_USE_FP16_VECTOR_ARITHMETIC )
172
- endif ()
173
- if (GGML_INTERNAL_SVE )
174
- set (ARM_MCPU "armv8.2-a" )
175
- set (ARCH_TAGS "${ARCH_TAGS} +sve" )
176
- list (APPEND ARCH_DEFINITIONS GGML_USE_SVE )
177
- endif ()
178
- if (GGML_INTERNAL_MATMUL_INT8 )
179
- set (ARM_MCPU "armv8.6-a" )
180
- set (ARCH_TAGS "${ARCH_TAGS} +i8mm" )
181
- list (APPEND ARCH_DEFINITIONS GGML_USE_MATMUL_INT8 )
182
- endif ()
183
- if (GGML_INTERNAL_SVE2 )
184
- set (ARM_MCPU "armv8.6-a" )
185
- set (ARCH_TAGS "${ARCH_TAGS} +sve2" )
186
- list (APPEND ARCH_DEFINITIONS GGML_USE_SVE2 )
187
- endif ()
188
- if (GGML_INTERNAL_SME )
189
- set (ARM_MCPU "armv9.2-a" )
190
- set (ARCH_TAGS "${ARCH_TAGS} +sme" )
191
- list (APPEND ARCH_DEFINITIONS GGML_USE_SME )
192
- endif ()
155
+ elseif (GGML_CPU_ALL_VARIANTS )
156
+ if (CMAKE_SYSTEM_NAME MATCHES "Linux" )
157
+ # Begin with the lowest baseline
158
+ set (ARM_MCPU "armv8-a" )
159
+ set (ARCH_TAGS "" )
160
+ set (ARCH_DEFINITIONS "" )
161
+
162
+ # When a feature is selected, bump the MCPU to the first
163
+ # version that supported it
164
+ if (GGML_INTERNAL_DOTPROD )
165
+ set (ARM_MCPU "armv8.2-a" )
166
+ set (ARCH_TAGS "${ARCH_TAGS} +dotprod" )
167
+ list (APPEND ARCH_DEFINITIONS GGML_USE_DOTPROD )
168
+ endif ()
169
+ if (GGML_INTERNAL_FP16_VECTOR_ARITHMETIC )
170
+ set (ARM_MCPU "armv8.2-a" )
171
+ set (ARCH_TAGS "${ARCH_TAGS} +fp16" )
172
+ list (APPEND ARCH_DEFINITIONS GGML_USE_FP16_VECTOR_ARITHMETIC )
173
+ endif ()
174
+ if (GGML_INTERNAL_SVE )
175
+ set (ARM_MCPU "armv8.2-a" )
176
+ set (ARCH_TAGS "${ARCH_TAGS} +sve" )
177
+ list (APPEND ARCH_DEFINITIONS GGML_USE_SVE )
178
+ endif ()
179
+ if (GGML_INTERNAL_MATMUL_INT8 )
180
+ set (ARM_MCPU "armv8.6-a" )
181
+ set (ARCH_TAGS "${ARCH_TAGS} +i8mm" )
182
+ list (APPEND ARCH_DEFINITIONS GGML_USE_MATMUL_INT8 )
183
+ endif ()
184
+ if (GGML_INTERNAL_SVE2 )
185
+ set (ARM_MCPU "armv8.6-a" )
186
+ set (ARCH_TAGS "${ARCH_TAGS} +sve2" )
187
+ list (APPEND ARCH_DEFINITIONS GGML_USE_SVE2 )
188
+ endif ()
189
+ if (GGML_INTERNAL_SME )
190
+ set (ARM_MCPU "armv9.2-a" )
191
+ set (ARCH_TAGS "${ARCH_TAGS} +sme" )
192
+ list (APPEND ARCH_DEFINITIONS GGML_USE_SME )
193
+ endif ()
193
194
194
- list (APPEND ARCH_FLAGS "-march=${ARM_MCPU}${ARCH_TAGS} " )
195
- ggml_add_cpu_backend_features (${GGML_CPU_NAME} aarch64 ${ARCH_DEFINITIONS} )
195
+ list (APPEND ARCH_FLAGS "-march=${ARM_MCPU}${ARCH_TAGS} " )
196
+ ggml_add_cpu_backend_features (${GGML_CPU_NAME} aarch64 ${ARCH_DEFINITIONS} )
197
+ endif ()
196
198
endif ()
197
199
endif ()
198
200
0 commit comments