GGML 非官方中文文档(4)

简介: GGML 非官方中文文档

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:源张量0
  • src1:源张量1
  • dst:目标张量
  • 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:源张量0
  • src1:源张量1
  • dst:目标张量
  • 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:源张量0
  • src1:源张量1
  • dst:目标张量

返回值:无

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:源张量0
  • src1:源张量1
  • dst:目标张量

返回值:无

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:源张量0
  • src1:源张量1
  • dst:目标张量

返回值:无

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:源张量0
  • src1:源张量1
  • dst:目标张量

返回值:无

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:源张量0
  • src1:源张量1
  • dst:目标张量

返回值:无

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_posggml_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

相关文章
|
2月前
|
数据挖掘 API Go
《Go 简易速速上手小册》第7章:包管理与模块(2024 最新版)(下)
《Go 简易速速上手小册》第7章:包管理与模块(2024 最新版)
45 1
|
2月前
|
存储 缓存 C++
GGML 非官方中文文档(1)
GGML 非官方中文文档
71 1
|
2月前
|
存储 算法 异构计算
GGML 非官方中文文档(5)
GGML 非官方中文文档
23 1
|
2月前
|
存储 异构计算 索引
GGML 非官方中文文档(3)
GGML 非官方中文文档
36 0
|
2月前
|
机器学习/深度学习 存储 API
GGML 非官方中文文档(2)
GGML 非官方中文文档
64 0
|
2月前
|
缓存 NoSQL Go
《Go 简易速速上手小册》第7章:包管理与模块(2024 最新版)(上)
《Go 简易速速上手小册》第7章:包管理与模块(2024 最新版)
94 1
|
2月前
|
JavaScript 前端开发 搜索推荐
《VitePress 简易速速上手小册》第1章:VitePress 入门(2024 最新版)
《VitePress 简易速速上手小册》第1章:VitePress 入门(2024 最新版)
120 1
|
2月前
|
JSON JavaScript 前端开发
dayjs 中文文档
dayjs 中文文档
528 0
|
2月前
|
资源调度 JavaScript 搜索推荐
《VitePress 简易速速上手小册》第9章 VitePress 的扩展与插件(2024 最新版)
《VitePress 简易速速上手小册》第9章 VitePress 的扩展与插件(2024 最新版)
153 0
|
8月前
|
JavaScript 前端开发 程序员
从零开发和发布自己的wordpress插件到官方插件库完全指南
wordpress是一款很流行的开源博客程序,全世界有很多网站都在使用wordpress,程序员们也喜欢拿来做自己的技术博客,对于自己不满意的地方,那肯定也需要自己动手来修改了,下面就介绍从开发到发布一个wordpress插件的完整流程
84 0