GGML 非官方中文文档(4)https://developer.aliyun.com/article/1524428
ggml_opt
enum ggml_opt_result ggml_opt(struct ggml_context * ctx, struct ggml_opt_params params, struct ggml_tensor * f);
描述:执行优化函数。
参数:
ctx
:上下文指针。params
:优化参数。f
:目标函数张量。
ggml_opt_resume
enum ggml_opt_result ggml_opt_resume(struct ggml_context * ctx, struct ggml_opt_context * opt, struct ggml_tensor * f);
描述:恢复优化过程,构建前向和后向计算图。
参数:
ctx
:上下文指针。opt
:优化器上下文指针。f
:目标函数张量。
ggml_opt_resume_g
enum ggml_opt_result ggml_opt_resume_g(struct ggml_context * ctx, struct ggml_opt_context * opt, struct ggml_tensor * f, struct ggml_cgraph * gf, struct ggml_cgraph * gb, ggml_opt_callback callback, void * callback_data);
描述:恢复优化过程,构建前向和后向计算图,并执行优化。
参数:
ctx
:上下文指针。opt
:优化器上下文指针。f
:目标函数张量。gf
:前向传播计算图。gb
:反向传播计算图。callback
:优化回调函数。callback_data
:回调函数数据。
请注意,上述函数和结构体的描述是基于提供的代码片段提取的,可能不包含所有细节,且可能需要根据完整的代码库进行调整。
QK4_0
类型:未定义
描述:用于量化函数中的块大小,确保k是QK4_0的整数倍。
QK4_1
类型:未定义
描述:用于量化函数中的块大小,确保k是QK4_1的整数倍。
QK5_0
类型:未定义
描述:用于量化函数中的块大小,确保k是QK5_0的整数倍。
QK5_1
类型:未定义
描述:用于量化函数中的块大小,确保k是QK5_1的整数倍。
QK8_0
类型:未定义
描述:用于量化函数中的块大小,确保k是QK8_0的整数倍。
GGUF_MAGIC
类型:字符数组
描述:GGUF文件的魔数,用于识别文件格式。
GGUF_VERSION
类型:未定义
描述:GGUF文件的版本号。
GGUF_DEFAULT_ALIGNMENT
类型:未定义
描述:GGUF文件的默认对齐方式。
gguf_str
描述:用于存储字符串的结构体。
字段 | 类型 | 描述 |
n | uint64_t | 字符串长度 |
data | char* | 字符串数据 |
gguf_value
描述:联合体,用于存储不同类型的值。
字段 | 类型 | 描述 |
uint8 | uint8_t | 8位无符号整数 |
int8 | int8_t | 8位有符号整数 |
uint16 | uint16_t | 16位无符号整数 |
int16 | int16_t | 16位有符号整数 |
uint32 | uint32_t | 32位无符号整数 |
int32 | int32_t | 32位有符号整数 |
float32 | float | 32位浮点数 |
uint64 | uint64_t | 64位无符号整数 |
int64 | int64_t | 64位有符号整数 |
float64 | double | 64位浮点数 |
bool_ | bool | 布尔值 |
str | struct gguf_str | 字符串结构体 |
arr | struct | 包含类型、数量和数据的结构体 |
gguf_kv
描述:键值对结构体。
字段 | 类型 | 描述 |
key | struct gguf_str | 键 |
type | enum gguf_type | 类型 |
value | union gguf_value | 值 |
gguf_header
描述:GGUF文件头部结构体。
字段 | 类型 | 描述 |
magic | char[4] | 魔数 |
version | uint32_t | 版本号 |
n_tensors | uint64_t | 张量数量 |
n_kv | uint64_t | 键值对数量 |
gguf_tensor_info
描述:张量信息结构体。
字段 | 类型 | 描述 |
name | struct gguf_str | 名称 |
n_dims | uint32_t | 维度数量 |
ne | uint64_t[GGML_MAX_DIMS] | 每个维度的元素数量 |
type | enum ggml_type | 类型 |
offset | uint64_t | 偏移量 |
data | const void* | 数据 |
size | size_t | 大小 |
gguf_context
描述:GGUF上下文结构体。
字段 | 类型 | 描述 |
header | struct gguf_header | 头部信息 |
kv | struct gguf_kv* | 键值对数组 |
infos | struct gguf_tensor_info* | 张量信息数组 |
alignment | size_t | 对齐 |
offset | size_t | 偏移量 |
size | size_t | 大小 |
data | void* | 数据 |
ggml_opt_adam
enum ggml_opt_result ggml_opt_adam(struct ggml_context * ctx, struct ggml_opt * opt, struct ggml_opt_params * params, struct ggml_cgraph * f, struct ggml_cgraph * gf, struct ggml_cgraph * gb, ggml_opt_callback callback, void * callback_data)
描述:实现Adam优化算法。
参数:
ctx
:ggml_context指针。opt
:ggml_opt指针。params
:ggml_opt_params指针。f
:ggml_cgraph指针。gf
:ggml_cgraph指针。gb
:ggml_cgraph指针。callback
:ggml_opt_callback函数指针。callback_data
:回调数据。
返回值:ggml_opt_result枚举值。
ggml_opt_lbfgs
enum ggml_opt_result ggml_opt_lbfgs(struct ggml_context * ctx, struct ggml_opt * opt, struct ggml_opt_params * params, struct ggml_cgraph * f, struct ggml_cgraph * gf, struct ggml_cgraph * gb, ggml_opt_callback callback, void * callback_data)
描述:实现LBFGS优化算法。
参数:
ctx
:ggml_context指针。opt
:ggml_opt指针。params
:ggml_opt_params指针。f
:ggml_cgraph指针。gf
:ggml_cgraph指针。gb
:ggml_cgraph指针。callback
:ggml_opt_callback函数指针。callback_data
:回调数据。
返回值:ggml_opt_result枚举值。
ggml_quantize_q4_0
size_t ggml_quantize_q4_0(const float * src, void * dst, int n, int k, int64_t * hist)
描述:将浮点数数组量化为Q4_0类型的数据。
参数:
src
:源浮点数数组。dst
:目标地址。n
:数据量。k
:块大小。hist
:直方图。
返回值:量化后的数据大小。
ggml_quantize_q4_1
size_t ggml_quantize_q4_1(const float * src, void * dst, int n, int k, int64_t * hist)
描述:将浮点数数组量化为Q4_1类型的数据。
参数:
src
:源浮点数数组。dst
:目标地址。n
:数据量。k
:块大小。hist
:直方图。
返回值:量化后的数据大小。
ggml_quantize_q5_0
size_t ggml_quantize_q5_0(const float * src, void * dst, int n, int k, int64_t * hist)
描述:将浮点数数组量化为Q5_0类型的数据。
参数:
src
:源浮点数数组。dst
:目标地址。n
:数据量。k
:块大小。hist
:直方图。
返回值:量化后的数据大小。
ggml_quantize_q5_1
size_t ggml_quantize_q5_1(const float * src, void * dst, int n, int k, int64_t * hist)
描述:将浮点数数组量化为Q5_1类型的数据。
参数:
src
:源浮点数数组。dst
:目标地址。n
:数据量。k
:块大小。hist
:直方图。
返回值:量化后的数据大小。
ggml_quantize_q8_0
size_t ggml_quantize_q8_0(const float * src, void * dst, int n, int k, int64_t * hist)
描述:将浮点数数组量化为Q8_0类型的数据。
参数:
src
:源浮点数数组。dst
:目标地址。n
:数据量。k
:块大小。hist
:直方图。
返回值:量化后的数据大小。
ggml_quantize_chunk
size_t ggml_quantize_chunk(enum ggml_type type, const float * src, void * dst, int start, int n, int64_t * hist)
描述:对指定类型的输入数组进行量化。
参数:
type
:量化类型。src
:源浮点数数组。dst
:目标地址。start
:起始位置。n
:数据量。hist
:直方图。
返回值:量化后的数据大小。
gguf_fread_el
static bool gguf_fread_el(FILE * file, void * dst, size_t size, size_t * offset)
描述:从文件中读取指定大小的数据到目标地址,并更新偏移量。
参数:
file
:文件指针。dst
:目标地址。size
:数据大小。offset
:偏移量指针。
返回值:是否成功读取指定大小的数据。
gguf_fread_str
static bool gguf_fread_str(FILE * file, struct gguf_str * p, size_t * offset)
描述:从文件中读取字符串结构体gguf_str,并更新偏移量。
参数:
file
:文件指针。p
:gguf_str结构体指针。offset
:偏移量指针。
返回值:是否成功读取字符串。
gguf_init_empty
struct gguf_context * gguf_init_empty(void)
描述:初始化一个空的gguf_context结构体。
返回值:gguf_context指针。
gguf_init_from_file
struct gguf_context * gguf_init_from_file(const char * fname, struct gguf_init_params params)
描述:从文件初始化gguf上下文。
参数:
fname
:文件名。params
:初始化参数。
返回值:gguf_context指针。
gguf_find_key
int gguf_find_key(struct gguf_context * ctx, const char * key)
描述:查找指定键在gguf_context中的索引。
参数:
ctx
:gguf_context指针。key
:键名。
返回值:键的索引,如果未找到则返回-1。
gguf_get_val_u32
uint32_t gguf_get_val_u32(struct gguf_context * ctx, int idx)
描述:获取gguf_context中指定索引的值,并转换为uint32_t类型。
参数:
ctx
:gguf_context指针。idx
:索引。
返回值:转换后的uint32_t值。
gguf_free
void gguf_free(struct gguf_context * ctx)
描述:释放gguf_context结构体的内存。
参数:
ctx
:gguf_context指针。
返回值:无。
GGML_PAD
类型:size_t
描述:用于计算对齐后的大小,具体实现未在给定代码段中提供。
GGML_ALIGNED_FREE
类型:void
描述:用于释放对齐内存的函数,具体实现未在给定代码段中提供。
GGUF_TYPE_NAME
类型:const char *
描述:一个数组,用于返回指定类型的名称,具体内容未在给定代码段中提供。
GGUF_TYPE_UINT8
类型:enum gguf_type
描述:表示无符号8位整数类型。
GGUF_TYPE_INT8
类型:enum gguf_type
描述:表示有符号8位整数类型。
GGUF_TYPE_UINT16
类型:enum gguf_type
描述:表示无符号16位整数类型。
GGUF_TYPE_INT16
类型:enum gguf_type
描述:表示有符号16位整数类型。
GGUF_TYPE_UINT32
类型:enum gguf_type
描述:表示无符号32位整数类型。
GGUF_TYPE_INT32
类型:enum gguf_type
描述:表示有符号32位整数类型。
GGUF_TYPE_FLOAT32
类型:enum gguf_type
描述:表示32位浮点数类型。
GGUF_TYPE_UINT64
类型:enum gguf_type
描述:表示无符号64位整数类型。
GGUF_TYPE_INT64
类型:enum gguf_type
描述:表示有符号64位整数类型。
GGUF_TYPE_FLOAT64
类型:enum gguf_type
描述:表示64位浮点数类型。
GGUF_TYPE_BOOL
类型:enum gguf_type
描述:表示布尔类型。
GGUF_TYPE_STRING
类型:enum gguf_type
描述:表示字符串类型。
GGUF_TYPE_ARRAY
类型:enum gguf_type
描述:表示数组类型。
gguf_context
描述:表示一个上下文结构体,包含版本号、对齐方式、数据偏移量、数据指针、键值对数量等信息。
字段 | 类型 | 描述 |
header |
struct gguf_header |
包含版本号、张量数量、键值对数量等信息 |
alignment |
size_t |
对齐方式 |
offset |
size_t |
数据偏移量 |
data |
void * |
数据指针 |
kv |
struct gguf_kv * |
键值对数组 |
infos |
struct gguf_tensor_info * |
张量信息数组 |
gguf_header
描述:包含版本号、张量数量、键值对数量等信息。
字段 | 类型 | 描述 |
version |
int |
版本号 |
n_tensors |
uint32_t |
张量数量 |
n_kv |
uint32_t |
键值对数量 |
gguf_kv
描述:表示一个键值对结构体,包含键、值类型和值。
字段 | 类型 | 描述 |
key |
struct gguf_str |
键 |
type |
enum gguf_type |
值类型 |
value |
union gguf_value |
值 |
gguf_str
描述:表示一个字符串结构体,包含字符串长度和数据。
字段 | 类型 | 描述 |
n |
size_t |
字符串长度 |
data |
char * |
字符串数据 |
gguf_value
描述:表示一个值联合体,根据不同的类型存储不同的值。
字段 | 类型 | 描述 |
uint8 |
uint8_t |
无符号8位整数 |
int8 |
int8_t |
有符号8位整数 |
uint16 |
uint16_t |
无符号16位整数 |
int16 |
int16_t |
有符号16位整数 |
uint32 |
uint32_t |
无符号32位整数 |
int32 |
int32_t |
有符号32位整数 |
float32 |
float |
32位浮点数 |
uint64 |
uint64_t |
无符号64位整数 |
int64 |
int64_t |
有符号64位整数 |
float64 |
double |
64位浮点数 |
bool_ |
bool |
布尔值 |
str |
struct gguf_str |
字符串 |
arr |
struct gguf_arr |
数组 |
gguf_arr
描述:表示一个数组结构体,包含数组类型、元素数量和数据。
字段 | 类型 | 描述 |
type |
enum gguf_type |
数组类型 |
n |
uint32_t |
元素数量 |
data |
void * |
数组数据 |
gguf_tensor_info
描述:表示一个张量信息结构体,包含张量名称、类型、偏移量等信息。
字段 | 类型 | 描述 |
name |
struct gguf_str |
张量名称 |
type |
enum ggml_type |
张量类型 |
offset |
size_t |
张量偏移量 |
gguf_free
void gguf_free(struct gguf_context * ctx)
描述:释放 gguf_context
结构体所占用的内存空间。
参数:
ctx
:指向gguf_context
结构体的指针。
返回值:无。
gguf_type_name
const char * gguf_type_name(enum gguf_type type)
描述:返回指定类型的名称。
参数:
type
:enum gguf_type
类型的值。
返回值:const char *
,类型的名称。
gguf_get_version
int gguf_get_version(const struct gguf_context * ctx)
描述:获取 gguf_context
结构体中的版本号。
参数:
ctx
:指向gguf_context
结构体的指针。
返回值:版本号。
gguf_get_alignment
size_t gguf_get_alignment(const struct gguf_context * ctx)
描述:获取 gguf_context
结构体中的对齐方式。
参数:
ctx
:指向gguf_context
结构体的指针。
返回值:对齐方式。
gguf_get_data_offset
size_t gguf_get_data_offset(const struct gguf_context * ctx)
描述:获取 gguf_context
结构体中的数据偏移量。
参数:
ctx
:指向gguf_context
结构体的指针。
返回值:数据偏移量。
gguf_get_data
void * gguf_get_data(const struct gguf_context * ctx)
描述:获取 gguf_context
结构体中的数据指针。
参数:
ctx
:指向gguf_context
结构体的指针。
返回值:数据指针。
gguf_get_n_kv
int gguf_get_n_kv(const struct gguf_context * ctx)
描述:获取 gguf_context
结构体中的键值对数量。
参数:
ctx
:指向gguf_context
结构体的指针。
返回值:键值对数量。
gguf_find_key
int gguf_find_key(const struct gguf_context * ctx, const char * key)
描述:在给定的 gguf_context
中查找指定的键,如果找到则返回其索引,否则返回 -1。
参数:
ctx
:指向gguf_context
结构体的指针。key
:要查找的键。
返回值:键的索引或 -1。
gguf_get_key
const char * gguf_get_key(const struct gguf_context * ctx, int key_id)
描述:获取指定索引的键。
参数:
ctx
:指向gguf_context
结构体的指针。key_id
:键的索引。
返回值:键的字符串值。
gguf_get_kv_type
enum gguf_type gguf_get_kv_type(const struct gguf_context * ctx, int key_id)
描述:获取指定索引的键值对的类型。
参数:
ctx
:指向gguf_context
结构体的指针。key_id
:键的索引。
返回值:键值对的类型。
gguf_get_arr_type
enum gguf_type gguf_get_arr_type(const struct gguf_context * ctx, int key_id)
描述:获取指定索引的数组类型的键值对的类型。
参数:
ctx
:指向gguf_context
结构体的指针。key_id
:键的索引。
返回值:数组类型的键值对的数据类型。
gguf_get_arr_data
const void * gguf_get_arr_data(const struct gguf_context * ctx, int key_id)
描述:获取指定索引的数组类型的键值对的数据。
参数:
ctx
:指向gguf_context
结构体的指针。key_id
:键的索引。
返回值:数组类型的键值对的数据。
gguf_get_arr_str
const char * gguf_get_arr_str(const struct gguf_context * ctx, int key_id, int i)
描述:获取指定索引的数组类型的键值对的字符串数据。
参数:
ctx
:指向gguf_context
结构体的指针。key_id
:键的索引。i
:数组中字符串的索引。
返回值:字符串数据。
gguf_get_arr_n
int gguf_get_arr_n(const struct gguf_context * ctx, int key_id)
描述:获取指定索引的数组类型的键值对的元素数量。
参数:
ctx
:指向gguf_context
结构体的指针。key_id
:键的索引。
返回值:元素数量。
gguf_get_val_u8
uint8_t gguf_get_val_u8(const struct gguf_context * ctx, int key_id)
描述:从给定的 gguf_context
结构体中获取 uint8_t 类型的值。
参数:
ctx
:指向gguf_context
结构体的指针。key_id
:键的索引。
返回值:uint8_t 类型的值。
gguf_get_val_i8
int8_t gguf_get_val_i8(const struct gguf_context * ctx, int key_id)
描述:从给定的 gguf_context
结构体中获取 int8_t 类型的值。
参数:
ctx
:指向gguf_context
结构体的指针。key_id
:键的索引。
返回值:int8_t 类型的值。
gguf_get_val_u16
uint16_t gguf_get_val_u16(const struct gguf_context * ctx, int key_id)
描述:从给定的 gguf_context
结构体中获取 uint16_t 类型的值。
参数:
ctx
:指向gguf_context
结构体的指针。key_id
:键的索引。
返回值:uint16_t 类型的值。
gguf_get_val_i16
int16_t gguf_get_val_i16(const struct gguf_context * ctx, int key_id)
描述:从给定的 gguf_context
结构体中获取 int16_t 类型的值。
参数:
ctx
:指向gguf_context
结构体的指针。key_id
:键的索引。
返回值:int16_t 类型的值。
gguf_get_val_u32
uint32_t gguf_get_val_u32(const struct gguf_context * ctx, int key_id)
描述:从给定的 gguf_context
结构体中获取 uint32_t 类型的值。
参数:
ctx
:指向gguf_context
结构体的指针。key_id
:键的索引。
返回值:uint32_t 类型的值。
gguf_get_val_i32
int32_t gguf_get_val_i32(const struct gguf_context * ctx, int key_id)
描述:从给定的 gguf_context
结构体中获取 int32_t 类型的值。
参数:
ctx
:指向gguf_context
结构体的指针。key_id
:键的索引。
返回值:int32_t 类型的值。
gguf_get_val_f32
float gguf_get_val_f32(const struct gguf_context * ctx, int key_id)
描述:从给定的 gguf_context
结构体中获取 float 类型的值。
参数:
ctx
:指向gguf_context
结构体的指针。key_id
:键的索引。
返回值:float 类型的值。
gguf_get_val_u64
uint64_t gguf_get_val_u64(const struct gguf_context * ctx, int key_id)
描述:从给定的 gguf_context
结构体中获取 uint64_t 类型的值。
参数:
ctx
:指向gguf_context
结构体的指针。key_id
:键的索引。
返回值:uint64_t 类型的值。
gguf_get_val_i64
int64_t gguf_get_val_i64(const struct gguf_context * ctx, int key_id)
描述:从给定的 gguf_context
结构体中获取 int64_t 类型的值。
参数:
ctx
:指向gguf_context
结构体的指针。
GGUF_TYPE_INT64 类型:枚举 描述:表示有符号64位整数的类型
GGUF_TYPE_FLOAT64 类型:枚举 描述:表示浮点数的类型
GGUF_TYPE_BOOL 类型:枚举 描述:表示布尔值的类型
GGUF_TYPE_STRING 类型:枚举 描述:表示字符串的类型
GGUF_TYPE_ARRAY 类型:枚举 描述:表示数组的类型
GGML_MAX_DIMS 类型:整数 描述:表示张量的最大维度数量
GGML_PAD 类型:函数 描述:用于对齐内存的函数
GGML_ASSERT 类型:宏 描述:断言宏,用于检查条件是否为真
gguf_context 描述:表示上下文信息的结构体
字段 | 类型 | 描述 |
kv | struct kv[] | 键值对数组 |
infos | struct gguf_tensor_info[] | 张量信息数组 |
header | struct gguf_header | 头部信息 |
alignment | int | 对齐大小 |
infos | struct gguf_tensor_info[] | 张量信息数组 |
alignment | int | 对齐大小 |
gguf_tensor_info 描述:表示张量信息的结构体
字段 | 类型 | 描述 |
name | struct gguf_str | 张量名称 |
n_dims | uint32_t | 维度数量 |
ne | uint32_t[GGML_MAX_DIMS] | 每个维度的大小 |
type | enum ggml_type | 张量的数据类型 |
offset | size_t | 张量的偏移量 |
data | void* | 张量的数据指针 |
size | size_t | 张量的大小 |
gguf_buf 描述:表示缓冲区的结构体
字段 | 类型 | 描述 |
data | void* | 缓冲区的数据指针 |
size | size_t | 缓冲区的大小 |
offset | size_t | 缓冲区的偏移量 |
gguf_str 描述:表示字符串的结构体
字段 | 类型 | 描述 |
n | size_t | 字符串长度 |
data | char* | 字符串数据 |
gguf_set_val_f64
void gguf_set_val_f64(struct gguf_context * ctx, const char * key, double val)
描述:设置或添加浮点数值类型的键值对到上下文中
参数:
ctx
:上下文指针key
:键名val
:浮点数值
返回值:无
gguf_set_val_bool
void gguf_set_val_bool(struct gguf_context * ctx, const char * key, bool val)
描述:设置或添加布尔类型的键值对到上下文中
参数:
ctx
:上下文指针key
:键名val
:布尔值
返回值:无
gguf_set_val_str
void gguf_set_val_str(struct gguf_context * ctx, const char * key, const char * val)
描述:设置或添加字符串类型的键值对到上下文中
参数:
ctx
:上下文指针key
:键名val
:字符串值
返回值:无
gguf_set_arr_data
void gguf_set_arr_data(struct gguf_context * ctx, const char * key, enum gguf_type type, const void * data, int n)
描述:设置或添加数组类型的键值对到上下文中
参数:
ctx
:上下文指针key
:键名type
:数组类型data
:数组数据指针n
:数组元素数量
返回值:无
gguf_set_arr_str
void gguf_set_arr_str(struct gguf_context * ctx, const char * key, const char ** data, int n)
描述:设置或添加字符串数组类型的键值对到上下文中
参数:
ctx
:上下文指针key
:键名data
:字符串数组数据指针n
:字符串数量
返回值:无
gguf_add_tensor
void gguf_add_tensor(struct gguf_context * ctx, const struct ggml_tensor * tensor)
描述:向上下文中添加张量
参数:
ctx
:上下文指针tensor
:张量指针
返回值:无
gguf_set_tensor_type
void gguf_set_tensor_type(struct gguf_context * ctx, const char * name, enum ggml_type type)
描述:设置张量的数据类型
参数:
ctx
:上下文指针name
:张量名称type
:数据类型
返回值:无
gguf_set_tensor_data
void gguf_set_tensor_data(struct gguf_context * ctx, const char * name, const void * data, size_t size)
描述:设置张量的数据
参数:
ctx
:上下文指针name
:张量名称data
:数据指针size
:数据大小
返回值:无
gguf_buf_init
static struct gguf_buf gguf_buf_init(size_t size)
描述:初始化缓冲区
参数:
size
:缓冲区大小
返回值:初始化后的缓冲区结构体
gguf_buf_free
static void gguf_buf_free(struct gguf_buf buf)
描述:释放缓冲区
参数:
buf
:缓冲区结构体
返回值:无
gguf_buf_grow
static void gguf_buf_grow(struct gguf_buf * buf, size_t size)
描述:扩展缓冲区
参数:
buf
:缓冲区指针size
:需要扩展的大小
返回值:无
gguf_bwrite_str
static void gguf_bwrite_str(struct gguf_buf * buf, const struct gguf_str * val)
描述:写入字符串到缓冲区
参数:
buf
:缓冲区指针val
:字符串结构体
返回值:无
gguf_bwrite_el
static void gguf_bwrite_el(struct gguf_buf * buf, const void * val, size_t el_size)
描述:写入元素到缓冲区
参数:
buf
:缓冲区指针val
:元素指针el_size
:元素大小
返回值:无
gguf_write_to_buf
static void gguf_write_to_buf(const struct gguf_context * ctx, struct gguf_buf * buf, bool only_meta)
描述:将数据写入缓冲区
参数:
ctx
:上下文指针buf
:缓冲区指针only_meta
:是否只写入元数据
返回值:无
gguf_write_to_file
void gguf_write_to_file(const struct gguf_context * ctx, const char * fname, bool only_meta)
描述:将数据写入文件
参数:
ctx
:上下文指针fname
:文件名only_meta
:是否只写入元数据
返回值:无
gguf_get_meta_size
size_t gguf_get_meta_size(const struct gguf_context * ctx)
描述:获取元数据的大小
参数:
ctx
:上下文指针
返回值:元数据的大小
gguf_get_meta_data
void gguf_get_meta_data(const struct gguf_context * ctx, void * data)
描述:获取元数据的数据
参数:
ctx
:上下文指针data
:存储元数据的缓冲区
返回值:无
ggml_cpu_has_avx
int ggml_cpu_has_avx(void)
描述:检查 CPU 是否支持 AVX 指令集
参数:无
返回值:1 表示支持,0 表示不支持
ggml_cpu_has_avx_vnni
int ggml_cpu_has_avx_vnni(void)
描述:检查 CPU 是否支持 AVX VNNI 指令集
参数:无
返回值:1 表示支持,0 表示不支持
ggml_cpu_has_avx2
int ggml_cpu_has_avx2(void)
描述:检查 CPU 是否支持 AVX2 指令集
参数:无
返回值:1 表示支持,0 表示不支持
ggml_cpu_has_avx512
int ggml_cpu_has_avx512(void)
描述:检查 CPU 是否支持 AVX512 指令集
参数:无
返回值:1 表示支持,0 表示不支持
ggml_cpu_has_avx512_vbmi
int ggml_cpu_has_avx512_vbmi(void)
描述:检查 CPU 是否支持 AVX512 VBMI 指令集
参数:无
返回值:1 表示支持,0 表示不支持
ggml_cpu_has_avx512_vnni
int ggml_cpu_has_avx512_vnni(void)
描述:检查 CPU 是否支持 AVX512 VNNI 指令集
参数:无
返回值:1 表示支持,0 表示不支持
ggml_cpu_has_fma
int ggml_cpu_has_fma(void)
描述:检查 CPU 是否支持 FMA 指令集
参数:无
返回值:1 表示支持,0 表示不支持
ggml_cpu_has_neon
int ggml_cpu_has_neon(void)
描述:检查 CPU 是否支持 NEON 指令集
参数:无
返回值:1 表示支持,0 表示不支持
ggml_cpu_has_arm_fma
int ggml_cpu_has_arm_fma(void)
描述:检查 CPU 是否支持 ARM FMA 指令集
参数:无
返回值:1 表示支持,0 表示不支持
ggml_cpu_has_metal
int ggml_cpu_has_metal(void)
描述:检查 CPU 是否支持 Metal 框架
参数:无
返回值:1 表示支持,0 表示不支持
ggml_cpu_has_f16c
int ggml_cpu_has_f16c(void)
描述:检查 CPU 是否支持 F16C 指令集
参数:无
返回值:1 表示支持,0 表示不支持
ggml_cpu_has_fp16_va
int ggml_cpu_has_fp16_va(void)
描述:检查 CPU 是否支持 ARM FP16 向量算术指令集
参数:无
返回值:1 表示支持,0 表示不支持
ggml_cpu_has_wasm_simd
int ggml_cpu_has_wasm_simd(void)
描述:检查 CPU 是否支持 WebAssembly SIMD 指令集
参数:无
返回值:1 表示支持,0 表示不支持
ggml_cpu_has_blas
int ggml_cpu_has_blas(void)
描述:检查 CPU 是否支持 BLAS 库
参数:无
返回值:1 表示支持,0 表示不支持
ggml_cpu_has_cublas
int ggml_cpu_has_cublas(void)
描述:检查 CPU 是否支持 cuBLAS 库
参数:无
返回值:1 表示支持,0 表示不支持
ggml_cpu_has_clblast
int ggml_cpu_has_clblast(void)
描述:检查 CPU 是否支持 CLBlast 库
参数:无
返回值:1 表示支持,0 表示不支持
ggml_cpu_has_gpublas
int ggml_cpu_has_gpublas(void)
描述:检查 CPU 是否支持 GPU BLAS 库
参数:无
返回值:1 表示支持,0 表示不支持
ggml_cpu_has_sse3
int ggml_cpu_has_sse3(void)
描述:检查 CPU 是否支持 SSE3 指令集
参数:无
返回值:1 表示支持,0 表示不支持
无常量定义。
无结构体定义。
ggml_cpu_has_sse3
int ggml_cpu_has_sse3(void)
描述:检查CPU是否支持SSE3指令集。
参数:无。
返回值:如果支持SSE3指令集,返回1;否则返回0。
ggml_cpu_has_ssse3
int ggml_cpu_has_ssse3(void)
描述:检查CPU是否支持SSSE3指令集。
参数:无。
返回值:如果支持SSSE3指令集,返回1;否则返回0。
ggml_cpu_has_vsx
int ggml_cpu_has_vsx(void)
描述:检查CPU是否支持VSX指令集。
参数:无。
返回值:如果支持VSX指令集,返回1;否则返回0。