mirror of
				https://github.com/ggml-org/llama.cpp.git
				synced 2025-10-31 08:51:55 +00:00 
			
		
		
		
	ggml-cpu: Add CPU backend support for KleidiAI library (#11390)
* ggml-cpu: Add CPU backend support for KleidiAI library * Add environmental variable GGML_KLEIDIAI_SME * Add support for multithread LHS conversion * Switch kernel selection order to dotprod and i8mm * updates for review comments * More updates for review comments * Reorganize and rename KleidiAI files * Move ggml-cpu-traits.h to source file * Update cmake for SME build and add alignment for SME * Remove append GGML_USE_CPU_KLEIDIAI to the GGML_CDEF_PUBLIC list
This commit is contained in:
		| @@ -14,6 +14,10 @@ | ||||
| #include "ggml-cpu-hbm.h" | ||||
| #endif | ||||
|  | ||||
| #ifdef GGML_USE_CPU_KLEIDIAI | ||||
| #include "kleidiai/kleidiai.h" | ||||
| #endif | ||||
|  | ||||
| #if defined(__APPLE__) | ||||
| #include <sys/types.h> | ||||
| #include <sys/sysctl.h> | ||||
| @@ -39,6 +43,12 @@ std::vector<ggml_backend_buffer_type_t>& ggml_backend_cpu_get_extra_buffers_type | ||||
|         } | ||||
| #endif | ||||
|  | ||||
| #ifdef GGML_USE_CPU_KLEIDIAI | ||||
|         if (ggml_backend_cpu_kleidiai_buffer_type()) { | ||||
|             bufts.push_back(ggml_backend_cpu_kleidiai_buffer_type()); | ||||
|         } | ||||
| #endif | ||||
|  | ||||
| #ifdef GGML_USE_CPU_AARCH64 | ||||
|         if (ggml_backend_cpu_aarch64_buffer_type()) { | ||||
|             bufts.push_back(ggml_backend_cpu_aarch64_buffer_type()); | ||||
| @@ -538,6 +548,9 @@ static ggml_backend_feature * ggml_backend_cpu_get_features(ggml_backend_reg_t r | ||||
|             static std::string sve_cnt = std::to_string(ggml_cpu_get_sve_cnt()); | ||||
|             features.push_back({ "SVE_CNT", sve_cnt.c_str() }); | ||||
|         } | ||||
|         if (ggml_cpu_has_sme()) { | ||||
|             features.push_back({ "SME", "1" }); | ||||
|         } | ||||
|         if (ggml_cpu_has_riscv_v()) { | ||||
|             features.push_back({ "RISCV_V", "1" }); | ||||
|         } | ||||
| @@ -559,6 +572,9 @@ static ggml_backend_feature * ggml_backend_cpu_get_features(ggml_backend_reg_t r | ||||
|     #ifdef GGML_USE_OPENMP | ||||
|         features.push_back({ "OPENMP", "1" }); | ||||
|     #endif | ||||
|     #ifdef GGML_USE_CPU_KLEIDIAI | ||||
|         features.push_back({ "KLEIDIAI", "1" }); | ||||
|     #endif | ||||
|     #ifdef GGML_USE_CPU_AARCH64 | ||||
|         features.push_back({ "AARCH64_REPACK", "1" }); | ||||
|     #endif | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Charles Xu
					Charles Xu