GGML 非官方中文文档(3)

简介: GGML 非官方中文文档

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

相关文章
|
6月前
|
数据挖掘 API Go
《Go 简易速速上手小册》第7章:包管理与模块(2024 最新版)(下)
《Go 简易速速上手小册》第7章:包管理与模块(2024 最新版)
68 1
|
4月前
|
编解码 PyTorch 语音技术
Transformers 4.37 中文文档(九十五)(2)
Transformers 4.37 中文文档(九十五)
32 1
|
6月前
|
存储 缓存 C++
GGML 非官方中文文档(1)
GGML 非官方中文文档
255 1
|
6月前
|
存储 算法 异构计算
GGML 非官方中文文档(5)
GGML 非官方中文文档
111 1
|
4月前
|
存储 自然语言处理 安全
Transformers 4.37 中文文档(十八)(2)
Transformers 4.37 中文文档(十八)
53 0
|
4月前
|
存储 自然语言处理 PyTorch
Transformers 4.37 中文文档(十八)(5)
Transformers 4.37 中文文档(十八)
49 0
|
4月前
|
存储 JSON 自然语言处理
Transformers 4.37 中文文档(十八)(1)
Transformers 4.37 中文文档(十八)
40 0
|
4月前
|
自然语言处理 PyTorch 算法框架/工具
Transformers 4.37 中文文档(十八)(4)
Transformers 4.37 中文文档(十八)
79 0
|
4月前
|
存储 自然语言处理 算法框架/工具
Transformers 4.37 中文文档(十八)(3)
Transformers 4.37 中文文档(十八)
42 0
|
6月前
|
存储 算法 图计算
GGML 非官方中文文档(4)
GGML 非官方中文文档
201 0