@@ -10,14 +10,14 @@ function(ggml_add_cpu_backend_variant_impl tag_name)
10
10
list (APPEND GGML_CPU_SOURCES
11
11
ggml-cpu/ggml-cpu.c
12
12
ggml-cpu/ggml-cpu.cpp
13
- ggml-cpu/ggml-cpu-aarch64 .cpp
14
- ggml-cpu/ggml-cpu-aarch64 .h
15
- ggml-cpu/ggml-cpu- hbm.cpp
16
- ggml-cpu/ggml-cpu- hbm.h
17
- ggml-cpu/ggml-cpu- quants.c
18
- ggml-cpu/ggml-cpu- quants.h
19
- ggml-cpu/ggml-cpu- traits.cpp
20
- ggml-cpu/ggml-cpu- traits.h
13
+ ggml-cpu/repack .cpp
14
+ ggml-cpu/repack .h
15
+ ggml-cpu/hbm.cpp
16
+ ggml-cpu/hbm.h
17
+ ggml-cpu/quants.c
18
+ ggml-cpu/quants.h
19
+ ggml-cpu/traits.cpp
20
+ ggml-cpu/traits.h
21
21
ggml-cpu/amx/amx.cpp
22
22
ggml-cpu/amx/amx.h
23
23
ggml-cpu/amx/mmq.cpp
@@ -84,6 +84,11 @@ function(ggml_add_cpu_backend_variant_impl tag_name)
84
84
85
85
if (GGML_SYSTEM_ARCH STREQUAL "ARM" )
86
86
message (STATUS "ARM detected" )
87
+ list (APPEND GGML_CPU_SOURCES
88
+ ggml-cpu/arch/arm/quants.c
89
+ ggml-cpu/arch/arm/repack.cpp
90
+ )
91
+
87
92
if (MSVC AND NOT CMAKE_C_COMPILER_ID STREQUAL "Clang" )
88
93
message (FATAL_ERROR "MSVC is not supported for ARM, use clang" )
89
94
else ()
@@ -167,6 +172,11 @@ function(ggml_add_cpu_backend_variant_impl tag_name)
167
172
endif ()
168
173
elseif (GGML_SYSTEM_ARCH STREQUAL "x86" )
169
174
message (STATUS "x86 detected" )
175
+ list (APPEND GGML_CPU_SOURCES
176
+ ggml-cpu/arch/x86/quants.c
177
+ ggml-cpu/arch/x86/repack.cpp
178
+ )
179
+
170
180
if (MSVC )
171
181
# instruction set detection for MSVC only
172
182
if (GGML_NATIVE )
@@ -302,7 +312,7 @@ function(ggml_add_cpu_backend_variant_impl tag_name)
302
312
# Since multiple variants of the CPU backend may be included in the same
303
313
# build, using set_source_files_properties() to set the arch flags is not possible
304
314
set (GGML_CPU_FEATS_NAME ${GGML_CPU_NAME} -feats )
305
- add_library (${GGML_CPU_FEATS_NAME} OBJECT ggml-cpu/cpu-feats-x86 .cpp )
315
+ add_library (${GGML_CPU_FEATS_NAME} OBJECT ggml-cpu/arch/x86/ cpu-feats.cpp )
306
316
target_include_directories (${GGML_CPU_FEATS_NAME} PRIVATE . .. ../include )
307
317
target_compile_definitions (${GGML_CPU_FEATS_NAME} PRIVATE ${ARCH_DEFINITIONS} )
308
318
target_compile_definitions (${GGML_CPU_FEATS_NAME} PRIVATE GGML_BACKEND_DL GGML_BACKEND_BUILD GGML_BACKEND_SHARED )
@@ -311,6 +321,7 @@ function(ggml_add_cpu_backend_variant_impl tag_name)
311
321
endif ()
312
322
elseif (GGML_SYSTEM_ARCH STREQUAL "PowerPC" )
313
323
message (STATUS "PowerPC detected" )
324
+ list (APPEND GGML_CPU_SOURCES ggml-cpu/arch/powerpc/quants.c )
314
325
if (GGML_NATIVE )
315
326
if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "ppc64" )
316
327
file (READ "/proc/cpuinfo" POWER10_M )
@@ -338,6 +349,8 @@ function(ggml_add_cpu_backend_variant_impl tag_name)
338
349
endif ()
339
350
elseif (GGML_SYSTEM_ARCH STREQUAL "loongarch64" )
340
351
message (STATUS "loongarch64 detected" )
352
+ list (APPEND GGML_CPU_SOURCES ggml-cpu/arch/loongarch/quants.c )
353
+
341
354
list (APPEND ARCH_FLAGS -march=loongarch64 )
342
355
if (GGML_LASX )
343
356
list (APPEND ARCH_FLAGS -mlasx )
@@ -347,6 +360,10 @@ function(ggml_add_cpu_backend_variant_impl tag_name)
347
360
endif ()
348
361
elseif (GGML_SYSTEM_ARCH STREQUAL "riscv64" )
349
362
message (STATUS "riscv64 detected" )
363
+ list (APPEND GGML_CPU_SOURCES
364
+ ggml-cpu/arch/riscv/quants.c
365
+ ggml-cpu/arch/riscv/repack.cpp
366
+ )
350
367
if (GGML_RVV )
351
368
if (GGML_XTHEADVECTOR )
352
369
list (APPEND ARCH_FLAGS -march=rv64gc_xtheadvector -mabi=lp64d )
@@ -358,6 +375,7 @@ function(ggml_add_cpu_backend_variant_impl tag_name)
358
375
endif ()
359
376
elseif (GGML_SYSTEM_ARCH STREQUAL "s390x" )
360
377
message (STATUS "s390x detected" )
378
+ list (APPEND GGML_CPU_SOURCES ggml-cpu/arch/s390/quants.c )
361
379
file (READ "/proc/cpuinfo" CPUINFO_CONTENTS )
362
380
string (REGEX REPLACE "machine[ \t\r\n ]*=[ \t\r\n ]*([0-9]+)" "\\ 1" S390X_M ${CPUINFO_CONTENTS} )
363
381
@@ -381,12 +399,16 @@ function(ggml_add_cpu_backend_variant_impl tag_name)
381
399
if (GGML_VXE )
382
400
list (APPEND ARCH_FLAGS -mvx -mzvector )
383
401
endif ()
402
+ elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "wasm" )
403
+ message (STATUS "Wasm detected" )
404
+ list (APPEND GGML_CPU_SOURCES ggml-cpu/arch/wasm/quants.c )
384
405
else ()
385
- message (STATUS "Unknown architecture" )
406
+ message (WARNING "Unknown CPU architecture. Falling back to generic implementations." )
407
+ list (APPEND ARCH_FLAGS -DGGML_CPU_GENERIC )
386
408
endif ()
387
409
388
- if (GGML_CPU_AARCH64 )
389
- target_compile_definitions (${GGML_CPU_NAME} PRIVATE GGML_USE_CPU_AARCH64 )
410
+ if (GGML_CPU_REPACK )
411
+ target_compile_definitions (${GGML_CPU_NAME} PRIVATE GGML_USE_CPU_REPACK )
390
412
endif ()
391
413
392
414
if (GGML_CPU_KLEIDIAI )
0 commit comments