mirror of
				https://github.com/ggml-org/llama.cpp.git
				synced 2025-10-30 08:42:00 +00:00 
			
		
		
		
	ggml : move CPU backend to a separate file (#10144)
This commit is contained in:
		| @@ -8,6 +8,7 @@ | ||||
| #include <stdlib.h> // load `stdlib.h` before other headers to work around MinGW bug: https://sourceforge.net/p/mingw-w64/bugs/192/ | ||||
| #include <stdbool.h> | ||||
| #include <stdint.h> | ||||
| #include <string.h> | ||||
|  | ||||
| #ifdef __cplusplus | ||||
| extern "C" { | ||||
| @@ -36,6 +37,20 @@ extern "C" { | ||||
| #endif | ||||
| #endif | ||||
|  | ||||
| static inline int ggml_up32(int n) { | ||||
|     return (n + 31) & ~31; | ||||
| } | ||||
|  | ||||
| //static inline int ggml_up64(int n) { | ||||
| //    return (n + 63) & ~63; | ||||
| //} | ||||
|  | ||||
| static inline int ggml_up(int n, int m) { | ||||
|     // assert m is a power of 2 | ||||
|     GGML_ASSERT((m & (m - 1)) == 0); | ||||
|     return (n + m - 1) & ~(m - 1); | ||||
| } | ||||
|  | ||||
| // | ||||
| // logging | ||||
| // | ||||
| @@ -51,6 +66,74 @@ void ggml_log_callback_default(enum ggml_log_level level, const char * text, voi | ||||
| #define GGML_LOG_DEBUG(...) ggml_log_internal(GGML_LOG_LEVEL_DEBUG, __VA_ARGS__) | ||||
| #define GGML_LOG_CONT(...)  ggml_log_internal(GGML_LOG_LEVEL_CONT , __VA_ARGS__) | ||||
|  | ||||
| #define GGML_DEBUG 0 | ||||
|  | ||||
| #if (GGML_DEBUG >= 1) | ||||
| #define GGML_PRINT_DEBUG(...) GGML_LOG_DEBUG(__VA_ARGS__) | ||||
| #else | ||||
| #define GGML_PRINT_DEBUG(...) | ||||
| #endif | ||||
|  | ||||
| #if (GGML_DEBUG >= 5) | ||||
| #define GGML_PRINT_DEBUG_5(...) GGML_LOG_DEBUG(__VA_ARGS__) | ||||
| #else | ||||
| #define GGML_PRINT_DEBUG_5(...) | ||||
| #endif | ||||
|  | ||||
| #if (GGML_DEBUG >= 10) | ||||
| #define GGML_PRINT_DEBUG_10(...) GGML_LOG_DEBUG(__VA_ARGS__) | ||||
| #else | ||||
| #define GGML_PRINT_DEBUG_10(...) | ||||
| #endif | ||||
|  | ||||
| // tensor params | ||||
|  | ||||
| static void ggml_set_op_params(struct ggml_tensor * tensor, const void * params, size_t params_size) { | ||||
|     GGML_ASSERT(tensor != NULL); // silence -Warray-bounds warnings | ||||
|     assert(params_size <= GGML_MAX_OP_PARAMS); | ||||
|     memcpy(tensor->op_params, params, params_size); | ||||
| } | ||||
|  | ||||
| static int32_t ggml_get_op_params_i32(const struct ggml_tensor * tensor, uint32_t i) { | ||||
|     assert(i < GGML_MAX_OP_PARAMS / sizeof(int32_t)); | ||||
|     return ((const int32_t *)(tensor->op_params))[i]; | ||||
| } | ||||
|  | ||||
| static float ggml_get_op_params_f32(const struct ggml_tensor * tensor, uint32_t i) { | ||||
|     assert(i < GGML_MAX_OP_PARAMS / sizeof(float)); | ||||
|     return ((const float *)(tensor->op_params))[i]; | ||||
| } | ||||
|  | ||||
| static void ggml_set_op_params_i32(struct ggml_tensor * tensor, uint32_t i, int32_t value) { | ||||
|     assert(i < GGML_MAX_OP_PARAMS / sizeof(int32_t)); | ||||
|     ((int32_t *)(tensor->op_params))[i] = value; | ||||
| } | ||||
|  | ||||
| static void ggml_set_op_params_f32(struct ggml_tensor * tensor, uint32_t i, float value) { | ||||
|     assert(i < GGML_MAX_OP_PARAMS / sizeof(float)); | ||||
|     ((float *)(tensor->op_params))[i] = value; | ||||
| } | ||||
|  | ||||
| struct ggml_map_custom1_op_params { | ||||
|     ggml_custom1_op_t  fun; | ||||
|     int                n_tasks; | ||||
|     void             * userdata; | ||||
| }; | ||||
|  | ||||
|  | ||||
| struct ggml_map_custom2_op_params { | ||||
|     ggml_custom2_op_t   fun; | ||||
|     int                 n_tasks; | ||||
|     void              * userdata; | ||||
| }; | ||||
|  | ||||
|  | ||||
| struct ggml_map_custom3_op_params { | ||||
|     ggml_custom3_op_t fun; | ||||
|     int n_tasks; | ||||
|     void * userdata; | ||||
| }; | ||||
|  | ||||
| // bitset | ||||
|  | ||||
| typedef uint32_t ggml_bitset_t; | ||||
| @@ -204,6 +287,10 @@ struct ggml_cgraph ggml_graph_view(struct ggml_cgraph * cgraph, int i0, int i1); | ||||
| void * ggml_aligned_malloc(size_t size); | ||||
| void ggml_aligned_free(void * ptr, size_t size); | ||||
|  | ||||
| // TODO: move to threading file | ||||
| void ggml_critical_section_start(void); | ||||
| void ggml_critical_section_end(void); | ||||
|  | ||||
| #ifdef __cplusplus | ||||
| } | ||||
| #endif | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Diego Devesa
					Diego Devesa