GGML 非官方中文文档(3)https://developer.aliyun.com/article/1524383
ggml_compute_forward_get_rows_back
void ggml_compute_forward_get_rows_back( const struct ggml_compute_params * params, const struct ggml_tensor * src0, const struct ggml_tensor * src1, struct ggml_tensor * dst);
描述:根据给定的计算参数和源张量,计算前向传播时获取行数据并返回到指定位置。
ggml_compute_forward_diag_f32
static void ggml_compute_forward_diag_f32( const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst);
描述:静态函数,用于计算前向传播的对角线,数据类型为f32,并将结果存储到目标张量中。
ggml_compute_forward_diag
void ggml_compute_forward_diag( const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst);
描述:根据给定的计算参数和源张量,计算前向传播的对角线,并将结果存储到目标张量中。
ggml_compute_forward_diag_mask_f32
static void ggml_compute_forward_diag_mask_f32( const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst, const float value);
描述:静态函数,用于计算前向传播的对角线掩码操作,数据类型为f32,并使用给定的值进行掩码操作。
ggml_compute_forward_diag_mask_inf
void ggml_compute_forward_diag_mask_inf( const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst);
描述:根据给定的计算参数和源张量,计算前向传播的对角线掩码为负无穷的操作,并将结果存储到目标张量中。
ggml_compute_forward_diag_mask_zero
void ggml_compute_forward_diag_mask_zero( const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst);
描述:根据给定的计算参数和源张量,计算前向传播的对角线掩码为零的操作,并将结果存储到目标张量中。
ggml_compute_forward_soft_max_f32
static void ggml_compute_forward_soft_max_f32( const struct ggml_compute_params * params, const struct ggml_tensor * src0, const struct ggml_tensor * src1, struct ggml_tensor * dst);
描述:静态函数,用于计算前向软最大值,数据类型为f32,并将结果存储到目标张量中。
以上是根据给定代码段提取的常量、结构体和公开函数。由于代码中没有显式定义常量和结构体,因此这部分为空。函数部分包含了多个与张量操作相关的函数,用于不同的计算任务。
ith
:类型:int,描述:线程索引。nth
:类型:int,描述:总线程数。ne11
:类型:int64_t,描述:源矩阵src1的第二维大小。nc
:类型:int,描述:源矩阵src0的第一维大小。nr
:类型:int,描述:源矩阵src0的总行数。dr
:类型:int,描述:每个线程处理的行数。ir0
:类型:int,描述:当前线程处理的行范围起始。ir1
:类型:int,描述:当前线程处理的行范围结束。
ggml_compute_params
:
| 字段 | 类型 | 描述 |
| — | — | — |
| ith | int | 线程索引 |
| nth | int | 总线程数 |
ggml_compute_forward_soft_max
:
void ggml_compute_forward_soft_max( const struct ggml_compute_params * params, const struct ggml_tensor * src0, const struct ggml_tensor * src1, struct ggml_tensor * dst)
描述:根据输入张量的类型选择相应的计算函数。
参数:
params
:计算参数。src0
:源张量0。src1
:源张量1。dst
:目标张量。
返回值:无。
ggml_compute_forward_soft_max_back_f32
:
void ggml_compute_forward_soft_max_back_f32( const struct ggml_compute_params * params, const struct ggml_tensor * src0, const struct ggml_tensor * src1, struct ggml_tensor * dst)
描述:根据输入张量的类型选择相应的反向计算函数,处理F32类型。
参数:
params
:计算参数。src0
:源张量0。src1
:源张量1。dst
:目标张量。
返回值:无。
ggml_compute_forward_alibi_f32
:
void ggml_compute_forward_alibi_f32( const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst)
描述:计算前向传播的阿里巴巴函数,处理F32类型。
参数:
params
:计算参数。src0
:源张量。dst
:目标张量。
返回值:无。
ggml_compute_forward_clamp_f32
:
void ggml_compute_forward_clamp_f32( const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst)
描述:计算前向传播的夹紧函数,处理F32类型。
参数:
params
:计算参数。src0
:源张量。dst
:目标张量。
返回值:无。
以上是对给定代码段中的常量、结构体、公开函数的提取和总结。请注意,由于代码段较长,可能存在遗漏或错误,建议对照原始代码进行详细检查。
GGML_TYPE_I16
类型:枚举值
描述:表示数据类型为16位整数。
GGML_TYPE_I32
类型:枚举值
描述:表示数据类型为32位整数。
GGML_TYPE_COUNT
类型:枚举值
描述:表示数据类型的总数。
ggml_compute_params
描述:用于计算的参数结构体。
字段 | 类型 | 描述 |
type | GGML_TASK_INIT 或 GGML_TASK_FINALIZE | 任务类型,初始化或最终化 |
ith | int | 当前线程的索引 |
nth | int | 总线程数 |
wdata | void* | 工作数据指针 |
wsize | size_t | 工作数据大小 |
ggml_tensor
描述:张量结构体。
字段 | 类型 | 描述 |
type | GGML_TYPE_F16, GGML_TYPE_F32 等 | 张量数据类型 |
op_params | int32_t* | 操作参数 |
data | void* | 数据指针 |
rope_yarn_ramp
static float rope_yarn_ramp(const float low, const float high, const int i0)
描述:计算绳索的斜率。
参数:
low
:低值high
:高值i0
:索引
返回值:斜率的值
rope_yarn
static void rope_yarn(float theta_extrap, float freq_scale, float corr_dims[2], int64_t i0, float ext_factor, float mscale, float * cos_theta, float * sin_theta)
描述:实现绳索算法。
参数:
theta_extrap
:外推的旋转角度freq_scale
:频率缩放corr_dims
:校正维度数组i0
:索引ext_factor
:外推因子mscale
:幅度缩放cos_theta
:余弦旋转角度的指针sin_theta
:正弦旋转角度的指针
返回值:无
ggml_rope_yarn_corr_dim
static float ggml_rope_yarn_corr_dim(int n_dims, int n_orig_ctx, float n_rot, float base)
描述:计算维度修正值。
参数:
n_dims
:维度数n_orig_ctx
:原始上下文数n_rot
:旋转数base
:基数
返回值:修正维度值
ggml_rope_yarn_corr_dims
void ggml_rope_yarn_corr_dims(int n_dims, int n_orig_ctx, float freq_base, float beta_fast, float beta_slow, float dims[2])
描述:计算起始和结束的修正维度。
参数:
n_dims
:维度数n_orig_ctx
:原始上下文数freq_base
:频率基数beta_fast
:快速beta值beta_slow
:慢速beta值dims
:修正维度数组
返回值:无
ggml_compute_forward_rope_f32
static void ggml_compute_forward_rope_f32(const struct ggml_compute_params * params, const struct ggml_tensor * src0, const struct ggml_tensor * src1, struct ggml_tensor * dst, const bool forward)
描述:计算前向传播的RoPE(Relative Positional Encoding)的浮点数版本。
参数:
params
:计算参数结构体指针src0
:源张量0src1
:源张量1dst
:目标张量forward
:前向标志
返回值:无
ggml_compute_forward_rope_f16
static void ggml_compute_forward_rope_f16(const struct ggml_compute_params * params, const struct ggml_tensor * src0, const struct ggml_tensor * src1, struct ggml_tensor * dst, const bool forward)
描述:计算前向传播的RoPE的半精度浮点数版本。
参数:
params
:计算参数结构体指针src0
:源张量0src1
:源张量1dst
:目标张量forward
:前向标志
返回值:无
ggml_compute_forward_rope
static void ggml_compute_forward_rope(const struct ggml_compute_params * params, const struct ggml_tensor * src0, const struct ggml_tensor * src1, struct ggml_tensor * dst)
描述:计算前向传播的绳索操作。
参数:
params
:计算参数结构体指针src0
:源张量0src1
:源张量1dst
:目标张量
返回值:无
ggml_compute_forward_rope_back
static void ggml_compute_forward_rope_back(const struct ggml_compute_params * params, const struct ggml_tensor * src0, const struct ggml_tensor * src1, struct ggml_tensor * dst)
描述:计算反向传播的绳索操作。
参数:
params
:计算参数结构体指针src0
:源张量0src1
:源张量1dst
:目标张量
返回值:无
ggml_compute_forward_conv_transpose_1d_f16_f32
static void ggml_compute_forward_conv_transpose_1d_f16_f32(const struct ggml_compute_params * params, const struct ggml_tensor * src0, const struct ggml_tensor * src1, struct ggml_tensor * dst)
描述:计算一维卷积转置的前向传播操作,使用半精度浮点数和全精度浮点数。
参数:
params
:计算参数结构体指针src0
:源张量0src1
:源张量1dst
:目标张量
返回值:无
ggml_compute_forward_conv_transpose_1d_f32
static void ggml_compute_forward_conv_transpose_1d_f32(const struct ggml_compute_params * params, const struct ggml_tensor * src0, const struct ggml_tensor * src1, struct ggml_tensor * dst)
描述:计算一维卷积转置的前向传播操作,使用全精度浮点数。
参数:
params
:计算参数结构体指针src0
:源张量0src1
:源张量1dst
:目标张量
返回值:无
ggml_compute_forward_conv_transpose_1d
static void ggml_compute_forward_conv_transpose_1d(const struct ggml_compute_params * params, const struct ggml_tensor * src0, const struct ggml_tensor * src1, struct ggml_tensor * dst)
描述:计算一维卷积转置的前向传播操作。
参数:
params
:计算参数结构体指针src0
:源张量0src1
:源张量1dst
:目标张量
返回值:无
GGML_TYPE_F16
类型:枚举值
描述:表示数据类型为半精度浮点数(float16)。
GGML_TYPE_F32
类型:枚举值
描述:表示数据类型为单精度浮点数(float32)。
GGML_TASK_INIT
类型:枚举值
描述:表示任务类型为初始化。
GGML_TASK_FINALIZE
类型:枚举值
描述:表示任务类型为结束。
GGML_OP_POOL_AVG
类型:枚举值
描述:表示池化操作类型为平均池化。
GGML_OP_POOL_MAX
类型:枚举值
描述:表示池化操作类型为最大池化。
GGML_OP_POOL_COUNT
类型:枚举值
描述:表示池化操作类型为计数池化。
GGML_TYPE_F32
类型:枚举值
描述:表示数据类型为单精度浮点数(float32)。
GGML_TYPE_F16
类型:枚举值
描述:表示数据类型为半精度浮点数(float16)。
GGML_TYPE_F32
类型:枚举值
描述:表示数据类型为单精度浮点数(float32)。
FLT_MAX
类型:常量
描述:表示单精度浮点数的最大值。
ggml_compute_params
描述:计算参数结构体,包含计算所需的各种参数。
字段 | 类型 | 描述 |
ith | int | 当前线程的索引。 |
nth | int | 总线程数。 |
type | enum | 任务类型,如初始化或结束。 |
wdata | void* | 工作数据指针。 |
wsize | size_t | 工作数据大小。 |
ggml_tensor
描述:张量结构体,表示多维数组。
字段 | 类型 | 描述 |
type | enum | 张量数据类型。 |
data | void* | 张量数据指针。 |
op_params | void* | 操作参数指针。 |
nb | int* | 每个维度字节数数组。 |
ne | int64_t* | 每个维度元素数数组。 |
ggml_compute_forward_im2col_f16
static void ggml_compute_forward_im2col_f16( const struct ggml_compute_params * params, const struct ggml_tensor * src0, const struct ggml_tensor * src1, struct ggml_tensor * dst)
描述:计算输入张量 src0 和 src1 的 im2col 操作,结果存储在 dst 中。
参数:
params
:计算参数结构体指针。src0
:输入张量指针。src1
:输入张量指针。dst
:输出张量指针。
返回值:无。
ggml_compute_forward_conv_transpose_2d
static void ggml_compute_forward_conv_transpose_2d( const struct ggml_compute_params * params, const struct ggml_tensor * src0, const struct ggml_tensor * src1, struct ggml_tensor * dst)
描述:计算前向卷积转置操作,根据输入参数和张量进行计算,将结果存储在目标张量中。
参数:
params
:计算参数结构体指针。src0
:输入张量指针。src1
:输入张量指针。dst
:输出张量指针。
返回值:无。
ggml_compute_forward_pool_1d
static void ggml_compute_forward_pool_1d( const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst)
描述:计算一维池化操作。
参数:
params
:计算参数结构体指针。src0
:输入张量指针。dst
:输出张量指针。
返回值:无。
ggml_compute_forward_pool_2d
static void ggml_compute_forward_pool_2d( const struct ggml_compute_params * params, const struct ggml_tensor * src, struct ggml_tensor * dst)
描述:计算 2D 池化的前向传播。
参数:
params
:计算参数结构体指针。src
:输入张量指针。dst
:输出张量指针。
返回值:无。
ggml_compute_forward_upscale
static void ggml_compute_forward_upscale( const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst)
描述:计算前向上采样。
参数:
params
:计算参数结构体指针。src0
:源张量指针。dst
:目标张量指针。
返回值:无。
ggml_compute_forward_pad_f32
static void ggml_compute_forward_pad_f32( const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst)
描述:计算前向填充。
参数:
params
:计算参数结构体指针。src0
:源张量指针。dst
:目标张量指针。
返回值:无。
请注意,上述函数均为静态函数,因此它们不是公开的API,而是内部实现的一部分。此外,代码中还包含了一些未定义的常量(如ne00
, ne01
, ne02
, ne03
, ne10
, ne11
, ne12
, ne2
, ne3
, nb00
, nb01
, nb02
, nb03
, nb10
, nb11
, nb12
, nb13
, nb2
, nb3
等),这些常量在当前代码段中没有定义,可能需要在其他地方定义或在编译时通过宏定义提供。
GGML_TYPE_F32
类型:枚举值
描述:表示数据类型为32位浮点数。
GGML_SORT_ASC
类型:枚举值
描述:表示排序顺序为升序。
GGML_SORT_DESC
类型:枚举值
描述:表示排序顺序为降序。
GGML_TASK_INIT
类型:枚举值
描述:表示任务类型为初始化。
GGML_TASK_FINALIZE
类型:枚举值
描述:表示任务类型为结束。
GGML_SOFT_MAX_UNROLL
类型:整数常量
描述:表示在softmax计算中使用的向量长度。
GGML_SOFT_MAX_ACCELERATE
类型:宏定义
描述:表示是否启用softmax加速。
GGML_FP32_TO_FP16
类型:宏定义
描述:表示将32位浮点数转换为16位浮点数的操作。
GGML_FP16_TO_FP32
类型:宏定义
描述:表示将16位浮点数转换为32位浮点数的操作。
GGML_FP16_TO_FP32
类型:宏定义
描述:表示将16位浮点数转换为32位浮点数的操作。
GGML_FLASH_ATTN_EXP_FP16
类型:宏定义
描述:表示是否使用16位浮点数进行指数运算。
ggml_compute_params
描述:包含计算所需的各种参数,如任务类型、线程索引、线程总数等。
字段 | 类型 | 描述 |
type | 枚举值 | 任务类型,如初始化或结束 |
ith | int | 线程索引 |
nth | int | 线程总数 |
wdata | void* | 工作数据指针 |
ggml_tensor
描述:表示一个张量,包含数据指针和维度信息。
字段 | 类型 | 描述 |
data | void* | 数据指针 |
type | 枚举值 | 数据类型,如GGML_TYPE_F32 |
ne | int64_t[] | 各维度的大小 |
nb | size_t[] | 各维度的字节数 |
ggml_compute_forward_pad
void ggml_compute_forward_pad( const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst);
描述:根据输入参数和张量进行前向填充操作。
参数:
params
:输入参数结构体指针。src0
:输入张量指针。dst
:输出张量指针。
返回值:无。
ggml_compute_forward_argsort_f32
void ggml_compute_forward_argsort_f32( const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst);
描述:计算前向排序操作,针对GGML_TYPE_F32类型的张量。
参数:
params
:输入参数结构体指针。src0
:输入张量指针。dst
:输出张量指针。
返回值:无。
ggml_compute_forward_argsort
void ggml_compute_forward_argsort( const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst);
描述:计算前向排序操作。
参数:
params
:输入参数结构体指针。src0
:输入张量指针。dst
:输出张量指针。
返回值:无。
ggml_compute_forward_flash_attn_f32
void ggml_compute_forward_flash_attn_f32( const struct ggml_compute_params * params, const struct ggml_tensor * q, const struct ggml_tensor * k, const struct ggml_tensor * v, const bool masked, struct ggml_tensor * dst);
描述:计算前向闪存注意力,使用单精度浮点数。
参数:
params
:输入参数结构体指针。q
:查询张量指针。k
:键张量指针。v
:值张量指针。masked
:是否使用掩码。dst
:目标张量指针。
返回值:无。
ggml_compute_forward_flash_attn_f16
void ggml_compute_forward_flash_attn_f16( const struct ggml_compute_params * params, const struct ggml_tensor * q, const struct ggml_tensor * k, const struct ggml_tensor * v, const bool masked, struct ggml_tensor * dst);
描述:计算前向闪存注意力,使用半精度浮点数。
参数:
params
:输入参数结构体指针。q
:查询张量指针。k
:键张量指针。v
:值张量指针。masked
:是否使用掩码。dst
:目标张量指针。
返回值:无。
GGML_VEC_DOT_UNROLL
类型:整数
描述:用于控制向量点积操作的展开次数,影响循环的展开方式。
ggml_compute_params
描述:包含计算参数的结构体,用于在计算过程中传递参数。
字段 | 类型 | 描述 |
ith | int | 当前线程的索引 |
nth | int | 总线程数 |
type | enum ggml_task_type | 任务类型,如初始化、计算、结束等 |
wdata | void* | 工作数据指针 |
ggml_tensor
描述:表示张量的结构体,包含张量的数据和元信息。
字段 | 类型 | 描述 |
data | void* | 张量数据的指针 |
ne | int64_t | 张量的元素数量 |
nb | size_t | 张量的块大小 |
type | enum ggml_type | 张量的数据类型 |
op_params | void* | 操作参数指针 |
ggml_compute_forward_flash_attn
void ggml_compute_forward_flash_attn( const struct ggml_compute_params * params, const struct ggml_tensor * q, const struct ggml_tensor * k, const struct ggml_tensor * v, const bool masked, struct ggml_tensor * dst);
描述:计算前向闪存注意力操作的函数。
参数:
params
:计算参数结构体。q
:查询张量。k
:键张量。v
:值张量。masked
:是否使用掩码。dst
:目标张量。
ggml_compute_forward_flash_ff
void ggml_compute_forward_flash_ff( const struct ggml_compute_params * params, const struct ggml_tensor * a, const struct ggml_tensor * b0, const struct ggml_tensor * b1, const struct ggml_tensor * c0, const struct ggml_tensor * c1, struct ggml_tensor * dst);
描述:计算前向闪存前馈操作的函数。
参数:
params
:计算参数结构体。a
:输入张量。b0
:权重张量。b1
:偏置张量。c0
:投影权重张量。c1
:投影偏置张量。dst
:目标张量。
ggml_compute_forward_flash_attn_back
void ggml_compute_forward_flash_attn_back( const struct ggml_compute_params * params, const struct ggml_tensor * q, const struct ggml_tensor * k, const struct ggml_tensor * v, const struct ggml_tensor * d, const bool masked, struct ggml_tensor * dst);
描述:计算前向闪存注意力反向传播的函数。
参数:
params
:计算参数结构体。q
:查询张量。k
:键张量。v
:值张量。d
:目标张量。masked
:是否使用掩码。dst
:目标张量。
ggml_compute_forward_win_part_f32
void ggml_compute_forward_win_part_f32( const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst);
描述:计算前向窗口部分的函数,特定于F32类型。
参数:
params
:计算参数结构体。src0
:源张量。dst
:目标张量。
- 无显式定义的常量。
- 无显式定义的结构体。
ggml_compute_forward_win_part
void ggml_compute_forward_win_part( const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst);
描述:根据输入张量的类型进行不同的前向窗口部分化操作。
参数:
params
:计算参数。src0
:输入张量。dst
:输出张量。
返回值:无。
ggml_compute_forward_win_unpart_f32
static void ggml_compute_forward_win_unpart_f32( const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst);
描述:计算前向窗口非部分化操作(F32 类型)。
参数:
params
:计算参数。src0
:输入张量。dst
:输出张量。
返回值:无。
ggml_compute_forward_win_unpart
static void ggml_compute_forward_win_unpart( const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst);
描述:根据 src0 的类型进行不同的前向窗口非部分化操作。
参数:
params
:计算参数。src0
:输入张量。dst
:输出张量。
返回值:无。
ggml_compute_forward_unary
static void ggml_compute_forward_unary( const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst);
描述:根据不同的一元操作类型进行不同的前向传播计算。
参数:
params
:计算参数。src0
:输入张量。dst
:输出张量。
返回值:无。
ggml_compute_forward_get_rel_pos
static void ggml_compute_forward_get_rel_pos( const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst);
描述:计算前向相对位置,根据输入张量 src0 的类型进行不同的处理。
参数:
params
:计算参数。src0
:输入张量。dst
:输出张量。
返回值:无。
ggml_compute_forward_add_rel_pos
static void ggml_compute_forward_add_rel_pos( const struct ggml_compute_params * params, const struct ggml_tensor * src0, const struct ggml_tensor * src1, const struct ggml_tensor * src2, struct ggml_tensor * dst);
描述:计算前向传播时,根据输入张量 src0 的类型进行不同的处理。
参数:
params
:计算参数。src0
:输入张量。src1
:输入张量。src2
:输入张量。dst
:输出张量。
返回值:无。
ggml_compute_forward_map_unary
static void ggml_compute_forward_map_unary( const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst, const ggml_unary_op_f32_t fun);
描述:对输入张量 src0 进行一元操作。
参数:
params
:计算参数。src0
:输入张量。dst
:输出张量。fun
:一元操作函数。
返回值:无。
ggml_compute_forward_map_binary
static void ggml_compute_forward_map_binary( const struct ggml_compute_params * params, const struct ggml_tensor * src0, const struct ggml_tensor * src1, struct ggml_tensor * dst, const ggml_binary_op_f32_t fun);
描述:计算二进制操作的前向映射。
参数:
params
:计算参数。src0
:输入张量。src1
:输入张量。dst
:输出张量。fun
:二进制操作函数。
返回值:无。
ggml_compute_forward_map_custom1_f32
static void ggml_compute_forward_map_custom1_f32( const struct ggml_compute_params * params, const struct ggml_tensor * a, struct ggml_tensor * dst, const ggml_custom1_op_f32_t fun);
描述:计算自定义操作1的前向映射(F32 类型)。
参数:
params
:计算参数。a
:输入张量。dst
:输出张量。fun
:自定义操作1函数。
返回值:无。
ggml_compute_forward_map_custom2_f32
static void ggml_compute_forward_map_custom2_f32( const struct ggml_compute_params * params, const struct ggml_tensor * a, const struct ggml_tensor * b, struct ggml_tensor * dst, const ggml_custom2_op_f32_t fun);
描述:计算自定义操作2的前向映射(F32 类型)。
参数:
params
:计算参数。a
:输入张量。b
:输入张量。dst
:输出张量。fun
:自定义操作2函数。
返回值:无。
ggml_compute_forward_map_custom3_f32
static void ggml_compute_forward_map_custom3_f32( const struct ggml_compute_params * params, const struct ggml_tensor * a, const struct ggml_tensor * b, struct ggml_tensor * dst, const ggml_custom3_op_f32_t fun);
描述:计算自定义操作3的前向映射(F32 类型)。
参数:
params
:计算参数。a
:输入张量。b
:输入张量。dst
:输出张量。fun
:自定义操作3函数。
返回值:无。
请注意,上述函数列表中未包含所有函数,因为代码段中包含了一些未完整定义的函数(如ggml_compute_forward_get_rel_pos
和ggml_compute_forward_map_custom3_f32
),这些函数的定义在代码段中被截断了。此外,代码段中没有显式定义的常量和结构体。
GGML_TASK_INIT
类型:整数常量
描述:表示任务类型为初始化。
GGML_TASK_FINALIZE
类型:整数常量
描述:表示任务类型为结束。
GGML_OP_NONE
类型:整数常量
描述:表示张量的操作类型为无操作。
GGML_HASHTABLE_FULL
类型:整数常量
描述:表示哈希表已满。
GGML_HASHTABLE_ALREADY_EXISTS
类型:整数常量
描述:表示哈希表中已存在该元素。
struct ggml_compute_params
描述:计算参数结构体
字段 | 类型 | 描述 |
type | int | 任务类型 |
ith | int | 当前线程的索引 |
nth | int | 线程总数 |
wdata | void* | 工作数据指针 |
wsize | size_t | 工作数据大小 |
struct ggml_tensor
描述:张量结构体
字段 | 类型 | 描述 |
op_params | void* | 操作参数指针 |
data | void* | 数据指针 |
src | struct ggml_tensor** | 源张量指针数组 |
backend | int | 后端类型 |
op | int | 操作类型 |
ne | int* | 维度大小数组 |
nb | int* | 步长数组 |
struct ggml_hash_set
描述:哈希集合结构体
字段 | 类型 | 描述 |
size | size_t | 大小 |
keys | struct ggml_tensor** | 键指针数组 |
struct hash_map
描述:哈希映射结构体
字段 | 类型 | 描述 |
set | struct ggml_hash_set | 哈希集合 |
vals | struct ggml_tensor** | 值指针数组 |
ggml_compute_forward_map_custom3
void ggml_compute_forward_map_custom3( const struct ggml_compute_params * params, const struct ggml_tensor * a, const struct ggml_tensor * b, const struct ggml_tensor * c, struct ggml_tensor * dst);
描述:计算自定义操作的前向映射,输入参数为指向参数结构体的指针,以及三个张量和一个目标张量。
参数:
params
:指向计算参数结构体的指针a
:指向第一个张量的指针b
:指向第二个张量的指针c
:指向第三个张量的指针dst
:指向目标张量的指针
返回值:无
ggml_compute_forward_cross_entropy_loss_f32
void ggml_compute_forward_cross_entropy_loss_f32( const struct ggml_compute_params * params, const struct ggml_tensor * src0, const struct ggml_tensor * src1, struct ggml_tensor * dst);
描述:计算交叉熵损失的前向计算(单精度浮点数版本)。
参数:
params
:指向计算参数结构体的指针src0
:指向输入张量1的指针src1
:指向输入张量2的指针dst
:指向输出张量的指针
返回值:无
ggml_compute_forward_cross_entropy_loss_back_f32
void ggml_compute_forward_cross_entropy_loss_back_f32( const struct ggml_compute_params * params, const struct ggml_tensor * src0, const struct ggml_tensor * src1, const struct ggml_tensor * opt0, struct ggml_tensor * dst);
描述:计算前向交叉熵损失的反向传播,使用单精度浮点数。
参数:
params
:指向计算参数结构体的指针src0
:指向输入张量1的指针src1
:指向输入张量2的指针opt0
:指向优化张量的指针dst
:指向输出张量的指针
返回值:无
ggml_compute_forward
void ggml_compute_forward(struct ggml_compute_params * params, struct ggml_tensor * tensor);
描述:执行张量的前向计算。
参数:
params
:指向计算参数结构体的指针tensor
:指向要计算的张量的指针
返回值:无
ggml_hash_size
size_t ggml_hash_size(size_t min_sz);
描述:计算大于等于给定最小值的最小素数。
参数:
min_sz
:给定的最小值
返回值:大于等于给定最小值的最小素数
ggml_hash
size_t ggml_hash(const void * p);
描述:计算哈希值。
参数:
p
:要计算哈希值的指针
返回值:哈希值
ggml_hash_find
size_t ggml_hash_find(const struct ggml_hash_set hash_set, struct ggml_tensor * key);
描述:查找哈希表中的元素。
参数:
hash_set
:哈希集合key
:要查找的键
返回值:元素在哈希表中的索引,如果哈希表已满则返回GGML_HASHTABLE_FULL
ggml_hash_contains
bool ggml_hash_contains(struct ggml_hash_set hash_set, struct ggml_tensor * key);
描述:检查哈希表中是否包含指定元素。
参数:
hash_set
:哈希集合key
:要检查的键
返回值:如果包含则返回true,否则返回false
ggml_hash_insert
size_t ggml_hash_insert(struct ggml_hash_set hash_set, struct ggml_tensor * key);
描述:向哈希表中插入元素。
参数:
hash_set
:哈希集合key
:要插入的键
返回值:插入元素的索引,如果元素已存在则返回GGML_HASHTABLE_ALREADY_EXISTS
ggml_hash_find_or_insert
size_t ggml_hash_find_or_insert(struct ggml_hash_set hash_set, struct ggml_tensor * key);
描述:在哈希集合中查找给定键的索引,如果不存在则插入并返回索引。
参数:
hash_set
:哈希集合key
:要查找或插入的键
返回值:键的索引
ggml_hash_set_new
struct ggml_hash_set ggml_hash_set_new(size_t size);
描述:创建新的哈希集合。
参数:
size
:哈希集合的大小
返回值:新创建的哈希集合
ggml_hash_set_free
void ggml_hash_set_free(struct ggml_hash_set hash_set);
描述:释放哈希集合占用的内存。
参数:
hash_set
:要释放的哈希集合
返回值:无
ggml_new_hash_map
struct hash_map * ggml_new_hash_map(size_t size);
描述:创建新的哈希映射。
参数:
size
:哈希映射的大小
返回值:新创建的哈希映射
ggml_hash_map_free
void ggml_hash_map_free(struct hash_map * map);
描述:释放哈希映射占用的内存。
参数:
map
:要释放的哈希映射
返回值:无
GGML_MAX_SRC
类型:整数
描述:表示张量源的最大数量。
GGML_MAX_DIMS
类型:整数
描述:表示张量的最大维度数。
GGML_MAX_OP_PARAMS
类型:整数
描述:表示操作参数的最大数量。
GGML_MAX_NAME
类型:整数
描述:表示节点名称的最大长度。
GGML_HASHTABLE_FULL
类型:整数
描述:表示哈希表已满的标志。
GGML_HASHTABLE_ALREADY_EXISTS
类型:整数
描述:表示哈希表中键已存在的标志。
GGML_CGRAPH_EVAL_ORDER_LEFT_TO_RIGHT
类型:整数
描述:表示计算图的评估顺序从左到右。
GGML_CGRAPH_EVAL_ORDER_RIGHT_TO_LEFT
类型:整数
描述:表示计算图的评估顺序从右到左。
GGML_DEFAULT_GRAPH_SIZE
类型:整数
描述:表示默认的计算图大小。
GGML_OBJECT_SIZE
类型:整数
描述:表示对象的大小。
GGML_PAD
类型:函数
描述:用于内存对齐的函数。
GGML_MEM_ALIGN
类型:整数
描述:表示内存对齐的大小。
struct ggml_tensor
描述:表示一个张量,包含以下字段:
字段 | 类型 | 描述 |
is_param | 布尔 | 表示张量是否为参数 |
extra | 未知 | 额外的信息 |
nb | 未知 | 张量的维度信息 |
src | 指针数组 | 指向源张量的指针数组 |
view_src | 指针 | 指向视图源张量的指针 |
view_offs | 未知 | 视图偏移量 |
op | 未知 | 操作类型 |
grad | 指针 | 指向梯度张量的指针 |
is_param | 布尔 | 是否为参数节点 |
name | 字符数组 | 节点名称 |
op_params | 未知 | 操作参数 |
struct ggml_cgraph
描述:表示一个计算图,包含以下字段:
字段 | 类型 | 描述 |
size | 整数 | 计算图的大小 |
n_nodes | 整数 | 节点数量 |
n_leafs | 整数 | 叶子节点数量 |
nodes | 指针数组 | 指向节点张量的指针数组 |
grads | 指针数组 | 指向梯度张量的指针数组 |
leafs | 指针数组 | 指向叶子节点张量的指针数组 |
hash_table | 结构体 | 哈希表 |
order | 整数 | 评估顺序 |
perf_runs | 整数 | 性能运行次数 |
perf_cycles | 整数 | 性能周期数 |
perf_time_us | 整数 | 性能时间(微秒) |
struct hash_map
描述:表示一个哈希映射,包含以下字段:
字段 | 类型 | 描述 |
set | 结构体 | 哈希集合 |
keys | 指针数组 | 指向键的指针数组 |
vals | 指针数组 | 指向值的指针数组 |
struct ggml_hash_set
描述:表示一个哈希集合,包含以下字段:
字段 | 类型 | 描述 |
size | 整数 | 集合大小 |
keys | 指针数组 | 指向键的指针数组 |
ggml_recompute_graph_node
struct ggml_tensor * ggml_recompute_graph_node(struct ggml_context * ctx, struct ggml_cgraph * graph, struct hash_map * replacements, struct ggml_tensor * node)
描述:重新计算图节点,根据给定的上下文、图、替换哈希映射和张量节点,返回重新计算后的张量。
ggml_build_backward_gradient_checkpointing
void ggml_build_backward_gradient_checkpointing(struct ggml_context * ctx, struct ggml_cgraph * gf, struct ggml_cgraph * gb, struct ggml_cgraph * gb_tmp, struct ggml_tensor ** checkpoints, int n_checkpoints)
描述:构建反向梯度检查点,接受上下文、前向图、反向图、临时反向图、检查点张量数组和检查点数量作为参数,执行反向梯度检查点的构建。
ggml_add_or_set
static struct ggml_tensor * ggml_add_or_set(struct ggml_context * ctx, struct ggml_tensor * a, struct ggml_tensor * b, struct ggml_hash_set zero_table)
描述:根据输入的 a 是否在 zero_table 中来决定返回 b 或者调用 ggml_add_impl 函数。
ggml_acc_or_set
static struct ggml_tensor * ggml_acc_or_set(struct ggml_context * ctx, struct ggml_tensor * a, struct ggml_tensor * b, size_t nb1, size_t nb2, size_t nb3, size_t offset, struct ggml_hash_set zero_table)
描述:根据输入的 a 是否在 zero_table 中来决定返回 a_zero 与 b 的累加结果或者调用 ggml_acc_impl 函数。
ggml_add1_or_set
static struct ggml_tensor * ggml_add1_or_set(struct ggml_context * ctx, struct ggml_tensor * a, struct ggml_tensor * b, struct ggml_hash_set zero_table)
描述:根据输入的 a 是否在 zero_table 中来决定返回 b 的重复值或者调用 ggml_add1_impl 函数。
ggml_sub_or_set
static struct ggml_tensor * ggml_sub_or_set(struct ggml_context * ctx, struct ggml_tensor * a, struct ggml_tensor * b, struct ggml_hash_set zero_table)
描述:根据输入的 a 是否在 zero_table 中来决定返回 b 的负值或者调用 ggml_sub_impl 函数。
ggml_compute_backward
static void ggml_compute_backward(struct ggml_context * ctx, struct ggml_tensor * tensor, struct ggml_hash_set zero_table)
描述:计算反向传播,检查梯度是否与张量的形状相同。
ggml_visit_parents
static void ggml_visit_parents(struct ggml_cgraph * cgraph, struct ggml_tensor * node)
描述:访问父节点,构建计算图的前向传播。
ggml_build_forward_impl
static void ggml_build_forward_impl(struct ggml_cgraph * cgraph, struct ggml_tensor * tensor, bool expand)
描述:构建前向传播的实现,接受计算图和张量作为参数。
ggml_build_forward_expand
void ggml_build_forward_expand(struct ggml_cgraph * cgraph, struct ggml_tensor * tensor)
描述:构建前向传播的函数,接受计算图和张量作为参数。
ggml_build_backward_expand
void ggml_build_backward_expand(struct ggml_context * ctx, struct ggml_cgraph * gf, struct ggml_cgraph * gb, bool keep)
描述:构建反向传播的函数,接受上下文、梯度图、反向梯度图和是否保留梯度的标志作为参数。
ggml_graph_nbytes
static size_t ggml_graph_nbytes(size_t size, bool grads)
描述:计算图占用的内存大小。
ggml_graph_overhead_custom
size_t ggml_graph_overhead_custom(size_t size, bool grads)
描述:计算图对象的额外开销,包括对象大小和内存对齐。
ggml_graph_overhead
size_t ggml_graph_overhead(void)
描述:计算图对象的额外开销,默认不包括梯度。
ggml_new_graph_custom
struct ggml_cgraph * ggml_new_graph_custom(struct ggml_context * ctx, size_t size, bool grads)
描述:创建自定义大小的计算图对象。
ggml_new_graph
struct ggml_cgraph * ggml_new_graph(struct ggml_context * ctx)
描述:创建默认大小的计算图对象。
ggml_graph_view
struct ggml_cgraph ggml_graph_view(struct ggml_cgraph * cgraph0, int i0, int i1)
描述:创建计算图对象的视图。
ggml_graph_cpy
void ggml_graph_cpy(struct ggml_cgraph * src, struct ggml_cgraph * dst)
描述:复制一个图结构,将源图结构的内容复制到目标图结构中。
ggml_graph_dup
struct ggml_cgraph * ggml_graph_dup(struct ggml_context * ctx, struct ggml_cgraph * cgraph)
描述:复制一个图结构,并返回复制后的图结构指针。
ggml_graph_reset
void ggml_graph_reset(struct ggml_cgraph * cgraph)
描述:重置图结构的梯度为零。
ggml_graph_clear
void ggml_graph_clear(struct ggml_cgraph * cgraph)
描述:清空图结构的叶子节点数、节点数和访问哈希表的键。
GGML_DEFAULT_N_THREADS
类型:int
描述:默认的线程数量。
CACHE_LINE_SIZE
类型:size_t
描述:缓存行的大小。
ggml_cgraph
描述:计算图结构体。
字段 | 类型 | 描述 |
n_leafs | int | 叶子节点数量 |
n_nodes | int | 节点数量 |
visited_hash_table | struct | 访问哈希表 |
ggml_compute_state_shared
描述:共享的计算状态结构体。
字段 | 类型 | 描述 |
cgraph | const struct ggml_cgraph * | 指向计算图的指针 |
cplan | const struct ggml_cplan * | 指向计算计划的指针 |
perf_node_start_cycles | int64_t | 节点性能统计开始时的 CPU 周期数 |
perf_node_start_time_us | int64_t | 节点性能统计开始时的时间戳(微秒) |
n_threads | int | 线程数 |
n_active | atomic_int | 活跃线程数 |
node_n | atomic_int | 活跃图节点 |
abort_callback | bool (*)(void *) | 中止回调函数 |
abort_callback_data | void * | 中止回调函数的数据 |
ggml_compute_state
描述:计算状态结构体。
字段 | 类型 | 描述 |
thrd | ggml_thread_t | 线程 |
ith | int | 线程索引 |
shared | struct ggml_compute_state_shared * | 指向共享计算状态的指针 |
ggml_graph_clear
void ggml_graph_clear(struct ggml_cgraph * cgraph)
描述:清除计算图。
参数:
cgraph
:指向计算图的指针。
ggml_graph_compute_thread
thread_ret_t ggml_graph_compute_thread(void * data)
描述:计算线程函数。
参数:
data
:指向计算状态的指针。
返回值:线程退出状态。
ggml_graph_plan
struct ggml_cplan ggml_graph_plan(struct ggml_cgraph * cgraph, int n_threads)
描述:为图计划分配线程。
参数:
cgraph
:指向计算图的指针。n_threads
:线程数。
返回值:图计划结构体。
ggml_graph_compute
int ggml_graph_compute(struct ggml_cgraph * cgraph, struct ggml_cplan * cplan)
描述:计算图的计算函数。
参数:
cgraph
:指向计算图的指针。cplan
:指向计算计划的指针。
返回值:图计算的状态。
ggml_graph_compute_with_ctx
void ggml_graph_compute_with_ctx(struct ggml_context * ctx, struct ggml_cgraph * cgraph, int n_threads)
描述:使用上下文和计算图计算结果。
参数:
ctx
:指向上下文的指针。cgraph
:指向计算图的指针。n_threads
:线程数。
ggml_graph_get_tensor
struct ggml_tensor * ggml_graph_get_tensor(struct ggml_cgraph * cgraph, const char * name)
描述:获取计算图中指定名称的张量。
参数:
cgraph
:指向计算图的指针。name
:张量的名称。
返回值:指向张量的指针,如果未找到则返回 NULL。
ggml_graph_export_leaf
static void ggml_graph_export_leaf(const struct ggml_tensor * tensor, FILE * fout)
描述:导出叶子节点的张量信息到文件。
参数:
tensor
:指向张量的指针。fout
:输出文件指针。
由于提供的代码段中没有定义任何常量、结构体或公开函数,我将基于代码中的注释和上下文信息来提取相关信息。请注意,这些信息是基于代码的上下文推断得出的,并非直接从代码中提取。
GGML_FILE_MAGIC
类型:未指定(可能是整数或字符串)
描述:文件魔数,用于标识文件格式。
GGML_FILE_VERSION
类型:未指定(可能是整数)
描述:文件版本号。
ggml_tensor
描述:表示一个张量的结构体。
字段 | 类型 | 描述 |
type | 未指定 | 张量的类型 |
op | 未指定 | 张量的操作类型 |
ne | const int64_t* | 张量的元素数量数组 |
nb | const size_t* | 张量的块数量数组 |
data | void* | 张量的数据指针 |
name | const char* | 张量的名称 |
ggml_cgraph
描述:表示计算图的结构体。
字段 | 类型 | 描述 |
n_leafs | int | 叶子节点的数量 |
n_nodes | int | 节点的数量 |
leafs | struct ggml_tensor** | 叶子节点的数组 |
nodes | struct ggml_tensor** | 节点的数组 |
ggml_graph_export
void ggml_graph_export(const struct ggml_cgraph * cgraph, const char * fname);
描述:导出计算图到文件的函数。
参数:
cgraph
:指向计算图的指针。fname
:文件名。
返回值:无。
ggml_graph_import
struct ggml_cgraph * ggml_graph_import(const char * fname, struct ggml_context ** ctx_data, struct ggml_context ** ctx_eval);
描述:从文件导入计算图的函数。
参数:
fname
:文件名。ctx_data
:指向数据上下文的指针。ctx_eval
:指向评估上下文的指针。
返回值:指向导入的计算图的指针。
ggml_graph_print
void ggml_graph_print(const struct ggml_cgraph * cgraph);
描述:打印计算图信息的函数。
参数:
cgraph
:指向计算图的指针。
返回值:无。
ggml_graph_dump_dot
void ggml_graph_dump_dot(const struct ggml_cgraph * gb, const struct ggml_cgraph * gf, const char * filename);
描述:将计算图的结构以及关系输出到DOT文件中的函数。
参数:
gb
:指向基础计算图的指针。gf
:指向梯度计算图的指针。filename
:输出文件名。
返回值:无。
ggml_opt_set_params
static void ggml_opt_set_params(int np, struct ggml_tensor * const ps[], const float * x);
描述:设置参数的优化器函数,将参数数组中的值设置到对应的张量中。
参数:
np
:参数的数量。ps
:指向参数张量的数组。x
:指向参数值数组的指针。
返回值:无。
ggml_opt_get_params
static void ggml_opt_get_params(int np, struct ggml_tensor * const ps[], float * x);
描述:获取参数的优化器函数,将张量中的值获取到参数数组中。
参数:
np
:参数的数量。ps
:指向参数张量的数组。x
:指向参数值数组的指针。
返回值:无。
ggml_opt_get_grad
static void ggml_opt_get_grad(int np, struct ggml_tensor * const ps[], float * g);
描述:获取梯度的优化器函数,将张量中的梯度值获取到梯度数组中。
参数:
np
:参数的数量。ps
:指向参数张量的数组。g
:指向梯度值数组的指针。
返回值:无。
ggml_opt_acc_grad
static void ggml_opt_acc_grad(int np, struct ggml_tensor * const ps[], float * g, float scale);
描述:累积梯度的优化器函数,将张量中的梯度值乘以比例后累积到梯度数组中。
参数:
np
:参数的数量。ps
:指向参数张量的数组。g
:指向梯度值数组的指针。scale
:累积梯度时的比例因子。
返回值:无。
ggml_opt_adam
static enum ggml_opt_result ggml_opt_adam(struct ggml_context * ctx, struct ggml_opt_context * opt, struct ggml_opt_params params, struct ggml_tensor * f, struct ggml_cgraph * gf, struct ggml_cgraph * gb, ggml_opt_callback callback, void * callback_data);
描述:使用AdamW优化算法进行优化的函数。
参数:
ctx
:上下文指针。opt
:优化器上下文指针。params
:优化器参数。f
:目标函数张量。gf
:梯度计算图。gb
:基础计算图。callback
:回调函数。callback_data
:回调函数数据。
返回值:优化结果枚举值。
请注意,这些信息是基于代码的上下文推断得出的,并非直接从代码中提取。如果代码中有具体的常量、结构体或公开函数的定义,请提供相关代码段,以便提供更准确的提取和总结。
GGML_MAX_PARAMS
类型:整数常量
描述:定义了可以优化的参数的最大数量。
MAX
类型:宏
描述:用于返回两个参数中的最大值。
ggml_tensor
描述:用于存储张量数据的结构体。
字段 | 类型 | 描述 |
data | 指针 | 指向张量数据的指针 |
ggml_lbfgs_iteration_data
描述:用于存储 L-BFGS 迭代数据的结构体。
字段 | 类型 | 描述 |
alpha | float | 步长 |
ys | float | y 和 s 的内积 |
s | float* | 存储最近 m 步的 s 向量 |
y | float* | 存储最近 m 步的 y 向量 |
ggml_is_scalar
bool ggml_is_scalar(struct ggml_tensor * f);
描述:检查给定的张量是否为标量。
ggml_nelements
int64_t ggml_nelements(struct ggml_tensor * f);
描述:计算给定张量中的元素数量。
ggml_opt_init
void ggml_opt_init(struct ggml_context * ctx, struct ggml_opt_context * opt, struct ggml_opt_params params, int64_t nx);
描述:初始化优化器上下文。
参数:
ctx
:上下文指针。opt
:优化器上下文指针。params
:优化参数。nx
:变量 x 的维度。
ggml_graph_plan
struct ggml_cplan ggml_graph_plan(struct ggml_cgraph * gb, int n_threads);
描述:为计算图创建计算计划。
参数:
gb
:反向传播计算图。n_threads
:线程数量。
ggml_new_object
struct ggml_object * ggml_new_object(struct ggml_context * ctx, enum ggml_object_type type, size_t size);
描述:创建一个新的 GGML 对象。
参数:
ctx
:上下文指针。type
:对象类型。size
:对象大小。
ggml_set_zero
void ggml_set_zero(struct ggml_tensor * t);
描述:将张量设置为零。
ggml_graph_compute
void ggml_graph_compute(struct ggml_cgraph * gb, struct ggml_cplan * cplan);
描述:执行计算图的计算。
参数:
gb
:计算图。cplan
:计算计划。
ggml_opt_acc_grad
void ggml_opt_acc_grad(int np, struct ggml_tensor * ps[], float * g, float accum_norm);
描述:累积梯度。
参数:
np
:参数数量。ps
:参数数组。g
:梯度数组。accum_norm
:累积归一化系数。
ggml_get_f32_1d
float ggml_get_f32_1d(struct ggml_tensor * t, int i);
描述:获取一维张量的元素值。
参数:
t
:张量。i
:索引。
ggml_vec_dot_f32
void ggml_vec_dot_f32(int n, float * result, const float * a, const float * b);
描述:计算两个向量的点积。
参数:
n
:向量长度。result
:结果指针。a
:第一个向量。b
:第二个向量。
ggml_vec_norm_f32
void ggml_vec_norm_f32(int n, float * result, const float * v);
描述:计算向量的范数。
参数:
n
:向量长度。result
:结果指针。v
:向量。
ggml_vec_norm_inv_f32
void ggml_vec_norm_inv_f32(int n, float * result, const float * v);
描述:计算向量范数的倒数。
参数:
n
:向量长度。result
:结果指针。v
:向量。
ggml_vec_neg_f32
void ggml_vec_neg_f32(int n, float * result, const float * v);
描述:计算向量的负值。
参数:
n
:向量长度。result
:结果指针。v
:向量。
ggml_opt_default_params
struct ggml_opt_params ggml_opt_default_params(enum ggml_opt_type type);
描述:返回默认的优化参数结构体,根据不同的优化类型。
参数:
type
:优化类型。
GGML 非官方中文文档(5)https://developer.aliyun.com/article/1524442