GGML 非官方中文文档(2)https://developer.aliyun.com/article/1524359
GGML_OP_WIN_UNPART
类型:枚举
描述:表示窗口未分割操作类型。
GGML_OP_GET_REL_POS
类型:枚举
描述:表示获取相对位置操作类型。
GGML_OP_ADD_REL_POS
类型:枚举
描述:表示添加相对位置操作类型。
GGML_OP_UNARY
类型:枚举
描述:表示一元操作类型。
GGML_OP_MAP_UNARY
类型:枚举
描述:表示映射一元操作类型。
GGML_OP_MAP_BINARY
类型:枚举
描述:表示映射二元操作类型。
GGML_OP_MAP_CUSTOM1_F32
类型:枚举
描述:表示映射自定义一元操作类型,适用于32位浮点数。
GGML_OP_MAP_CUSTOM2_F32
类型:枚举
描述:表示映射自定义二元操作类型,适用于32位浮点数。
GGML_OP_MAP_CUSTOM3_F32
类型:枚举
描述:表示映射自定义三元操作类型,适用于32位浮点数。
GGML_OP_MAP_CUSTOM1
类型:枚举
描述:表示映射自定义一元操作类型。
ggml_tensor
描述:表示一个张量结构体。
字段 | 类型 | 描述 |
ctx | struct ggml_context * | 上下文指针 |
type | enum ggml_type | 张量类型 |
ne | const int64_t[] | 张量的形状信息 |
op | enum ggml_op | 操作类型 |
grad | struct ggml_tensor * | 梯度张量 |
src | struct ggml_tensor *[] | 源张量 |
ggml_new_tensor
struct ggml_tensor * ggml_new_tensor(struct ggml_context * ctx, enum ggml_type type, int ndims, const int64_t ne[]);
描述:创建一个新的张量。
参数:
ctx
:上下文指针。type
:张量类型。ndims
:维度数量。ne
:张量的形状信息数组。
返回值:新创建的张量。
ggml_set_op_params
void ggml_set_op_params(struct ggml_tensor * tensor, const void * params, size_t params_size);
描述:设置张量的操作参数。
参数:
tensor
:目标张量。params
:操作参数。params_size
:操作参数的大小。
ggml_dup_tensor
struct ggml_tensor * ggml_dup_tensor(struct ggml_context * ctx, struct ggml_tensor * src);
描述:复制一个张量。
参数:
ctx
:上下文指针。src
:源张量。
返回值:复制后的张量。
ggml_view_tensor
struct ggml_tensor * ggml_view_tensor(struct ggml_context * ctx, struct ggml_tensor * src);
描述:创建一个张量的视图。
参数:
ctx
:上下文指针。src
:源张量。
返回值:视图张量。
ggml_get_rel_pos
struct ggml_tensor * ggml_get_rel_pos(struct ggml_context * ctx, struct ggml_tensor * a, int qh, int kh);
描述:获取相对位置的张量。
参数:
ctx
:上下文指针。a
:输入张量。qh
:查询头数。kh
:键头数。
返回值:新的张量。
ggml_add_rel_pos
struct ggml_tensor * ggml_add_rel_pos(struct ggml_context * ctx, struct ggml_tensor * a, struct ggml_tensor * pw, struct ggml_tensor * ph);
描述:执行相对位置加法操作。
参数:
ctx
:上下文指针。a
:输入张量。pw
:权重张量。ph
:隐藏状态张量。
返回值:新的张量。
ggml_add_rel_pos_inplace
struct ggml_tensor * ggml_add_rel_pos_inplace(struct ggml_context * ctx, struct ggml_tensor * a, struct ggml_tensor * pw, struct ggml_tensor * ph);
描述:执行原地相对位置加法操作。
参数:
ctx
:上下文指针。a
:输入张量。pw
:权重张量。ph
:隐藏状态张量。
返回值:新的张量。
ggml_unary
struct ggml_tensor * ggml_unary(struct ggml_context * ctx, struct ggml_tensor * a, enum ggml_unary_op op);
描述:执行一元操作。
参数:
ctx
:上下文指针。a
:输入张量。op
:一元操作类型。
返回值:新的张量。
ggml_unary_inplace
struct ggml_tensor * ggml_unary_inplace(struct ggml_context * ctx, struct ggml_tensor * a, enum ggml_unary_op op);
描述:执行原地一元操作。
参数:
ctx
:上下文指针。a
:输入张量。op
:一元操作类型。
返回值:新的张量。
ggml_map_unary_f32
struct ggml_tensor * ggml_map_unary_f32(struct ggml_context * ctx, struct ggml_tensor * a, const ggml_unary_op_f32_t fun);
描述:对32位浮点数张量执行一元映射操作。
参数:
ctx
:上下文指针。a
:输入张量。fun
:一元操作函数。
返回值:新的张量。
ggml_map_unary_inplace_f32
struct ggml_tensor * ggml_map_unary_inplace_f32(struct ggml_context * ctx, struct ggml_tensor * a, const ggml_unary_op_f32_t fun);
描述:对32位浮点数张量执行原地一元映射操作。
参数:
ctx
:上下文指针。a
:输入张量。fun
:一元操作函数。
返回值:新的张量。
ggml_map_binary_f32
struct ggml_tensor * ggml_map_binary_f32(struct ggml_context * ctx, struct ggml_tensor * a, struct ggml_tensor * b, const ggml_binary_op_f32_t fun);
描述:对32位浮点数张量执行二元映射操作。
参数:
ctx
:上下文指针。a
:第一个输入张量。b
:第二个输入张量。fun
:二元操作函数。
返回值:新的张量。
ggml_map_binary_inplace_f32
struct ggml_tensor * ggml_map_binary_inplace_f32(struct ggml_context * ctx, struct ggml_tensor * a, struct ggml_tensor * b, const ggml_binary_op_f32_t fun);
描述:对32位浮点数张量执行原地二元映射操作。
参数:
ctx
:上下文指针。a
:第一个输入张量。b
:第二个输入张量。fun
:二元操作函数。
返回值:新的张量。
ggml_map_custom1_f32
struct ggml_tensor * ggml_map_custom1_f32(struct ggml_context * ctx, struct ggml_tensor * a, const ggml_custom1_op_f32_t fun);
描述:对32位浮点数张量执行自定义一元映射操作。
参数:
ctx
:上下文指针。a
:输入张量。fun
:自定义一元操作函数。
返回值:新的张量。
ggml_map_custom1_inplace_f32
struct ggml_tensor * ggml_map_custom1_inplace_f32(struct ggml_context * ctx, struct ggml_tensor * a, const ggml_custom1_op_f32_t fun);
描述:对32位浮点数张量执行原地自定义一元映射操作。
参数:
ctx
:上下文指针。a
:输入张量。fun
:自定义一元操作函数。
返回值:新的张量。
ggml_map_custom2_f32
struct ggml_tensor * ggml_map_custom2_f32(struct ggml_context * ctx, struct ggml_tensor * a, struct ggml_tensor * b, const ggml_custom2_op_f32_t fun);
描述:对32位浮点数张量执行自定义二元映射操作。
参数:
ctx
:上下文指针。a
:第一个输入张量。b
:第二个输入张量。fun
:自定义二元操作函数。
返回值:新的张量。
ggml_map_custom2_inplace_f32
struct ggml_tensor * ggml_map_custom2_inplace_f32(struct ggml_context * ctx, struct ggml_tensor * a, struct ggml_tensor * b, const ggml_custom2_op_f32_t fun);
描述:对32位浮点数张量执行原地自定义二元映射操作。
参数:
ctx
:上下文指针。a
:第一个输入张量。b
:第二个输入张量。fun
:自定义二元操作函数。
返回值:新的张量。
ggml_map_custom3_f32
struct ggml_tensor * ggml_map_custom3_f32(struct ggml_context * ctx, struct ggml_tensor * a, struct ggml_tensor * b, struct ggml_tensor * c, const ggml_custom3_op_f32_t fun);
描述:对32位浮点数张量执行自定义三元映射操作。
参数:
ctx
:上下文指针。a
:第一个输入张量。b
:第二个输入张量。c
:第三个输入张量。fun
:自定义三元操作函数。
返回值:新的张量。
ggml_map_custom3_inplace_f32
struct ggml_tensor * ggml_map_custom3_inplace_f32(struct ggml_context * ctx, struct ggml_tensor * a, struct ggml_tensor * b, struct ggml_tensor * c, const ggml_custom3_op_f32_t fun);
描述:对32位浮点数张量执行原地自定义三元映射操作。
参数:
ctx
:上下文指针。a
:第一个输入张量。b
:第二个输入张量。c
:第三个输入张量。fun
:自定义三元操作函数。
返回值:新的张量。
ggml_map_custom1
struct ggml_tensor * ggml_map_custom1(struct ggml_context * ctx, struct ggml_tensor * a, const ggml_custom1_op_t fun, int n_tasks, void * userdata);
描述:执行自定义一元映射操作。
参数:
ctx
:上下文指针。a
:输入张量。fun
:自定义一元操作函数。n_tasks
:任务数量。userdata
:用户数据。
返回值:新的张量。
ggml_map_custom1_inplace
struct ggml_tensor * ggml_map_custom1_inplace(struct ggml_context * ctx, struct ggml_tensor * a, const ggml_custom1_op_t fun, int n_tasks, void * userdata);
描述:执行原地自定义一元映射操作。
参数:
ctx
:上下文指针。a
:输入张量。fun
:自定义一元操作函数。n_tasks
:任务数量。userdata
:用户数据。
返回值:新的张量。
ggml_map_custom2_op_params
描述:包含自定义操作函数、任务数量和用户数据的结构体。
字段 | 类型 | 描述 |
fun | ggml_custom2_op_t | 自定义操作函数 |
n_tasks | int | 任务数量 |
userdata | void * | 用户数据 |
GGML_N_TASKS_MAX
类型:未明确给出类型,但根据上下文推测为整数类型
描述:表示最大任务数量的常量,用于断言任务数是否合法。
ggml_map_custom2_op_params
描述:用于存储自定义二元操作的参数的结构体。
字段 | 类型 | 描述 |
fun | ggml_custom2_op_t | 自定义二元操作的函数指针 |
n_tasks | int | 任务数量 |
userdata | void * | 用户数据指针 |
ggml_map_custom3_op_params
描述:用于存储自定义三元操作的参数的结构体。
字段 | 类型 | 描述 |
fun | ggml_custom3_op_t | 自定义三元操作的函数指针 |
n_tasks | int | 任务数量 |
userdata | void * | 用户数据指针 |
ggml_map_custom2_impl
struct ggml_tensor * ggml_map_custom2_impl( struct ggml_context * ctx, struct ggml_tensor * a, struct ggml_tensor * b, const ggml_custom2_op_t fun, int n_tasks, void * userdata, bool inplace)
描述:实现自定义二元操作的函数,接受两个张量和自定义操作函数,以及其他参数,返回计算结果张量。
参数:
ctx
:ggml上下文指针a
:第一个输入张量b
:第二个输入张量fun
:自定义二元操作函数指针n_tasks
:任务数量userdata
:用户数据指针inplace
:是否原地操作的布尔值
返回值:计算结果张量
ggml_map_custom2
struct ggml_tensor * ggml_map_custom2( struct ggml_context * ctx, struct ggml_tensor * a, struct ggml_tensor * b, const ggml_custom2_op_t fun, int n_tasks, void * userdata)
描述:调用ggml_map_custom2_impl
函数实现自定义二元操作,不进行原地操作。
参数:与ggml_map_custom2_impl
相同,但不包括inplace
参数。
返回值:计算结果张量
ggml_map_custom2_inplace
struct ggml_tensor * ggml_map_custom2_inplace( struct ggml_context * ctx, struct ggml_tensor * a, struct ggml_tensor * b, const ggml_custom2_op_t fun, int n_tasks, void * userdata)
描述:调用ggml_map_custom2_impl
函数实现自定义二元操作,进行原地操作。
参数:与ggml_map_custom2_impl
相同,但不包括inplace
参数。
返回值:计算结果张量
ggml_map_custom3_impl
static struct ggml_tensor * ggml_map_custom3_impl( struct ggml_context * ctx, struct ggml_tensor * a, struct ggml_tensor * b, struct ggml_tensor * c, const ggml_custom3_op_t fun, int n_tasks, void * userdata, bool inplace)
描述:实现自定义三元操作的函数,接受三个张量和自定义操作函数,以及其他参数,返回计算结果张量。
参数:
ctx
:ggml上下文指针a
:第一个输入张量b
:第二个输入张量c
:第三个输入张量fun
:自定义三元操作函数指针n_tasks
:任务数量userdata
:用户数据指针inplace
:是否原地操作的布尔值
返回值:计算结果张量
ggml_map_custom3
struct ggml_tensor * ggml_map_custom3( struct ggml_context * ctx, struct ggml_tensor * a, struct ggml_tensor * b, struct ggml_tensor * c, const ggml_custom3_op_t fun, int n_tasks, void * userdata)
描述:调用ggml_map_custom3_impl
函数实现自定义三元操作,不进行原地操作。
参数:与ggml_map_custom3_impl
相同,但不包括inplace
参数。
返回值:计算结果张量
ggml_map_custom3_inplace
struct ggml_tensor * ggml_map_custom3_inplace( struct ggml_context * ctx, struct ggml_tensor * a, struct ggml_tensor * b, struct ggml_tensor * c, const ggml_custom3_op_t fun, int n_tasks, void * userdata)
描述:调用ggml_map_custom3_impl
函数实现自定义三元操作,进行原地操作。
参数:与ggml_map_custom3_impl
相同,但不包括inplace
参数。
返回值:计算结果张量
ggml_cross_entropy_loss
struct ggml_tensor * ggml_cross_entropy_loss( struct ggml_context * ctx, struct ggml_tensor * a, struct ggml_tensor * b)
描述:计算交叉熵损失的函数,接受两个张量作为输入,返回计算结果张量。
参数:
ctx
:ggml上下文指针a
:第一个输入张量b
:第二个输入张量
返回值:计算结果张量
ggml_cross_entropy_loss_back
struct ggml_tensor * ggml_cross_entropy_loss_back( struct ggml_context * ctx, struct ggml_tensor * a, struct ggml_tensor * b, struct ggml_tensor * c)
描述:计算交叉熵损失的反向传播的函数,接受三个张量作为输入,返回计算结果张量。
参数:
ctx
:ggml上下文指针a
:第一个输入张量b
:第二个输入张量c
:第三个输入张量
返回值:计算结果张量
ggml_set_param
void ggml_set_param( struct ggml_context * ctx, struct ggml_tensor * tensor)
描述:设置张量为参数的函数,标记张量为参数并为其分配梯度张量。
参数:
ctx
:ggml上下文指针tensor
:要设置为参数的张量
返回值:无
ggml_compute_forward_dup_same_cont
static void ggml_compute_forward_dup_same_cont( const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst)
描述:执行前向计算的函数,处理连续内存块相同的情况,将源张量的数据复制到目标张量中。
参数:
params
:计算参数src0
:源张量dst
:目标张量
返回值:无
ggml_compute_forward_dup_f16
static void ggml_compute_forward_dup_f16( const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst)
描述:执行前向计算的函数,处理16位浮点数的情况,将源张量的数据复制到目标张量中。
参数:
params
:计算参数src0
:源张量dst
:目标张量
返回值:无
ggml_compute_forward_dup_f32
static void ggml_compute_forward_dup_f32( const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst)
描述:执行前向计算的函数,处理32位浮点数的情况,将源张量的数据复制到目标张量中。
参数:
params
:计算参数src0
:源张量dst
:目标张量
返回值:无
ggml_compute_forward_dup_bytes
static void ggml_compute_forward_dup_bytes( const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst)
描述:执行前向计算的函数,处理字节数据的情况,将源张量的数据复制到目标张量中。
参数:
params
:计算参数src0
:源张量dst
:目标张量
返回值:无
以上是对给定代码段中的常量、结构体和公开函数的提取和总结。
GGML_TYPE_F16
类型:枚举值
描述:表示数据类型为半精度浮点数(16位)。
GGML_TYPE_F32
类型:枚举值
描述:表示数据类型为单精度浮点数(32位)。
GGML_TASK_INIT
类型:枚举值
描述:表示计算任务的类型为初始化。
GGML_TASK_FINALIZE
类型:枚举值
描述:表示计算任务的类型为结束。
ggml_compute_params
描述:包含计算参数的结构体。
字段 | 类型 | 描述 |
type |
枚举值 | 计算任务的类型 |
ith |
int | 当前线程的索引 |
nth |
int | 总线程数 |
wdata |
void* | 工作数据指针 |
ggml_tensor
描述:表示张量的结构体。
字段 | 类型 | 描述 |
type |
枚举值 | 张量的数据类型 |
data |
void* | 张量的数据指针 |
ggml_compute_forward_dup
void ggml_compute_forward_dup( const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst);
描述:计算前向传播的重复操作,将源张量的数据复制到目标张量中。
参数:
params
:计算参数。src0
:源张量。dst
:目标张量。
返回值:无。
ggml_compute_forward_add_f32
static void ggml_compute_forward_add_f32( 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_add_f16_f32
static void ggml_compute_forward_add_f16_f32( 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_add_f16_f16
static void ggml_compute_forward_add_f16_f16( 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_add_q_f32
static void ggml_compute_forward_add_q_f32( 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_add
static void ggml_compute_forward_add( 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_add1_f32
static void ggml_compute_forward_add1_f32( 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_add1_f16_f32
static void ggml_compute_forward_add1_f16_f32( 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_TYPE_F16
类型:枚举值
描述:表示数据类型为半精度浮点数(16位)。
GGML_TYPE_F32
类型:枚举值
描述:表示数据类型为单精度浮点数(32位)。
GGML_TYPE_Q4_0
类型:枚举值
描述:表示量化类型为4位,偏移量为0。
GGML_TYPE_Q4_1
类型:枚举值
描述:表示量化类型为4位,偏移量为1。
GGML_TYPE_Q5_0
类型:枚举值
描述:表示量化类型为5位,偏移量为0。
GGML_TYPE_Q5_1
类型:枚举值
描述:表示量化类型为5位,偏移量为1。
GGML_TYPE_Q8_0
类型:枚举值
描述:表示量化类型为8位,偏移量为0。
GGML_TYPE_Q8_1
类型:枚举值
描述:表示量化类型为8位,偏移量为1。
GGML_TYPE_Q2_K
类型:枚举值
描述:表示量化类型为2位,K未知。
GGML_TYPE_Q3_K
类型:枚举值
描述:表示量化类型为3位,K未知。
GGML_TYPE_Q4_K
类型:枚举值
描述:表示量化类型为4位,K未知。
GGML_TYPE_Q5_K
类型:枚举值
描述:表示量化类型为5位,K未知。
GGML_TYPE_Q6_K
类型:枚举值
描述:表示量化类型为6位,K未知。
ggml_compute_params
描述:计算参数结构体,包含计算任务的类型、索引、线程总数等信息。
字段 | 类型 | 描述 |
type | enum ggml_task_type | 任务类型 |
ith | int | 当前线程的索引 |
nth | int | 线程总数 |
ggml_tensor
描述:张量结构体,包含张量的数据、形状、类型等信息。
字段 | 类型 | 描述 |
data | void* | 指向张量数据的指针 |
type | enum ggml_type | 张量的数据类型 |
ne | int64_t[GGML_MAX_DIMS] | 各维度的大小 |
nb | size_t[GGML_MAX_DIMS] | 各维度的步长 |
op_params | void* | 操作参数 |
ggml_compute_forward_add1_f16_f16
void ggml_compute_forward_add1_f16_f16( 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_add1_q_f32
void ggml_compute_forward_add1_q_f32( 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_add1
void ggml_compute_forward_add1( 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_acc_f32
void ggml_compute_forward_acc_f32( 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_acc
void ggml_compute_forward_acc( 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_sub_f32
void ggml_compute_forward_sub_f32( 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_sub
void ggml_compute_forward_sub( 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_mul_f32
void ggml_compute_forward_mul_f32( const struct ggml_compute_params * params, const struct ggml_tensor * src0, const struct ggml_tensor * src1, struct ggml_tensor * dst);
描述:计算两个单精度浮点数张量的前向乘法操作。
参数:
params
:计算参数结构体指针。src0
:第一个输入张量指针。src1
:第二个输入张量指针。dst
:输出张量指针。
返回值:无。
这些函数和结构体定义了在张量计算中常用的操作,如加法、减法、乘法和累加等,适用于不同的数据类型和后端(如CPU或GPU)。
无显式定义的常量。
无显式定义的结构体。
ggml_compute_forward_mul_f32
void ggml_compute_forward_mul_f32( 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_div_f32
void ggml_compute_forward_div_f32( 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_sqr_f32
void ggml_compute_forward_sqr_f32( const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst);
描述:计算输入张量的平方,结果存储在目标张量中。
参数:
params
:计算参数。src0
:输入张量。dst
:目标张量,存储计算结果。
返回值:无。
ggml_compute_forward_sqrt_f32
void ggml_compute_forward_sqrt_f32( const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst);
描述:计算输入张量的平方根,结果存储在目标张量中。
参数:
params
:计算参数。src0
:输入张量。dst
:目标张量,存储计算结果。
返回值:无。
ggml_compute_forward_log_f32
void ggml_compute_forward_log_f32( const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst);
描述:计算输入张量的对数,结果存储在目标张量中。
参数:
params
:计算参数。src0
:输入张量。dst
:目标张量,存储计算结果。
返回值:无。
ggml_compute_forward_sum_f32
void ggml_compute_forward_sum_f32( const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst);
描述:计算输入张量的元素总和,结果存储在目标张量中。
参数:
params
:计算参数。src0
:输入张量。dst
:目标张量,存储计算结果。
返回值:无。
ggml_compute_forward_sum_rows_f32
void ggml_compute_forward_sum_rows_f32( const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst);
描述:计算输入张量每一行的和,结果存储在目标张量中。
参数:
params
:计算参数。src0
:输入张量。dst
:目标张量,存储计算结果。
返回值:无。
以上函数均为针对特定数据类型(如GGML_TYPE_F32)的前向计算操作,包括乘法、除法、平方、平方根、对数、求和和行求和等。每个函数都接受计算参数、输入张量和目标张量作为参数,并执行相应的计算操作,将结果存储在目标张量中。
GGML_TYPE_F32
类型:枚举值
描述:表示数据类型为32位浮点数。
GGML_TYPE_F16
类型:枚举值
描述:表示数据类型为16位浮点数。
GGML_TYPE_I16
类型:枚举值
描述:表示数据类型为16位整数。
GGML_TYPE_I32
类型:枚举值
描述:表示数据类型为32位整数。
GGML_TASK_INIT
类型:枚举值
描述:表示任务类型为初始化。
GGML_TASK_FINALIZE
类型:枚举值
描述:表示任务类型为结束。
ggml_compute_params
描述:包含计算参数的结构体。
字段 | 类型 | 描述 |
ith | int | 当前线程索引 |
nth | int | 总线程数 |
type | enum { GGML_TASK_INIT, GGML_TASK_FINALIZE } | 任务类型 |
ggml_tensor
描述:表示张量的结构体。
字段 | 类型 | 描述 |
data | void* | 张量数据指针 |
nb | size_t[] | 每个维度字节数 |
ne | int64_t[] | 每个维度元素数量 |
type | enum { GGML_TYPE_F32, GGML_TYPE_F16, GGML_TYPE_I16, GGML_TYPE_I32 } | 张量数据类型 |
ggml_compute_forward_sum_rows_f32
void ggml_compute_forward_sum_rows_f32(const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst);
描述:计算前向传播的行求和操作,针对32位浮点型张量。
参数:
params
:计算参数。src0
:输入张量。dst
:输出张量。
返回值:无。
ggml_compute_forward_mean_f32
static void ggml_compute_forward_mean_f32(const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst);
描述:计算前向传播的均值操作,针对32位浮点型张量。
参数:
params
:计算参数。src0
:输入张量。dst
:输出张量。
返回值:无。
ggml_compute_forward_mean
static void ggml_compute_forward_mean(const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst);
描述:计算前向传播的均值操作,根据输入张量的类型选择对应的处理函数。
参数:
params
:计算参数。src0
:输入张量。dst
:输出张量。
返回值:无。
ggml_compute_forward_argmax_f32
static void ggml_compute_forward_argmax_f32(const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst);
描述:计算前向传播的 argmax 操作,针对32位浮点型张量。
参数:
params
:计算参数。src0
:输入张量。dst
:输出张量。
返回值:无。
ggml_compute_forward_argmax
static void ggml_compute_forward_argmax(const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst);
描述:计算前向传播的 argmax 操作,根据输入张量的类型选择对应的处理函数。
参数:
params
:计算参数。src0
:输入张量。dst
:输出张量。
返回值:无。
ggml_compute_forward_repeat_f32
static void ggml_compute_forward_repeat_f32(const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst);
描述:计算前向传播的重复操作,针对32位浮点型张量。
参数:
params
:计算参数。src0
:输入张量。dst
:输出张量。
返回值:无。
ggml_compute_forward_repeat_f16
static void ggml_compute_forward_repeat_f16(const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst);
描述:计算前向传播的重复操作,针对16位浮点型张量。
参数:
params
:计算参数。src0
:输入张量。dst
:输出张量。
返回值:无。
ggml_compute_forward_repeat
static void ggml_compute_forward_repeat(const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst);
描述:计算前向传播的重复操作,根据输入张量的类型选择对应的处理函数。
参数:
params
:计算参数。src0
:输入张量。dst
:输出张量。
返回值:无。
ggml_compute_forward_repeat_back_f32
static void ggml_compute_forward_repeat_back_f32(const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst);
描述:计算前向传播的重复操作的反向操作,针对32位浮点型张量。
参数:
params
:计算参数。src0
:输入张量。dst
:输出张量。
返回值:无。
ggml_compute_forward_repeat_back
static void ggml_compute_forward_repeat_back(const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst);
描述:计算前向传播的重复操作的反向操作,根据输入张量的类型选择对应的处理函数。
参数:
params
:计算参数。src0
:输入张量。dst
:输出张量。
返回值:无。
ggml_compute_forward_concat_f32
static void ggml_compute_forward_concat_f32(const struct ggml_compute_params * params, const struct ggml_tensor * src0, const struct ggml_tensor * src1, struct ggml_tensor * dst);
描述:计算前向传播的拼接操作,针对32位浮点型张量。
参数:
params
:计算参数。src0
:第一个输入张量。src1
:第二个输入张量。dst
:输出张量。
返回值:无。
ggml_compute_forward_concat
static void ggml_compute_forward_concat(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_abs_f32
static void ggml_compute_forward_abs_f32(const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst);
描述:计算前向传播的绝对值操作,针对32位浮点型张量。
参数:
params
:计算参数。src0
:输入张量。dst
:输出张量。
返回值:无。
ggml_compute_forward_abs
static void ggml_compute_forward_abs(const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst);
描述:计算前向传播的绝对值操作,根据输入张量的类型选择对应的处理函数。
参数:
params
:计算参数。src0
:输入张量。dst
:输出张量。
返回值:无。
无显式定义的常量。
无显式定义的结构体。
ggml_compute_forward_sgn
static void ggml_compute_forward_sgn( const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst)
描述:计算符号函数操作的前向传播。根据输入张量的类型进行不同的处理。
参数:
params
:计算参数。src0
:输入张量。dst
:输出张量。
返回值:无。
ggml_compute_forward_sgn_f32
static void ggml_compute_forward_sgn_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_neg
static void ggml_compute_forward_neg( const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst)
描述:计算负数函数操作的前向传播。根据输入张量的类型进行不同的处理。
参数:
params
:计算参数。src0
:输入张量。dst
:输出张量。
返回值:无。
ggml_compute_forward_neg_f32
static void ggml_compute_forward_neg_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_step
static void ggml_compute_forward_step( const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst)
描述:计算步进函数操作的前向传播。根据输入张量的类型进行不同的处理。
参数:
params
:计算参数。src0
:输入张量。dst
:输出张量。
返回值:无。
ggml_compute_forward_step_f32
static void ggml_compute_forward_step_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_tanh
static void ggml_compute_forward_tanh( const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst)
描述:计算 tanh 激活函数的前向传播。根据输入张量的类型进行不同的处理。
参数:
params
:计算参数。src0
:输入张量。dst
:输出张量。
返回值:无。
ggml_compute_forward_tanh_f32
static void ggml_compute_forward_tanh_f32( const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst)
描述:计算 tanh 激活函数的前向传播,针对类型为 GGML_TYPE_F32 的张量。
参数:
params
:计算参数。src0
:输入张量。dst
:输出张量。
返回值:无。
ggml_compute_forward_elu
static void ggml_compute_forward_elu( const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst)
描述:计算 ELU 激活函数的前向传播。根据输入张量的类型进行不同的处理。
参数:
params
:计算参数。src0
:输入张量。dst
:输出张量。
返回值:无。
ggml_compute_forward_elu_f32
static void ggml_compute_forward_elu_f32( const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst)
描述:计算 ELU 激活函数的前向传播,针对类型为 GGML_TYPE_F32 的张量。
参数:
params
:计算参数。src0
:输入张量。dst
:输出张量。
返回值:无。
ggml_compute_forward_relu
static void ggml_compute_forward_relu( const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst)
描述:计算 ReLU 激活函数的前向传播。根据输入张量的类型进行不同的处理。
参数:
params
:计算参数。src0
:输入张量。dst
:输出张量。
返回值:无。
ggml_compute_forward_relu_f32
static void ggml_compute_forward_relu_f32( const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst)
描述:计算 ReLU 激活函数的前向传播,针对类型为 GGML_TYPE_F32 的张量。
参数:
params
:计算参数。src0
:输入张量。dst
:输出张量。
返回值:无。
ggml_compute_forward_gelu
static void ggml_compute_forward_gelu( const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst)
描述:计算 GELU 激活函数的前向传播。根据输入张量的类型进行不同的处理。
参数:
params
:计算参数。src0
:输入张量。dst
:输出张量。
返回值:无。
ggml_compute_forward_gelu_f32
static void ggml_compute_forward_gelu_f32( const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst)
描述:计算 GELU 激活函数的前向传播,针对类型为 GGML_TYPE_F32 的张量。
参数:
params
:计算参数。src0
:输入张量。dst
:输出张量。
返回值:无。
ggml_compute_forward_gelu_quick
static void ggml_compute_forward_gelu_quick( const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst)
描述:计算快速 GELU 激活函数的前向传播。根据输入张量的类型进行不同的处理。
参数:
params
:计算参数。src0
:输入张量。dst
:输出张量。
返回值:无。
ggml_compute_forward_gelu_quick_f32
static void ggml_compute_forward_gelu_quick_f32( const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst)
描述:计算快速 GELU 激活函数的前向传播,针对类型为 GGML_TYPE_F32 的张量。
参数:
params
:计算参数。src0
:输入张量。dst
:输出张量。
返回值:无。
ggml_compute_forward_silu
static void ggml_compute_forward_silu( const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst)
描述:计算 SiLU 激活函数的前向传播。根据输入张量的类型进行不同的处理。
参数:
params
:计算参数。src0
:输入张量。dst
:输出张量。
返回值:无。
ggml_compute_forward_silu_f32
static void ggml_compute_forward_silu_f32( const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst)
描述:计算 SiLU 激活函数的前向传播,针对类型为 GGML_TYPE_F32 的张量。
参数:
params
:计算参数。src0
:输入张量。dst
:输出张量。
返回值:无。
以上是根据提供的代码段提取的常量、结构体和公开函数的信息。由于代码段中没有显式定义的常量和结构体,因此这部分为空。所有函数都是静态的,因此没有公开函数。
nc
类型:int
描述:表示输入张量src0
的第一个维度大小。
nr
类型:int
描述:表示输入张量src0
的行数,通过ggml_nrows(src0)
获取。
dr
类型:int
描述:表示每个线程处理的行数,计算方式为(nr + nth - 1)/nth
。
ir0
类型:int
描述:表示当前线程处理的行范围的起始行,计算方式为dr*ith
。
ir1
类型:int
描述:表示当前线程处理的行范围的结束行,计算方式为MIN(ir0 + dr, nr)
。
ggml_compute_params
描述:包含计算参数的结构体。
字段 | 类型 | 描述 |
ith | int | 当前线程的索引 |
nth | int | 线程总数 |
ggml_tensor
描述:表示张量的结构体。
字段 | 类型 | 描述 |
data | void* | 张量数据的指针 |
ne | int[] | 张量的维度大小 |
nb | int[] | 张量的步长(字节) |
type | int | 张量的数据类型 |
op_params | void* | 操作参数的指针 |
ggml_vec_silu_f32
void ggml_vec_silu_f32(int nc, float *dst, float *src);
描述:对F32类型的向量进行SiLU(Sigmoid Linear Unit)激活函数处理。
参数:
nc
:向量的长度。dst
:输出向量的指针。src
:输入向量的指针。
ggml_vec_leaky_relu_f32
void ggml_vec_leaky_relu_f32(int nc, float *dst, float *src, float negative_slope);
描述:对F32类型的向量进行Leaky ReLU激活函数处理。
参数:
nc
:向量的长度。dst
:输出向量的指针。src
:输入向量的指针。negative_slope
:Leaky ReLU的负斜率。
ggml_vec_silu_backward_f32
void ggml_vec_silu_backward_f32(int nc, float *dst, float *src, float *grad);
描述:对F32类型的向量进行SiLU激活函数的反向传播计算。
参数:
nc
:向量的长度。dst
:输出梯度的指针。src
:输入向量的指针。grad
:输入梯度的指针。
ggml_vec_scale_f32
void ggml_vec_scale_f32(int ne00, float *y, float scale);
描述:对F32类型的向量进行缩放操作。
参数:
ne00
:向量的长度。y
:待缩放的向量的指针。scale
:缩放因子。
ggml_compute_forward_silu
static void ggml_compute_forward_silu(const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst);
描述:计算SiLU激活函数的前向传播。
参数:
params
:计算参数结构体指针。src0
:输入张量指针。dst
:输出张量指针。
ggml_compute_forward_leaky_relu_f32
static void ggml_compute_forward_leaky_relu_f32(const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst);
描述:计算F32类型的Leaky ReLU激活函数的前向传播。
参数:
params
:计算参数结构体指针。src0
:输入张量指针。dst
:输出张量指针。
ggml_compute_forward_leaky_relu
static void ggml_compute_forward_leaky_relu(const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst);
描述:计算Leaky ReLU激活函数的前向传播。
参数:
params
:计算参数结构体指针。src0
:输入张量指针。dst
:输出张量指针。
ggml_compute_forward_silu_back_f32
static void ggml_compute_forward_silu_back_f32(const struct ggml_compute_params * params, const struct ggml_tensor * src0, const struct ggml_tensor * grad, struct ggml_tensor * dst);
描述:计算F32类型的SiLU激活函数的反向传播。
参数:
params
:计算参数结构体指针。src0
:输入张量指针。grad
:梯度张量指针。dst
:输出张量指针。
ggml_compute_forward_silu_back
static void ggml_compute_forward_silu_back(const struct ggml_compute_params * params, const struct ggml_tensor * src0, const struct ggml_tensor * grad, struct ggml_tensor * dst);
描述:计算SiLU激活函数的反向传播。
参数:
params
:计算参数结构体指针。src0
:输入张量指针。grad
:梯度张量指针。dst
:输出张量指针。
ggml_compute_forward_norm_f32
static void ggml_compute_forward_norm_f32(const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst);
描述:计算F32类型的归一化操作的前向传播。
参数:
params
:计算参数结构体指针。src0
:输入张量指针。dst
:输出张量指针。
ggml_compute_forward_norm
static void ggml_compute_forward_norm(const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst);
描述:计算归一化操作的前向传播。
参数:
params
:计算参数结构体指针。src0
:输入张量指针。dst
:输出张量指针。
ggml_compute_forward_rms_norm_f32
static void ggml_compute_forward_rms_norm_f32(const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst);
描述:计算F32类型的RMS归一化操作的前向传播。
参数:
params
:计算参数结构体指针。src0
:输入张量指针。dst
:输出张量指针。
ggml_compute_forward_rms_norm
static void ggml_compute_forward_rms_norm(const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst);
描述:计算RMS归一化操作的前向传播。
参数:
params
:计算参数结构体指针。src0
:输入张量指针。dst
:输出张量指针。
ggml_compute_forward_rms_norm_back_f32
static void ggml_compute_forward_rms_norm_back_f32(const struct ggml_compute_params * params, const struct ggml_tensor * src0, const struct ggml_tensor * src1, struct ggml_tensor * dst);
描述:计算F32类型的RMS归一化操作的反向传播。
参数:
params
:计算参数结构体指针。src0
:输入张量指针。src1
:第二个输入张量指针。dst
:输出张量指针。
ggml_compute_forward_rms_norm_back
static void ggml_compute_forward_rms_norm_back(const struct ggml_compute_params * params, const struct ggml_tensor * src0, const struct ggml_tensor * src1, struct ggml_tensor * dst);
描述:计算RMS归一化操作的反向传播。
参数:
params
:计算参数结构体指针。src0
:输入张量指针。src1
:第二个输入张量指针。dst
:输出张量指针。
ggml_compute_forward_group_norm_f32
static void ggml_compute_forward_group_norm_f32(const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst);
描述:计算F32类型的组归一化操作的前向传播。
参数:
params
:计算参数结构体指针。src0
:输入张量指针。dst
:输出张量指针。
请注意,上述函数和结构体的描述是基于提供的代码片段进行的总结,可能不包含所有细节,且未考虑代码中未提供的上下文信息。
eps
类型:float
描述:一个很小的正数,用于在计算方差时避免除以零的情况。
scale
类型:float
描述:缩放比例,用于对数据进行缩放。
ggml_compute_params
描述:包含计算参数的结构体。
字段 | 类型 | 描述 |
ith | int | 当前线程的索引。 |
nth | int | 线程总数。 |
ggml_tensor
描述:表示张量的结构体。
字段 | 类型 | 描述 |
type | enum ggml_type | 张量的数据类型。 |
data | void* | 张量数据的指针。 |
ne | int64_t[] | 张量的维度大小。 |
op | enum ggml_op | 张量的操作类型。 |
src | const struct ggml_tensor*[] | 张量的源张量数组。 |
nb | int[] | 张量的字节大小。 |
ggml_compute_forward_group_norm
void ggml_compute_forward_group_norm( const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst);
描述:计算前向分组归一化的函数。
参数:
params
:计算参数结构体。src0
:输入张量。dst
:输出张量。
ggml_compute_forward_mul_mat
void ggml_compute_forward_mul_mat( 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_mul_mat_use_blas
bool ggml_compute_forward_mul_mat_use_blas( const struct ggml_tensor * src0, const struct ggml_tensor * src1, struct ggml_tensor * dst);
描述:用于确定是否使用 BLAS 进行更快的矩阵乘法计算的辅助函数。
参数:
src0
:第一个输入张量。src1
:第二个输入张量。dst
:输出张量。
返回值:如果使用 BLAS,则返回 true;否则返回 false。
ggml_compute_forward_mul_mat_id
void ggml_compute_forward_mul_mat_id( const struct ggml_compute_params * params, const struct ggml_tensor * ids, const struct ggml_tensor * src1, struct ggml_tensor * dst);
描述:计算前向矩阵乘法 ID 的函数。
参数:
params
:计算参数结构体。ids
:ID 张量。src1
:输入张量。dst
:输出张量。
ggml_compute_forward_out_prod_f32
void ggml_compute_forward_out_prod_f32( 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_VEC_MAD_UNROLL
类型:整型常量
描述:用于控制向量乘加操作的展开次数,如果大于2,则执行特定的代码块。
ggml_compute_params
描述:包含计算参数的结构体,如线程索引、线程总数等。
字段 | 类型 | 描述 |
ith | int | 线程索引 |
nth | int | 线程总数 |
type | enum ggml_task_type | 任务类型 |
wdata | void* | 指向计算数据的指针 |
ggml_tensor
描述:表示张量的结构体,包含张量的数据、形状、步长等信息。
字段 | 类型 | 描述 |
data | void* | 指向张量数据的指针 |
ne | int* | 张量的维度大小数组 |
nb | size_t* | 张量的步长数组 |
type | enum ggml_type | 张量的数据类型 |
op_params | void* | 操作参数,用于存储特定操作的参数 |
ggml_compute_forward_out_prod_q_f32
void ggml_compute_forward_out_prod_q_f32( const struct ggml_compute_params * params, const struct ggml_tensor * src0, const struct ggml_tensor * src1, struct ggml_tensor * dst);
描述:计算两个输入张量的张量积,并将结果存储在目标张量中。根据输入张量的类型进行不同的处理。
ggml_compute_forward_scale_f32
void ggml_compute_forward_scale_f32( const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst);
描述:计算F32类型张量的缩放操作。根据输入张量的类型进行不同的处理。
ggml_compute_forward_set_f32
void ggml_compute_forward_set_f32( const struct ggml_compute_params * params, const struct ggml_tensor * src0, const struct ggml_tensor * src1, struct ggml_tensor * dst);
描述:计算F32类型张量的设置操作。根据输入张量的类型进行不同的处理。
ggml_compute_forward_cpy
void ggml_compute_forward_cpy( const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst);
描述:根据输入参数和张量进行复制操作。
ggml_compute_forward_cont
void ggml_compute_forward_cont( const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst);
描述:根据输入参数和张量进行复制操作。
ggml_compute_forward_reshape
void ggml_compute_forward_reshape( const struct ggml_compute_params * params, const struct ggml_tensor * src0, struct ggml_tensor * dst);
描述:根据输入参数和张量进行重塑操作。
ggml_compute_forward_view
void ggml_compute_forward_view( const struct ggml_compute_params * params, const struct ggml_tensor * src0);
描述:根据输入参数和张量进行视图操作。
ggml_compute_forward_permute
void ggml_compute_forward_permute( const struct ggml_compute_params * params, const struct ggml_tensor * src0);
描述:根据输入参数和张量进行排列操作。
ggml_compute_forward_transpose
void ggml_compute_forward_transpose( const struct ggml_compute_params * params, const struct ggml_tensor * src0);
描述:定义一个静态函数,用于计算转置操作。
ggml_compute_forward_get_rows_q
void ggml_compute_forward_get_rows_q( const struct ggml_compute_params * params, const struct ggml_tensor * src0, const struct ggml_tensor * src1, struct ggml_tensor * dst);
描述:获取行数据的前向计算,数据类型为整型。断言确保参数中的ith为0。如果任务类型为初始化或结束,则直接返回。
无显式定义的常量。
无显式定义的结构体。
ggml_compute_forward_get_rows_q
void ggml_compute_forward_get_rows_q( const struct ggml_compute_params * params, const struct ggml_tensor * src0, const struct ggml_tensor * src1, struct ggml_tensor * dst);
描述:根据给定的计算参数和源张量,计算前向传播时获取行的量化数据,并将结果存储到目标张量中。
ggml_compute_forward_get_rows_f16
static void ggml_compute_forward_get_rows_f16( const struct ggml_compute_params * params, const struct ggml_tensor * src0, const struct ggml_tensor * src1, struct ggml_tensor * dst);
描述:静态函数,用于计算前向传播时获取行的半精度浮点数数据,数据类型为f16,并将结果存储到目标张量中。
ggml_compute_forward_get_rows_f32
static void ggml_compute_forward_get_rows_f32( const struct ggml_compute_params * params, const struct ggml_tensor * src0, const struct ggml_tensor * src1, struct ggml_tensor * dst);
描述:静态函数,用于计算前向传播时获取行的单精度浮点数数据,数据类型为f32,并将结果存储到目标张量中。
ggml_compute_forward_get_rows
void ggml_compute_forward_get_rows( const struct ggml_compute_params * params, const struct ggml_tensor * src0, const struct ggml_tensor * src1, struct ggml_tensor * dst);
描述:根据给定的计算参数和源张量,计算前向传播时获取行的数据,并将结果存储到目标张量中。根据源张量src0的类型进行不同的操作。
ggml_compute_forward_get_rows_back_f32_f16
static void ggml_compute_forward_get_rows_back_f32_f16( const struct ggml_compute_params * params, const struct ggml_tensor * src0, const struct ggml_tensor * src1, struct ggml_tensor * dst);
描述:静态函数,用于计算前向传播时获取行数据并返回到指定位置,数据类型为f32和f16。
ggml_compute_forward_get_rows_back_f32
static void ggml_compute_forward_get_rows_back_f32( const struct ggml_compute_params * params, const struct ggml_tensor * src0, const struct ggml_tensor * src1, struct ggml_tensor * dst);
描述:静态函数,用于计算前向传播时获取行数据并返回到指定位置,数据类型为f32。
GGML 非官方中文文档(4)https://developer.aliyun.com/article/1524428