前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >GGML 非官方中文文档

GGML 非官方中文文档

作者头像
ApacheCN_飞龙
发布2024-05-16 15:28:05
2060
发布2024-05-16 15:28:05
举报
文章被收录于专栏:信数据得永生信数据得永生

_CRT_SECURE_NO_DEPRECATE

类型:宏定义

描述:禁用 Windows 上荒谬的“不安全”警告。

_USE_MATH_DEFINES

类型:宏定义

描述:在 MSVC 上使用 M_PI。

GGML_DEBUG

类型:宏定义

描述:定义调试级别。

GGML_GELU_FP16

类型:宏定义

描述:定义 GELU 函数的浮点数精度为 16 位。

GGML_GELU_QUICK_FP16

类型:宏定义

描述:定义快速 GELU 函数的浮点数精度为 16 位。

GGML_SILU_FP16

类型:宏定义

描述:定义 SILU 函数的浮点数精度为 16 位。

GGML_SOFT_MAX_UNROLL

类型:宏定义

描述:定义 SoftMax 函数的展开次数。

GGML_VEC_DOT_UNROLL

类型:宏定义

描述:定义向量点积函数的展开次数。

GGML_VEC_MAD_UNROLL

类型:宏定义

描述:定义向量乘加函数的展开次数。

GGML_MEM_ALIGN

类型:宏定义

描述:定义内存对齐大小。

CACHE_LINE_SIZE

类型:宏定义

描述:定义缓存行大小。

CACHE_LINE_SIZE_F32

类型:宏定义

描述:定义单精度浮点数缓存行大小。

GGML_TYPE_COUNT

类型:宏定义

描述:定义类型特性的数量。

GGML_TYPE_I8

类型:宏定义

描述:定义 8 位整数类型。

GGML_TYPE_I16

类型:宏定义

描述:定义 16 位整数类型。

GGML_TYPE_I32

类型:宏定义

描述:定义 32 位整数类型。

GGML_TYPE_F32

类型:宏定义

描述:定义 32 位浮点数类型。

atomic_int

描述:定义原子整型。

字段

类型

描述

atomic_bool

描述:定义原子布尔型。

字段

类型

描述

pthread_t

描述:定义线程句柄类型。

字段

类型

描述

thread_ret_t

描述:定义线程返回类型。

字段

类型

描述

ggml_type_traits_t

描述:定义类型特性结构体。

字段

类型

描述

type_name

char[]

类型名称

blck_size

size_t

块大小

type_size

size_t

类型大小

is_quantized

bool

是否量化

atomic_store

代码语言:javascript
复制
void atomic_store(atomic_int * ptr, LONG val)

描述:原子操作:存储。

参数:

  • ptr:指向原子整型的指针。
  • val:要存储的值。

返回值:无。

atomic_load

代码语言:javascript
复制
LONG atomic_load(atomic_int * ptr)

描述:原子操作:加载。

参数:

  • ptr:指向原子整型的指针。

返回值:加载的值。

atomic_fetch_add

代码语言:javascript
复制
LONG atomic_fetch_add(atomic_int * ptr, LONG inc)

描述:原子操作:加法。

参数:

  • ptr:指向原子整型的指针。
  • inc:要增加的值。

返回值:增加前的值。

atomic_fetch_sub

代码语言:javascript
复制
LONG atomic_fetch_sub(atomic_int * ptr, LONG dec)

描述:原子操作:减法。

参数:

  • ptr:指向原子整型的指针。
  • dec:要减少的值。

返回值:减少前的值。

pthread_create

代码语言:javascript
复制
int pthread_create(pthread_t * out, void * unused, thread_ret_t(*func)(void *), void * arg)

描述:创建线程。

参数:

  • out:输出参数,用于存储新创建线程的句柄。
  • unused:未使用的参数。
  • func:线程函数。
  • arg:传递给线程函数的参数。

返回值:线程创建结果。

pthread_join

代码语言:javascript
复制
int pthread_join(pthread_t thread, void * unused)

描述:等待线程结束。

参数:

  • thread:要等待的线程句柄。
  • unused:未使用的参数。

返回值:等待结果。

sched_yield

代码语言:javascript
复制
int sched_yield (void)

描述:在当前线程放弃 CPU 时间片,使得其他线程有机会执行。

参数:无。

返回值:0。

ggml_aligned_malloc

代码语言:javascript
复制
void * ggml_aligned_malloc(size_t size)

描述:分配对齐的内存。

参数:

  • size:要分配的内存大小。

返回值:指向分配内存的指针,如果分配失败则返回 NULL。

ggml_fp16_to_fp32

代码语言:javascript
复制
float ggml_fp16_to_fp32(ggml_fp16_t x)

描述:将 f16 转换为 f32。

参数:

  • x:要转换的 f16 值。

返回值:转换后的 f32 值。

ggml_fp32_to_fp16

代码语言:javascript
复制
ggml_fp16_t ggml_fp32_to_fp16(float x)

描述:将 f32 转换为 f16。

参数:

  • x:要转换的 f32 值。

返回值:转换后的 f16 值。

ggml_fp16_to_fp32_row

代码语言:javascript
复制
void ggml_fp16_to_fp32_row(const ggml_fp16_t * x, float * y, int n)

描述:将 f16 数组转换为 f32 数组。

参数:

  • x:输入的 f16 数组。
  • y:输出的 f32 数组。
  • n:数组大小。

返回值:无。

ggml_fp32_to_fp16_row

代码语言:javascript
复制
void ggml_fp32_to_fp16_row(const float * x, ggml_fp16_t * y, int n)

描述:将 f32 数组转换为 f16 数组。

参数:

  • x:输入的 f32 数组。
  • y:输出的 f16 数组。
  • n:数组大小。

返回值:无。

ggml_time_init

代码语言:javascript
复制
void ggml_time_init(void)

描述:初始化定时器。

参数:无。

返回值:无。

ggml_time_ms

代码语言:javascript
复制
int64_t ggml_time_ms(void)

描述:获取毫秒级时间。

参数:无。

返回值:当前时间(毫秒)。

ggml_time_us

代码语言:javascript
复制
int64_t ggml_time_us(void)

描述:获取微秒级时间。

参数:无。

返回值:当前时间(微秒)。

ggml_cycles

代码语言:javascript
复制
int64_t ggml_cycles(void)

描述:获取时钟周期数。

参数:无。

返回值:当前时钟周期数。

ggml_cycles_per_ms

代码语言:javascript
复制
int64_t ggml_cycles_per_ms(void)

描述:获取每毫秒的时钟周期数。

参数:无。

返回值:每毫秒的时钟周期数。

ggml_vec_dot_f32

代码语言:javascript
复制
static void ggml_vec_dot_f32(const int n, float * restrict s, const float * restrict x, const float * restrict y)

描述:计算两个 float 数组的点积。

参数:

  • n:数组大小。
  • s:输出参数,用于存储点积结果。
  • x:第一个输入数组。
  • y:第二个输入数组。

返回值:无。

ggml_vec_dot_f16

代码语言:javascript
复制
static void ggml_vec_dot_f16(const int n, float * restrict s, ggml_fp16_t * restrict x, ggml_fp16_t * restrict y)

描述:计算两个 ggml_fp16_t 类型数组的点积。

参数:

  • n:数组大小。
  • s:输出参数,用于存储点积结果。
  • x:第一个输入数组。
  • y:第二个输入数组。

返回值:无。

GGML_TYPE_F32

类型:枚举值

描述:表示数据类型为32位浮点数。

GGML_TYPE_F16

类型:枚举值

描述:表示数据类型为16位浮点数。

GGML_TYPE_Q4_0

类型:枚举值

描述:表示数据类型为量化类型Q4_0。

GGML_TYPE_Q4_1

类型:枚举值

描述:表示数据类型为量化类型Q4_1。

GGML_TYPE_Q5_0

类型:枚举值

描述:表示数据类型为量化类型Q5_0。

GGML_TYPE_Q5_1

类型:枚举值

描述:表示数据类型为量化类型Q5_1。

GGML_TYPE_Q8_0

类型:枚举值

描述:表示数据类型为量化类型Q8_0。

GGML_TYPE_Q8_1

类型:枚举值

描述:表示数据类型为量化类型Q8_1。

GGML_TYPE_Q2_K

类型:枚举值

描述:表示数据类型为量化类型Q2_K。

GGML_TYPE_Q3_K

类型:枚举值

描述:表示数据类型为量化类型Q3_K。

GGML_TYPE_Q4_K

类型:枚举值

描述:表示数据类型为量化类型Q4_K。

GGML_TYPE_Q5_K

类型:枚举值

描述:表示数据类型为量化类型Q5_K。

GGML_TYPE_Q6_K

类型:枚举值

描述:表示数据类型为量化类型Q6_K。

GGML_TYPE_Q8_K

类型:枚举值

描述:表示数据类型为量化类型Q8_K。

ggml_type_traits_t

描述:包含特定数据类型的属性,如名称、块大小、类型大小、是否量化、转换函数等。

字段

类型

描述

type_name

char*

类型名称

blck_size

int

块大小

type_size

size_t

类型大小

is_quantized

bool

是否量化

to_float

ggml_to_float_t

转换为浮点数的函数

from_float

ggml_from_float_t

从浮点数转换的函数

from_float_reference

ggml_from_float_t

从浮点数转换的参考函数

vec_dot

ggml_vec_dot_t

向量点积函数

vec_dot_type

enum ggml_type

向量点积类型

ggml_internal_get_type_traits

代码语言:javascript
复制
ggml_type_traits_t ggml_internal_get_type_traits(enum ggml_type type)

描述:获取特定数据类型的属性。

参数:

  • type:数据类型枚举值

返回值:ggml_type_traits_t结构体,包含特定数据类型的属性。

vaddvq_f32

代码语言:javascript
复制
inline static float vaddvq_f32(float32x4_t v)

描述:将四个单精度浮点数向量相加。

参数:

  • v:包含四个单精度浮点数的向量

返回值:四个单精度浮点数之和。

dequantize_row_q4_0

代码语言:javascript
复制
ggml_to_float_t dequantize_row_q4_0

描述:将量化类型Q4_0转换为浮点数的函数。

参数:未提供,根据上下文推断可能需要一个量化类型的数组。

返回值:转换后的浮点数数组。

quantize_row_q4_0

代码语言:javascript
复制
quantize_row_q4_0

描述:将浮点数转换为量化类型Q4_0的函数。

参数:未提供,根据上下文推断可能需要一个浮点数数组。

返回值:转换后的量化类型Q4_0数组。

quantize_row_q4_0_reference

代码语言:javascript
复制
ggml_from_float_t quantize_row_q4_0_reference

描述:将浮点数转换为量化类型Q4_0的参考函数。

参数:未提供,根据上下文推断可能需要一个浮点数数组。

返回值:转换后的量化类型Q4_0数组。

ggml_vec_dot_q4_0_q8_0

代码语言:javascript
复制
ggml_vec_dot_t ggml_vec_dot_q4_0_q8_0

描述:量化类型Q4_0与Q8_0的向量点乘函数。

参数:未提供,根据上下文推断可能需要两个向量。

返回值:向量点乘的结果。

dequantize_row_q4_1

代码语言:javascript
复制
ggml_to_float_t dequantize_row_q4_1

描述:将量化类型Q4_1转换为浮点数的函数。

参数:未提供,根据上下文推断可能需要一个量化类型的数组。

返回值:转换后的浮点数数组。

quantize_row_q4_1

代码语言:javascript
复制
quantize_row_q4_1

描述:将浮点数转换为量化类型Q4_1的函数。

参数:未提供,根据上下文推断可能需要一个浮点数数组。

返回值:转换后的量化类型Q4_1数组。

quantize_row_q4_1_reference

代码语言:javascript
复制
ggml_from_float_t quantize_row_q4_1_reference

描述:将浮点数转换为量化类型Q4_1的参考函数。

参数:未提供,根据上下文推断可能需要一个浮点数数组。

返回值:转换后的量化类型Q4_1数组。

ggml_vec_dot_q4_1_q8_1

代码语言:javascript
复制
ggml_vec_dot_t ggml_vec_dot_q4_1_q8_1

描述:量化类型Q4_1与Q8_1的向量点乘函数。

参数:未提供,根据上下文推断可能需要两个向量。

返回值:向量点乘的结果。

dequantize_row_q5_0

代码语言:javascript
复制
ggml_to_float_t dequantize_row_q5_0

描述:将量化类型Q5_0转换为浮点数的函数。

参数:未提供,根据上下文推断可能需要一个量化类型的数组。

返回值:转换后的浮点数数组。

quantize_row_q5_0

代码语言:javascript
复制
quantize_row_q5_0

描述:将浮点数转换为量化类型Q5_0的函数。

参数:未提供,根据上下文推断可能需要一个浮点数数组。

返回值:转换后的量化类型Q5_0数组。

quantize_row_q5_0_reference

代码语言:javascript
复制
ggml_from_float_t quantize_row_q5_0_reference

描述:将浮点数转换为量化类型Q5_0的参考函数。

参数:未提供,根据上下文推断可能需要一个浮点数数组。

返回值:转换后的量化类型Q5_0数组。

ggml_vec_dot_q5_0_q8_0

代码语言:javascript
复制
ggml_vec_dot_t ggml_vec_dot_q5_0_q8_0

描述:量化类型Q5_0与Q8_0的向量点乘函数。

参数:未提供,根据上下文推断可能需要两个向量。

返回值:向量点乘的结果。

dequantize_row_q5_1

代码语言:javascript
复制
ggml_to_float_t dequantize_row_q5_1

描述:将量化类型Q5_1转换为浮点数的函数。

参数:未提供,根据上下文推断可能需要一个量化类型的数组。

返回值:转换后的浮点数数组。

quantize_row_q5_1

代码语言:javascript
复制
quantize_row_q5_1

描述:将浮点数转换为量化类型Q5_1的函数。

参数:未提供,根据上下文推断可能需要一个浮点数数组。

返回值:转换后的量化类型Q5_1数组。

quantize_row_q5_1_reference

代码语言:javascript
复制
ggml_from_float_t quantize_row_q5_1_reference

描述:将浮点数转换为量化类型Q5_1的参考函数。

参数:未提供,根据上下文推断可能需要一个浮点数数组。

返回值:转换后的量化类型Q5_1数组。

ggml_vec_dot_q5_1_q8_1

代码语言:javascript
复制
ggml_vec_dot_t ggml_vec_dot_q5_1_q8_1

描述:量化类型Q5_1与Q8_1的向量点乘函数。

参数:未提供,根据上下文推断可能需要两个向量。

返回值:向量点乘的结果。

dequantize_row_q8_0

代码语言:javascript
复制
ggml_to_float_t dequantize_row_q8_0

描述:将量化类型Q8_0转换为浮点数的函数。

参数:未提供,根据上下文推断可能需要一个量化类型的数组。

返回值:转换后的浮点数数组。

quantize_row_q8_0

代码语言:javascript
复制
quantize_row_q8_0

描述:将浮点数转换为量化类型Q8_0的函数。

参数:未提供,根据上下文推断可能需要一个浮点数数组。

返回值:转换后的量化类型Q8_0数组。

quantize_row_q8_0_reference

代码语言:javascript
复制
ggml_from_float_t quantize_row_q8_0_reference

描述:将浮点数转换为量化类型Q8_0的参考函数。

参数:未提供,根据上下文推断可能需要一个浮点数数组。

返回值:转换后的量化类型Q8_0数组。

ggml_vec_dot_q8_0_q8_0

代码语言:javascript
复制
ggml_vec_dot_t ggml_vec_dot_q8_0_q8_0

描述:量化类型Q8_0与Q8_0的向量点乘函数。

参数:未提供,根据上下文推断可能需要两个向量。

返回值:向量点乘的结果。

quantize_row_q8_1

代码语言:javascript
复制
quantize_row_q8_1

描述:将浮点数转换为量化类型Q8_1的函数。

参数:未提供,根据上下文推断可能需要一个浮点数数组。

返回值:转换后的量化类型Q8_1数组。

quantize_row_q8_1_reference

代码语言:javascript
复制
ggml_from_float_t quantize_row_q8_1_reference

描述:将浮点数转换为量化类型Q8_1的参考函数。

参数:未提供,根据上下文推断可能需要一个浮点数数组。

返回值:转换后的量化类型Q8_1数组。

dequantize_row_q2_K

代码语言:javascript
复制
ggml_to_float_t dequantize_row_q2_K

描述:将量化类型Q2_K转换为浮点数的函数。

参数:未提供,根据上下文推断可能需要一个量化类型的数组。

返回值:转换后的浮点数数组。

quantize_row_q2_K

代码语言:javascript
复制
quantize_row_q2_K

描述:将浮点数转换为量化类型Q2_K的函数。

参数:未提供,根据上下文推断可能需要一个浮点数数组。

返回值:转换后的量化类型Q2_K数组。

quantize_row_q2_K_reference

代码语言:javascript
复制
ggml_from_float_t quantize_row_q2_K_reference

描述:将浮点数转换为量化类型Q2_K的参考函数。

参数:未提供,根据上下文推断可能需要一个浮点数数组。

返回值:转换后的量化类型Q2_K数组。

ggml_vec_dot_q2_K_q8_K

代码语言:javascript
复制
ggml_vec_dot_t ggml_vec_dot_q2_K_q8_K

描述:量化类型Q2_K与Q8_K的向量点乘函数。

参数:未提供,根据上下文推断可能需要两个向量。

返回值:向量点乘的结果。

dequantize_row_q3_K

代码语言:javascript
复制
ggml_to_float_t dequantize_row_q3_K

描述:将量化类型Q3_K转换为浮点数的函数。

参数:未提供,根据上下文推断可能需要一个量化类型的数组。

返回值:转换后的浮点数数组。

quantize_row_q3_K

代码语言:javascript
复制
quantize_row_q3_K

描述:将浮点数转换为量化类型Q3_K的函数。

参数:未提供,根据上下文推断可能需要一个浮点数数组。

返回值:转换后的量化类型Q3_K数组。

quantize_row_q3_K_reference

代码语言:javascript
复制
ggml_from_float_t quantize_row_q3_K_reference

描述:将浮点数转换为量化类型Q3_K的参考函数。

参数:未提供,根据上下文推断可能需要一个浮点数数组。

返回值:转换后的量化类型Q3_K数组。

ggml_vec_dot_q3_K_q8_K

代码语言:javascript
复制
ggml_vec_dot_t ggml_vec_dot_q3_K_q8_K

描述:量化类型Q3_K与Q8_K的向量点乘函数。

参数:未提供,根据上下文推断可能需要两个向量。

返回值:向量点乘的结果。

dequantize_row_q4_K

代码语言:javascript
复制
ggml_to_float_t dequantize_row_q4_K

描述:将量化类型Q4_K转换为浮点数的函数。

参数:未提供,根据上下文推断可能需要一个量化类型的数组。

返回值:转换后的浮点数数组。

quantize_row_q4_K

代码语言:javascript
复制
quantize_row_q4_K

描述:将浮点数转换为量化类型Q4_K的函数。

参数:未提供,根据上下文推断可能需要一个浮点数数组。

返回值:转换后的量化类型Q4_K数组。

quantize_row_q4_K_reference

代码语言:javascript
复制
ggml_from_float_t quantize_row_q4_K_reference

描述:将浮点数转换为量化类型Q4_K的参考函数。

参数:未提供,根据上下文推断可能需要一个浮点数数组。

返回值:转换后的量化类型Q4_K数组。

ggml_vec_dot_q4_K_q8_K

代码语言:javascript
复制
ggml_vec_dot_t ggml_vec_dot_q4_K_q8_K

描述:量化类型Q4_K与Q8_K的向量点乘函数。

参数:未提供,根据上下文推断可能需要两个向量。

返回值:向量点乘的结果。

dequantize_row_q5_K

代码语言:javascript
复制
ggml_to_float_t dequantize_row_q5_K

描述:将量化类型Q5_K转换为浮点数的函数。

参数:未提供,根据上下文推断可能需要一个量化类型的数组。

返回值:转换后的浮点数数组。

quantize_row_q5_K

代码语言:javascript
复制
quantize_row_q5_K

描述:将浮点数转换为量化类型Q5_K的函数。

参数:未提供,根据上下文推断可能需要一个浮点数数组。

返回值:转换后的量化类型Q5_K数组。

quantize_row_q5_K_reference

代码语言:javascript
复制
ggml_from_float_t quantize_row_q5_K_reference

描述:

GGML_F32x8

类型:宏定义

描述:定义 F32 向量类型为 GGML_F32x8,即 GGML_F32x8 被定义为 GGML_F32x8。

GGML_F32x8_ZERO

类型:宏定义

描述:定义 F32 向量零初始化宏,即 GGML_F32x8_ZERO 被定义为 GGML_F32x8_ZERO。

GGML_F32x8_SET1

类型:宏定义

描述:定义 F32 向量设置单个值的宏,即 GGML_F32x8_SET1 被定义为 GGML_F32x8_SET1。

GGML_F32x8_LOAD

类型:宏定义

描述:定义 F32 向量加载数据的宏,即 GGML_F32x8_LOAD 被定义为 GGML_F32x8_LOAD。

GGML_F32x8_STORE

类型:宏定义

描述:定义 F32 向量存储数据的宏,即 GGML_F32x8_STORE 被定义为 GGML_F32x8_STORE。

GGML_F32x8_FMA

类型:宏定义

描述:定义 F32 向量 FMA(fused multiply-add)操作的宏,即 GGML_F32x8_FMA 被定义为 GGML_F32x8_FMA。

GGML_F32x8_ADD

类型:宏定义

描述:定义 F32 向量加法的宏,即 GGML_F32x8_ADD 被定义为 GGML_F32x8_ADD。

GGML_F32x8_MUL

类型:宏定义

描述:定义 F32 向量乘法的宏,即 GGML_F32x8_MUL 被定义为 GGML_F32x8_MUL。

GGML_F32x8_REDUCE

类型:宏定义

描述:定义 F32 向量规约操作的宏,即 GGML_F32x8_REDUCE 被定义为 GGML_F32x8_REDUCE。

GGML_F16_STEP

类型:宏定义

描述:定义 F16 步长为 32,即 GGML_F16_STEP 被定义为 32。

GGML_F16_EPR

类型:宏定义

描述:定义 F16 每个寄存器的元素个数为 8,即 GGML_F16_EPR 被定义为 8。

GGML_F32Cx8

类型:宏定义

描述:定义 F32Cx8 类型为 __m256,即 GGML_F32Cx8 被定义为 __m256。

GGML_F32Cx8_ZERO

类型:宏定义

描述:定义 F32Cx8 类型的零初始化宏,即 GGML_F32Cx8_ZERO 被定义为 _mm256_setzero_ps()。

GGML_F32Cx8_SET1

类型:宏定义

描述:定义 F32Cx8 类型设置单个值的宏,即 GGML_F32Cx8_SET1 被定义为 _mm256_set1_ps(x)。

GGML_F32Cx8_LOAD

类型:宏定义

描述:定义 F32Cx8 类型加载数据的宏,即 GGML_F32Cx8_LOAD 被定义为 _mm256_cvtph_ps(_mm_loadu_si128((__m128i *)(x)))。

GGML_F32Cx8_STORE

类型:宏定义

描述:定义 F32Cx8 类型存储数据的宏,即 GGML_F32Cx8_STORE 被定义为 _mm_storeu_si128((__m128i *)(x), _mm256_cvtps_ph(y, 0))。

GGML_F32Cx8_FMA

类型:宏定义

描述:定义 F32Cx8 类型 FMA 操作的宏,即 GGML_F32Cx8_FMA 被定义为 GGML_F32x8_FMA。

GGML_F32Cx8_ADD

类型:宏定义

描述:定义 F32Cx8 类型加法的宏,即 GGML_F32Cx8_ADD 被定义为 _mm256_add_ps。

GGML_F32Cx8_MUL

类型:宏定义

描述:定义 F32Cx8 类型乘法的宏,即 GGML_F32Cx8_MUL 被定义为 _mm256_mul_ps。

GGML_F32Cx8_REDUCE

类型:宏定义

描述:定义 F32Cx8 类型规约操作的宏,即 GGML_F32Cx8_REDUCE 被定义为 GGML_F32x8_REDUCE。

GGML_F16_VEC

类型:宏定义

描述:定义 F16 向量类型为 GGML_F32Cx8,即 GGML_F16_VEC 被定义为 GGML_F32Cx8。

GGML_F16_VEC_ZERO

类型:宏定义

描述:定义 F16 向量零初始化宏,即 GGML_F16_VEC_ZERO 被定义为 GGML_F32Cx8_ZERO。

GGML_F16_VEC_SET1

类型:宏定义

描述:定义 F16 向量设置单个值的宏,即 GGML_F16_VEC_SET1 被定义为 GGML_F32Cx8_SET1。

GGML_F16_VEC_LOAD

类型:宏定义

描述:定义 F16 向量加载数据的宏,即 GGML_F16_VEC_LOAD 被定义为 GGML_F32Cx8_LOAD§。

GGML_F16_VEC_STORE

类型:宏定义

描述:定义 F16 向量存储数据的宏,即 GGML_F16_VEC_STORE 被定义为 GGML_F32Cx8_STORE(p, r[i])。

GGML_F16_VEC_FMA

类型:宏定义

描述:定义 F16 向量 FMA 操作的宏,即 GGML_F16_VEC_FMA 被定义为 GGML_F32Cx8_FMA。

GGML_F16_VEC_ADD

类型:宏定义

描述:定义 F16 向量加法为 F32x8 加法,即 GGML_F16_VEC_ADD 被定义为 GGML_F32Cx8_ADD。

GGML_F16_VEC_MUL

类型:宏定义

描述:定义 F16 向量乘法为 F32x8 乘法,即 GGML_F16_VEC_MUL 被定义为 GGML_F32Cx8_MUL。

GGML_F16_VEC_REDUCE

类型:宏定义

描述:定义 F16 向量归约为 F32x8 归约,即 GGML_F16_VEC_REDUCE 被定义为 GGML_F32Cx8_REDUCE。

无结构体定义。

无公开函数定义。

以上是对给定代码段中的常量、结构体、公开函数的提取和总结。由于代码中主要包含的是宏定义,因此没有结构体和公开函数的定义。

GGML_F16_VEC_MUL

类型:宏定义

描述:定义 GGML_F16_VEC_MUL 为 GGML_F32Cx4_MUL,用于半精度浮点数向量乘法。

GGML_F16_VEC_REDUCE

类型:宏定义

描述:定义 GGML_F16_VEC_REDUCE 为 GGML_F32Cx4_REDUCE,用于半精度浮点数向量缩减操作。

GGML_F32_ARR

类型:宏定义

描述:在使用 SIMD 指令集时,定义每个步骤要使用的寄存器数量。

GGML_F16_ARR

类型:宏定义

描述:在使用 SIMD 指令集时,定义每个步骤要使用的寄存器数量。

无结构体定义。

ggml_vec_set_i8

代码语言:javascript
复制
void ggml_vec_set_i8(const int n, int8_t * x, const int8_t v)

描述:设置 int8_t 类型数组的值为 v。

参数:

  • n:数组大小。
  • x:目标数组。
  • v:要设置的值。

ggml_vec_set_i16

代码语言:javascript
复制
void ggml_vec_set_i16(const int n, int16_t * x, const int16_t v)

描述:设置 int16_t 类型数组的值为 v。

参数:

  • n:数组大小。
  • x:目标数组。
  • v:要设置的值。

ggml_vec_set_i32

代码语言:javascript
复制
void ggml_vec_set_i32(const int n, int32_t * x, const int32_t v)

描述:设置 int32_t 类型数组的值为 v。

参数:

  • n:数组大小。
  • x:目标数组。
  • v:要设置的值。

ggml_vec_set_f16

代码语言:javascript
复制
void ggml_vec_set_f16(const int n, ggml_fp16_t * x, const int32_t v)

描述:设置 ggml_fp16_t 类型数组的值为 v。

参数:

  • n:数组大小。
  • x:目标数组。
  • v:要设置的值。

ggml_vec_add_f32

代码语言:javascript
复制
void ggml_vec_add_f32(const int n, float * z, const float * x, const float * y)

描述:将两个 float 类型数组相加,结果存入第三个数组。

参数:

  • n:数组大小。
  • z:结果数组。
  • x:第一个数组。
  • y:第二个数组。

ggml_vec_add1_f32

代码语言:javascript
复制
void ggml_vec_add1_f32(const int n, float * z, const float * x, const float v)

描述:将一个 float 类型数组和一个常量值相加,结果存入另一个数组。

参数:

  • n:数组大小。
  • z:结果数组。
  • x:数组。
  • v:常量值。

ggml_vec_acc_f32

代码语言:javascript
复制
void ggml_vec_acc_f32(const int n, float * y, const float * x)

描述:将一个 float 类型数组和另一个数组相加,结果存入第一个数组。

参数:

  • n:数组大小。
  • y:目标数组。
  • x:源数组。

ggml_vec_acc1_f32

代码语言:javascript
复制
void ggml_vec_acc1_f32(const int n, float * y, const float v)

描述:将一个 float 类型数组和一个常量值相加,结果存入第一个数组。

参数:

  • n:数组大小。
  • y:目标数组。
  • v:常量值。

ggml_vec_sub_f32

代码语言:javascript
复制
void ggml_vec_sub_f32(const int n, float * z, const float * x, const float * y)

描述:将两个 float 类型数组相减,结果存入第三个数组。

参数:

  • n:数组大小。
  • z:结果数组。
  • x:第一个数组。
  • y:第二个数组。

ggml_vec_set_f32

代码语言:javascript
复制
void ggml_vec_set_f32(const int n, float * x, const float v)

描述:设置 float 类型数组的值为 v。

参数:

  • n:数组大小。
  • x:目标数组。
  • v:要设置的值。

ggml_vec_cpy_f32

代码语言:javascript
复制
void ggml_vec_cpy_f32(const int n, float * y, const float * x)

描述:复制一个 float 类型数组的值到另一个数组。

参数:

  • n:数组大小。
  • y:目标数组。
  • x:源数组。

ggml_vec_neg_f32

代码语言:javascript
复制
void ggml_vec_neg_f32(const int n, float * y, const float * x)

描述:将一个 float 类型数组的值取反,结果存入另一个数组。

参数:

  • n:数组大小。
  • y:目标数组。
  • x:源数组。

ggml_vec_mul_f32

代码语言:javascript
复制
void ggml_vec_mul_f32(const int n, float * z, const float * x, const float * y)

描述:用于计算两个 float 数组的元素对应位置相乘,结果存入第三个数组。

参数:

  • n:数组大小。
  • z:结果数组。
  • x:第一个数组。
  • y:第二个数组。

ggml_vec_div_f32

代码语言:javascript
复制
void ggml_vec_div_f32(const int n, float * z, const float * x, const float * y)

描述:用于计算两个 float 数组的元素对应位置相除,结果存入第三个数组。

参数:

  • n:数组大小。
  • z:结果数组。
  • x:第一个数组。
  • y:第二个数组。

ggml_vec_dot_f32

代码语言:javascript
复制
void ggml_vec_dot_f32(const int n, float * restrict s, const float * restrict x, const float * restrict y)

描述:用于计算两个 float 数组的点积。

参数:

  • n:数组大小。
  • s:存储点积结果的地址。
  • x:第一个数组。
  • y:第二个数组。

ggml_vec_dot_f16

代码语言:javascript
复制
void ggml_vec_dot_f16(const int n, float * restrict s, ggml_fp16_t * restrict x, ggml_fp16_t * restrict y)

描述:用于计算两个 ggml_fp16_t 数组的点积。

参数:

  • n:数组大小。
  • s:存储点积结果的地址。
  • x:第一个数组。
  • y:第二个数组。

ggml_vec_dot_f16_unroll

代码语言:javascript
复制
void ggml_vec_dot_f16_unroll(const int n, const int xs, float * restrict s, void * restrict xv, ggml_fp16_t * restrict y)

描述:一次计算 GGML_VEC_DOT_UNROLL 个点积。

参数:

  • n:数组大小。
  • xs:x 的行跨度(以字节为单位)。
  • s:存储点积结果的地址。
  • xv:x 的指针。
  • y:第二个数组。

ggml_vec_mad_f32

代码语言:javascript
复制
void ggml_vec_mad_f32(const int n, float * restrict y, const float * restrict x, const float v)

描述:计算 GGML_VEC_MAD_F32。

参数:

  • n:数组大小。
  • y:目标数组。
  • x:源数组。
  • v:常量值。

ggml_vec_mad_f32_unroll

代码语言:javascript
复制
void ggml_vec_mad_f32_unroll(const int n, const int xs, const int vs, float * restrict y, const float * restrict xv, const float * restrict vv)

描述:对于给定的 x 和 v,xs 和 vs 分别是它们的字节步长。

参数:

  • n:数组大小。
  • xs:x 的字节步长。
  • vs:v 的字节步长。
  • y:目标数组。
  • xv:x 的指针。
  • vv:v 的指针。

ggml_vec_scale_f32

代码语言:javascript
复制
void ggml_vec_scale_f32(const int n, float * y, const float v)

描述:对给定的 y 和 v,将 y 中的每个元素乘以 v。

参数:

  • n:数组大小。
  • y:目标数组。
  • v:常量值。

ggml_vec_norm_f32

代码语言:javascript
复制
void ggml_vec_norm_f32(const int n, float * s, const float * x)

描述:计算向量的 L2 范数。

参数:

  • n:数组大小。
  • s:存储范数结果的地址。
  • x:源数组。

ggml_vec_sqr_f32

代码语言:javascript
复制
void ggml_vec_sqr_f32(const int n, float * y, const float * x)

描述:计算向量的每个元素的平方。

参数:

  • n:数组大小。
  • y:目标数组。
  • x:源数组。

ggml_vec_sqrt_f32

代码语言:javascript
复制
void ggml_vec_sqrt_f32(const int n, float * y, const float * x)

描述:计算向量的每个元素的平方根。

参数:

  • n:数组大小。
  • y:目标数组。
  • x:源数组。

ggml_vec_log_f32

代码语言:javascript
复制
void ggml_vec_log_f32(const int n, float * y, const float * x)

描述:计算向量的每个元素的自然对数。

参数:

  • n:数组大小。
  • y:目标数组。
  • x:源数组。

ggml_vec_abs_f32

代码语言:javascript
复制
void ggml_vec_abs_f32(const int n, float * y, const float * x)

描述:计算向量的每个元素的绝对值。

参数:

  • n:数组大小。
  • y:目标数组。
  • x:源数组。

ggml_vec_sgn_f32

代码语言:javascript
复制
void ggml_vec_sgn_f32(const int n, float * y, const float * x)

描述:计算向量的每个元素的符号函数。

参数:

  • n:数组大小。
  • y:目标数组。
  • x:源数组。

ggml_vec_step_f32

代码语言:javascript
复制
void ggml_vec_step_f32(const int n, float * y, const float * x)

描述:计算向量的每个元素的阶跃函数。

参数:

  • n:数组大小。
  • y:目标数组。
  • x:源数组。

ggml_vec_tanh_f32

代码语言:javascript
复制
void ggml_vec_tanh_f32(const int n, float * y, const float * x)

描述:计算向量的每个元素的双曲正切函数。

参数:

  • n:数组大小。
  • y:目标数组。
  • x:源数组。

ggml_vec_elu_f32

代码语言:javascript
复制
void ggml_vec_elu_f32(const int n, float * y, const float * x)

描述:计算向量的每个元素的 ELU 函数。

参数:

  • n:数组大小。
  • y:目标数组。
  • x:源数组。

ggml_vec_relu_f32

代码语言:javascript
复制
void ggml_vec_relu_f32(const int n, float * y, const float * x)

描述:计算向量的每个元素的 ReLU 函数。

参数:

  • n:数组大小。
  • y:目标数组。
  • x:源数组。

ggml_vec_leaky_relu_f32

代码语言:javascript
复制
void ggml_vec_leaky_relu_f32(const int n, float * y, const float * x, const float ns)

描述:计算向量的每个元素的 Leaky ReLU 函数。

参数:

  • n:数组大小。
  • y:目标数组。
  • x:源数组。
  • ns:Leaky ReLU 的斜率。

ggml_gelu_f32

代码语言:javascript
复制
float ggml_gelu_f32(float x)

描述:计算 GELU 函数。

参数:

  • x:输入值。

返回值:GELU 函数的计算结果。

ggml_vec_gelu_f16

代码语言:javascript
复制
void ggml_vec_gelu_f16(const int n, ggml_fp16_t * y, const ggml_fp16_t * x)

描述:对输入的半精度浮点数数组进行 GELU 激活函数操作。

参数:

  • n:数组大小。
  • y:目标数组。
  • x:源数组。

ggml_vec_gelu_f32

代码语言:javascript
复制
void ggml_vec_gelu_f32(const int n, float * y, const float * x)

描述:对输入的单精度浮点数数组进行 GELU 激活函数操作。

参数:

  • n:数组大小。
  • y:目标数组。
  • x:源数组。

ggml_gelu_quick_f32

代码语言:javascript
复制
float ggml_gelu_quick_f32(float x)

描述:计算快速 GELU 激活函数。

参数:

  • x:输入值。

返回值:快速 GELU 函数的计算结果。

ggml_vec_gelu_quick_f32

代码语言:javascript
复制
void ggml_vec_gelu_quick_f32(const int n, float * y, const float * x)

描述:对输入的单精度浮点数数组进行快速 GELU 激活函数操作。

参数:

  • n:数组大小。
  • y:目标数组。
  • x:源数组。

ggml_silu_f32

代码语言:javascript
复制
float ggml_silu_f32(float x)

描述:计算 Sigmoid Linear Unit (SiLU) 函数。

参数:

  • x:输入值。

返回值:SiLU 函数的计算结果。

ggml_vec_silu_f32

代码语言:javascript
复制
void ggml_vec_silu_f32(const int n, float * y, const float * x)

描述:对输入的单精度浮点数数组进行 SiLU 激活函数操作。

参数:

  • n:数组大小。
  • `

GGML_OP_COUNT

类型:整数

描述:表示操作的总数,用于断言检查操作数组的大小是否正确。

GGML_OP_POOL_COUNT

类型:整数

描述:表示操作池的总数,用于断言检查操作池数组的大小是否正确。

GGML_UNARY_OP_COUNT

类型:整数

描述:表示一元操作的总数,用于断言检查一元操作数组的大小是否正确。

GGML_MEM_ALIGN

类型:整数

描述:表示内存对齐的大小,用于断言检查结构体大小是否为内存对齐的倍数。

GGML_MAX_CONTEXTS

类型:整数

描述:表示上下文容器的最大数量。

GGML_NUMA_MAX_NODES

类型:整数

描述:表示NUMA节点的最大数量。

GGML_NUMA_MAX_CPUS

类型:整数

描述:表示NUMA节点上CPU的最大数量。

ggml_object

描述:表示ggml库中的一个对象,包含类型、偏移量、大小和下一个对象的地址等信息。

字段

类型

描述

type

int

对象类型

offs

size_t

偏移量

size

size_t

大小

next

struct ggml_object *

下一个对象的地址

ggml_tensor

描述:表示ggml库中的一个张量,包含元素数量、块大小、类型等信息。

字段

类型

描述

ne

int64_t[GGML_MAX_DIMS]

元素数量

nb

int64_t[GGML_MAX_DIMS]

块大小

type

enum ggml_type

类型

ggml_context

描述:表示ggml库的上下文,包含内存大小、缓冲区、对象链表等信息。

字段

类型

描述

mem_size

size_t

内存大小

mem_buffer

void *

内存缓冲区

mem_buffer_owned

bool

是否拥有内存缓冲区

no_alloc

bool

是否禁用分配

no_alloc_save

bool

保存禁用分配状态

n_objects

int

对象数量

objects_begin

struct ggml_object *

对象链表开始

objects_end

struct ggml_object *

对象链表结束

scratch

struct ggml_scratch

临时空间

scratch_save

struct ggml_scratch

保存的临时空间

ggml_context_container

描述:表示ggml库的上下文容器,包含是否使用和上下文信息。

字段

类型

描述

used

bool

是否使用

context

struct ggml_context

上下文信息

ggml_numa_node

描述:表示NUMA节点,包含该节点上的硬件线程信息。

字段

类型

描述

cpus

uint32_t[GGML_NUMA_MAX_CPUS]

硬件线程数组

n_cpus

uint32_t

硬件线程数量

ggml_numa_nodes

描述:表示NUMA节点集合,包含节点数组和总CPU数量。

字段

类型

描述

nodes

struct ggml_numa_node[GGML_NUMA_MAX_NODES]

NUMA节点数组

n_nodes

uint32_t

节点数量

total_cpus

uint32_t

总CPU数量

ggml_state

描述:表示ggml库的全局状态,包含上下文容器数组和NUMA节点信息。

字段

类型

描述

contexts

struct ggml_context_container[GGML_MAX_CONTEXTS]

上下文容器数组

numa

struct ggml_numa_nodes

NUMA节点信息

ggml_vec_sum_f32

代码语言:javascript
复制
void ggml_vec_sum_f32(const int n, float * s, const float * x);

描述:计算float类型数组x中所有元素的和,并将结果存储到s指向的地址中。

参数:

  • n:数组x的元素数量。
  • s:指向存储结果的地址。
  • x:输入数组。

返回值:无。

ggml_vec_sum_f32_ggf

代码语言:javascript
复制
inline static void ggml_vec_sum_f32_ggf(const int n, ggml_float * s, const float * x);

描述:计算float类型数组x中所有元素的和,并将结果存储到s指向的地址中。

参数:

  • n:数组x的元素数量。
  • s:指向存储结果的地址。
  • x:输入数组。

返回值:无。

ggml_vec_sum_f16_ggf

代码语言:javascript
复制
inline static void ggml_vec_sum_f16_ggf(const int n, float * s, const ggml_fp16_t * x);

描述:计算fp16类型数组x中所有元素的和,并将结果存储到s指向的地址中。

参数:

  • n:数组x的元素数量。
  • s:指向存储结果的地址。
  • x:输入数组。

返回值:无。

ggml_vec_max_f32

代码语言:javascript
复制
inline static void ggml_vec_max_f32(const int n, float * s, const float * x);

描述:计算float类型数组x中的最大值,并将结果存储到s指向的地址中。

参数:

  • n:数组x的元素数量。
  • s:指向存储结果的地址。
  • x:输入数组。

返回值:无。

ggml_vec_norm_inv_f32

代码语言:javascript
复制
inline static void ggml_vec_norm_inv_f32(const int n, float * s, const float * x);

描述:计算float类型数组x的逆范数,并将结果存储到s指向的地址中。

参数:

  • n:数组x的元素数量。
  • s:指向存储结果的地址。
  • x:输入数组。

返回值:无。

ggml_vec_argmax_f32

代码语言:javascript
复制
inline static void ggml_vec_argmax_f32(const int n, int * s, const float * x);

描述:计算float类型数组x中最大值的索引,并将结果存储到s指向的地址中。

参数:

  • n:数组x的元素数量。
  • s:指向存储结果的地址。
  • x:输入数组。

返回值:无。

ggml_setup_op_has_task_pass

代码语言:javascript
复制
static void ggml_setup_op_has_task_pass(void);

描述:设置操作是否需要进行初始化或结束处理的任务通行证。

参数:无。

返回值:无。

ggml_numa_init

代码语言:javascript
复制
void ggml_numa_init(void);

描述:初始化NUMA支持。

参数:无。

返回值:无。

ggml_is_numa

代码语言:javascript
复制
bool ggml_is_numa(void);

描述:检查是否支持NUMA。

参数:无。

返回值:是否支持NUMA。

ggml_print_object

代码语言:javascript
复制
void ggml_print_object(const struct ggml_object * obj);

描述:打印ggml_object的信息。

参数:

  • obj:要打印的ggml_object对象。

返回值:无。

ggml_print_objects

代码语言:javascript
复制
void ggml_print_objects(const struct ggml_context * ctx);

描述:打印上下文中的所有对象信息。

参数:

  • ctx:上下文指针。

返回值:无。

ggml_nelements

代码语言:javascript
复制
int64_t ggml_nelements(const struct ggml_tensor * tensor);

描述:返回张量中元素的总数。

参数:

  • tensor:张量指针。

返回值:元素总数。

ggml_nrows

代码语言:javascript
复制
int64_t ggml_nrows(const struct ggml_tensor * tensor);

描述:返回张量中的行数。

参数:

  • tensor:张量指针。

返回值:行数。

ggml_nbytes

代码语言:javascript
复制
size_t ggml_nbytes(const struct ggml_tensor * tensor);

描述:返回张量占用的字节数。

参数:

  • tensor:张量指针。

返回值:占用的字节数。

ggml_nbytes_pad

代码语言:javascript
复制
size_t ggml_nbytes_pad(const struct ggml_tensor * tensor);

描述:返回张量占用的字节数,按照内存对齐方式进行填充。

参数:

  • tensor:张量指针。

返回值:填充后的字节数。

ggml_blck_size

代码语言:javascript
复制
int ggml_blck_size(enum ggml_type type);

描述:返回给定类型的块大小。

参数:

  • type:类型枚举。

返回值:块大小。

ggml_type_size

代码语言:javascript
复制
size_t ggml_type_size(enum ggml_type type);

描述:返回给定类型的大小。

参数:

  • type:类型枚举。

返回值:类型大小。

ggml_row_size

代码语言:javascript
复制
size_t ggml_row_size(enum ggml_type type, int64_t ne);

描述:计算给定类型和元素数量的行大小。

参数:

  • type:类型枚举。
  • ne:元素数量。

返回值:行大小。

ggml_type_sizef

代码语言:javascript
复制
double ggml_type_sizef(enum ggml_type type);

描述:返回给定类型的大小(浮点数形式)。

参数:

  • type:类型枚举。

返回值:类型大小(浮点数)。

ggml_type_name

代码语言:javascript
复制
const char * ggml_type_name(enum ggml_type type);

描述:返回给定类型的名称。

参数:

  • type:类型枚举。

返回值:类型名称。

ggml_is_quantized

代码语言:javascript
复制
bool ggml_is_quantized(enum ggml_type type);

描述:返回给定类型是否是量化的。

参数:

  • type:类型枚举。

返回值:是否量化。

ggml_op_name

代码语言:javascript
复制
const char * ggml_op_name(enum ggml_op op);

描述:返回给定操作的名称。

参数:

  • op:操作枚举。

返回值:操作名称。

ggml_op_symbol

代码语言:javascript
复制
const char * ggml_op_symbol(enum ggml_op op);

描述:返回给定操作的符号。

参数:

  • op:操作枚举。

返回值:操作符号。

ggml_unary_op_name

代码语言:javascript
复制
const char * ggml_unary_op_name(enum ggml_unary_op op);

描述:返回给定一元操作的名称。

参数:

  • op:一元操作枚举。

返回值:一元操作名称。

ggml_op_desc

代码语言:javascript
复制
const char * ggml_op_desc(const struct ggml_tensor * t);

描述:返回给定张量的操作描述。

参数:

  • t:张量指针。

返回值:操作描述。

GGML_MAX_DIMS

类型:整数

描述:表示张量的最大维度数。

GGML_MEM_ALIGN

类型:整数

描述:内存对齐的大小。

GGML_OBJECT_SIZE

类型:整数

描述:表示对象结构体的大小。

GGML_TENSOR_SIZE

类型:整数

描述:表示张量结构体的大小。

struct ggml_tensor

描述:表示一个张量的结构体。

字段

类型

描述

type

enum ggml_type

张量的数据类型

ne

int64_t[GGML_MAX_DIMS]

张量的维度大小

nb

size_t[GGML_MAX_DIMS]

张量的块大小

op

enum ggml_op

张量的操作类型

uop

enum ggml_unary_op

张量的一元操作类型

view_src

struct ggml_tensor*

视图源张量

view_offs

size_t

视图偏移量

struct ggml_context

描述:表示一个ggml上下文的结构体。

字段

类型

描述

mem_size

size_t

内存大小

mem_buffer

void*

内存缓冲区

mem_buffer_owned

bool

是否拥有内存缓冲区

no_alloc

bool

是否禁止分配内存

n_objects

int

对象数量

objects_begin

struct ggml_object*

对象起始指针

objects_end

struct ggml_object*

对象结束指针

scratch

struct ggml_scratch

临时缓冲区

scratch_save

struct ggml_scratch

保存的临时缓冲区

ggml_unary_op_name

代码语言:javascript
复制
const char * ggml_unary_op_name(enum ggml_unary_op uop);

描述:返回一元操作的名称。

ggml_op_name

代码语言:javascript
复制
const char * ggml_op_name(enum ggml_op op);

描述:返回操作的名称。

ggml_element_size

代码语言:javascript
复制
size_t ggml_element_size(const struct ggml_tensor * tensor);

描述:返回给定张量的元素大小。

ggml_is_scalar

代码语言:javascript
复制
bool ggml_is_scalar(const struct ggml_tensor * tensor);

描述:返回给定张量是否是标量。

ggml_is_vector

代码语言:javascript
复制
bool ggml_is_vector(const struct ggml_tensor * tensor);

描述:返回给定张量是否是向量。

ggml_is_matrix

代码语言:javascript
复制
bool ggml_is_matrix(const struct ggml_tensor * tensor);

描述:返回给定张量是否是矩阵。

ggml_is_3d

代码语言:javascript
复制
bool ggml_is_3d(const struct ggml_tensor * tensor);

描述:返回给定张量是否是3维的。

ggml_n_dims

代码语言:javascript
复制
int ggml_n_dims(const struct ggml_tensor * tensor);

描述:返回给定张量的维度数量。

ggml_can_mul_mat

代码语言:javascript
复制
static inline bool ggml_can_mul_mat(const struct ggml_tensor * t0, const struct ggml_tensor * t1);

描述:检查两个张量是否可以进行矩阵相乘。

ggml_can_out_prod

代码语言:javascript
复制
static inline bool ggml_can_out_prod(const struct ggml_tensor * t0, const struct ggml_tensor * t1);

描述:检查两个张量是否可以进行外积运算。

ggml_ftype_to_ggml_type

代码语言:javascript
复制
enum ggml_type ggml_ftype_to_ggml_type(enum ggml_ftype ftype);

描述:将ggml_ftype转换为ggml_type。

ggml_tensor_overhead

代码语言:javascript
复制
size_t ggml_tensor_overhead(void);

描述:返回GGML_OBJECT_SIZE和GGML_TENSOR_SIZE的总和,表示张量的开销。

ggml_is_transposed

代码语言:javascript
复制
bool ggml_is_transposed(const struct ggml_tensor * tensor);

描述:检查张量是否被转置。

ggml_is_contiguous

代码语言:javascript
复制
bool ggml_is_contiguous(const struct ggml_tensor * tensor);

描述:检查张量是否是连续的。

ggml_is_contiguous_except_dim_1

代码语言:javascript
复制
static inline bool ggml_is_contiguous_except_dim_1(const struct ggml_tensor * tensor);

描述:检查张量是否在第一维度以外是连续的。

ggml_is_permuted

代码语言:javascript
复制
bool ggml_is_permuted(const struct ggml_tensor * tensor);

描述:检查张量是否被置换。

ggml_is_padded_1d

代码语言:javascript
复制
static inline bool ggml_is_padded_1d(const struct ggml_tensor * tensor);

描述:检查张量是否在第一维度以外是填充的。

ggml_are_same_shape

代码语言:javascript
复制
bool ggml_are_same_shape(const struct ggml_tensor * t0, const struct ggml_tensor * t1);

描述:检查两个张量是否具有相同的形状。

ggml_can_repeat

代码语言:javascript
复制
static inline bool ggml_can_repeat(const struct ggml_tensor * t0, const struct ggml_tensor * t1);

描述:检查t1是否可以表示为t0的重复。

ggml_can_repeat_rows

代码语言:javascript
复制
static inline bool ggml_can_repeat_rows(const struct ggml_tensor * t0, const struct ggml_tensor * t1);

描述:检查t0和t1的第一个维度是否相等,并检查其余维度是否可以整除。

ggml_up32

代码语言:javascript
复制
static inline int ggml_up32(int n);

描述:将输入的整数n向上舍入到最接近的32的倍数。

ggml_up

代码语言:javascript
复制
static inline int ggml_up(int n, int m);

描述:将输入的整数n向上舍入到最接近的m的倍数。

ggml_assert_aligned

代码语言:javascript
复制
##define ggml_assert_aligned(ptr) \
    GGML_ASSERT(((uintptr_t) (ptr))%GGML_MEM_ALIGN == 0)

描述:断言指针对齐到GGML_MEM_ALIGN。

ggml_init

代码语言:javascript
复制
struct ggml_context * ggml_init(struct ggml_init_params params);

描述:初始化ggml_context结构体的函数。

ggml_free

代码语言:javascript
复制
void ggml_free(struct ggml_context * ctx);

描述:释放ggml_context结构体的函数。

ggml_used_mem

代码语言:javascript
复制
size_t ggml_used_mem(const struct ggml_context * ctx);

描述:返回已使用的内存大小。

ggml_set_scratch

代码语言:javascript
复制
size_t ggml_set_scratch(struct ggml_context * ctx, struct ggml_scratch scratch);

描述:设置临时缓冲区,返回之前的临时缓冲区的偏移量。

ggml_get_no_alloc

代码语言:javascript
复制
bool ggml_get_no_alloc(struct ggml_context * ctx);

描述:获取是否禁止分配内存。

ggml_set_no_alloc

代码语言:javascript
复制
void ggml_set_no_alloc(struct ggml_context * ctx, bool no_alloc);

描述:设置是否禁止分配内存。

ggml_get_mem_buffer

代码语言:javascript
复制
void * ggml_get_mem_buffer(const struct ggml_context * ctx);

描述:获取内存缓冲区。

ggml_get_mem_size

代码语言:javascript
复制
size_t ggml_get_mem_size(const struct ggml_context * ctx);

描述:获取内存大小。

ggml_get_max_tensor_size

代码语言:javascript
复制
size_t ggml_get_max_tensor_size(const struct ggml_context * ctx);

描述:获取最大张量大小。

ggml_scratch_save

代码语言:javascript
复制
static void ggml_scratch_save(struct ggml_context * ctx);

描述:保存临时缓冲区。

ggml_scratch_load

代码语言:javascript
复制
static void ggml_scratch_load(struct ggml_context * ctx);

描述:加载临时缓冲区。

ggml_new_object

代码语言:javascript
复制
static struct ggml_object * ggml_new_object(struct ggml_context * ctx, enum ggml_object_type type, size_t size);

描述:创建新对象,始终将对象插入上下文内存池的末尾。

ggml_new_tensor_impl

代码语言:javascript
复制
static struct ggml_tensor * ggml_new_tensor_impl(
    struct ggml_context * ctx,
    enum   ggml_type      type,
    int                   n_dims,
    const int64_t       * ne,
    struct ggml_tensor  * view_src,
    size_t                view_offs);

描述:创建新的张量对象。

GGML_MAX_DIMS

类型:整数常量

描述:表示张量的最大维度数。

GGML_MAX_OP_PARAMS

类型:整数常量

描述:表示张量操作参数的最大大小。

struct ggml_tensor

描述:表示一个张量,包含张量的类型、后端、缓冲区、维度大小、块大小、操作、操作参数、是否为参数、梯度、源张量、性能统计、视图源和偏移、数据、名称、额外信息和填充。

字段

类型

描述

type

enum ggml_type

张量的数据类型

backend

enum ggml_backend

张量的后端类型

buffer

void *

张量的缓冲区指针

ne

int64_t[]

张量的维度大小数组

nb

size_t[]

张量的块大小数组

op

enum ggml_op

张量的操作类型

op_params

void *

张量的操作参数指针

is_param

bool

是否为参数张量

grad

struct ggml_tensor *

梯度张量

src

struct ggml_tensor *[]

源张量数组

perf_runs

uint64_t

性能统计运行次数

perf_cycles

uint64_t

性能统计周期数

perf_time_us

uint64_t

性能统计时间(微秒)

view_src

struct ggml_tensor *

视图源张量

view_offs

size_t

视图偏移量

data

void *

数据指针

name

char[]

名称

extra

void *

额外信息指针

padding

size_t[]

填充数组

struct ggml_tensor * ggml_new_tensor(struct ggml_context * ctx, enum ggml_type type, int n_dims, const int64_t * ne)

代码语言:javascript
复制
{签名}

描述:创建一个新的张量,可以指定维度和类型。

参数:

  • ctx:ggml上下文指针。
  • type:张量的数据类型。
  • n_dims:张量的维度数。
  • ne:指向张量维度大小数组的指针。

返回值:新创建的张量指针。

struct ggml_tensor * ggml_new_tensor_1d(struct ggml_context * ctx, enum ggml_type type, int64_t ne0)

代码语言:javascript
复制
{签名}

描述:创建一个一维张量。

参数:

  • ctx:ggml上下文指针。
  • type:张量的数据类型。
  • ne0:一维张量的维度大小。

返回值:新创建的一维张量指针。

struct ggml_tensor * ggml_new_tensor_2d(struct ggml_context * ctx, enum ggml_type type, int64_t ne0, int64_t ne1)

代码语言:javascript
复制
{签名}

描述:创建一个二维张量。

参数:

  • ctx:ggml上下文指针。
  • type:张量的数据类型。
  • ne0:二维张量的第一个维度大小。
  • ne1:二维张量的第二个维度大小。

返回值:新创建的二维张量指针。

struct ggml_tensor * ggml_new_tensor_3d(struct ggml_context * ctx, enum ggml_type type, int64_t ne0, int64_t ne1, int64_t ne2)

代码语言:javascript
复制
{签名}

描述:创建一个三维张量。

参数:

  • ctx:ggml上下文指针。
  • type:张量的数据类型。
  • ne0:三维张量的第一个维度大小。
  • ne1:三维张量的第二个维度大小。
  • ne2:三维张量的第三个维度大小。

返回值:新创建的三维张量指针。

struct ggml_tensor * ggml_new_tensor_4d(struct ggml_context * ctx, enum ggml_type type, int64_t ne0, int64_t ne1, int64_t ne2, int64_t ne3)

代码语言:javascript
复制
{签名}

描述:创建一个四维张量。

参数:

  • ctx:ggml上下文指针。
  • type:张量的数据类型。
  • ne0:四维张量的第一个维度大小。
  • ne1:四维张量的第二个维度大小。
  • ne2:四维张量的第三个维度大小。
  • ne3:四维张量的第四个维度大小。

返回值:新创建的四维张量指针。

struct ggml_tensor * ggml_new_i32(struct ggml_context * ctx, int32_t value)

代码语言:javascript
复制
{签名}

描述:创建一个包含单个 int32 值的张量。

参数:

  • ctx:ggml上下文指针。
  • value:要设置的 int32 值。

返回值:新创建的包含单个 int32 值的张量指针。

struct ggml_tensor * ggml_new_f32(struct ggml_context * ctx, float value)

代码语言:javascript
复制
{签名}

描述:创建一个包含单个 float 值的张量。

参数:

  • ctx:ggml上下文指针。
  • value:要设置的 float 值。

返回值:新创建的包含单个 float 值的张量指针。

struct ggml_tensor * ggml_dup_tensor(struct ggml_context * ctx, const struct ggml_tensor * src)

代码语言:javascript
复制
{签名}

描述:复制给定张量的内容,创建一个新的张量。

参数:

  • ctx:ggml上下文指针。
  • src:要复制的源张量。

返回值:新创建的复制源张量内容的张量指针。

static void ggml_set_op_params(struct ggml_tensor * tensor, const void * params, size_t params_size)

代码语言:javascript
复制
{签名}

描述:设置张量的操作参数,包括参数指针和参数大小。

参数:

  • tensor:要设置操作参数的张量。
  • params:指向操作参数的指针。
  • params_size:操作参数的大小。

返回值:无。

static int32_t ggml_get_op_params_i32(const struct ggml_tensor * tensor, uint32_t i)

代码语言:javascript
复制
{签名}

描述:获取张量操作参数中的第i个32位整数。

参数:

  • tensor:包含操作参数的张量。
  • i:要获取的参数索引。

返回值:第i个32位整数的值。

static void ggml_set_op_params_i32(struct ggml_tensor * tensor, uint32_t i, int32_t value)

代码语言:javascript
复制
{签名}

描述:设置张量操作参数中的第i个32位整数为给定的值。

参数:

  • tensor:要设置操作参数的张量。
  • i:要设置的参数索引。
  • value:要设置的32位整数值。

返回值:无。

struct ggml_tensor * ggml_set_zero(struct ggml_tensor * tensor)

代码语言:javascript
复制
{签名}

描述:将张量的数据内容全部设置为0。

参数:

  • tensor:要设置为0的张量。

返回值:设置为0后的张量指针。

struct ggml_tensor * ggml_set_i32(struct ggml_tensor * tensor, int32_t value)

代码语言:javascript
复制
{签名}

描述:将张量的数据内容全部设置为给定的32位整数值。

参数:

  • tensor:要设置值的张量。
  • value:要设置的32位整数值。

返回值:设置值后的张量指针。

struct ggml_tensor * ggml_set_f32(struct ggml_tensor * tensor, float value)

代码语言:javascript
复制
{签名}

描述:将张量的数据内容全部设置为给定的float值。

参数:

  • tensor:要设置值的张量。
  • value:要设置的float值。

返回值:设置值后的张量指针。

void ggml_unravel_index(const struct ggml_tensor * tensor, int64_t i, int64_t * i0, int64_t * i1, int64_t * i2, int64_t * i3)

代码语言:javascript
复制
{签名}

描述:根据索引i解析出tensor的多维索引i0, i1, i2, i3。

参数:

  • tensor:要解析索引的张量。
  • i:一维索引。
  • i0, i1, i2, i3:指向多维索引的指针。

返回值:无。

int32_t ggml_get_i32_1d(const struct ggml_tensor * tensor, int i)

代码语言:javascript
复制
{签名}

描述:获取一维张量中索引i处的32位整数值。

参数:

  • tensor:要获取值的一维张量。
  • i:一维索引。

返回值:索引i处的32位整数值。

void ggml_set_i32_1d(const struct ggml_tensor * tensor, int i, int32_t value)

代码语言:javascript
复制
{签名}

描述:设置一维张量中索引i处的32位整数值。

参数:

  • tensor:要设置值的一维张量。
  • i:一维索引。
  • value:要设置的32位整数值。

返回值:无。

int32_t ggml_get_i32_nd(const struct ggml_tensor * tensor, int i0, int i1, int i2, int i3)

代码语言:javascript
复制
{签名}

描述:获取多维张量中指定索引处的32位整数值。

参数:

  • tensor:要获取值的多维张量。
  • i0, i1, i2, i3:多维索引。

返回值:指定索引处的32位整数值。

void ggml_set_i32_nd(const struct ggml_tensor * tensor, int i0, int i1, int i2, int i3, int32_t value)

代码语言:javascript
复制
{签名}

描述:设置多维张量中指定索引处的32位整数值。

参数:

  • tensor:要设置值的多维张量。
  • i0, i1, i2, i3:多维索引。
  • value:要设置的32位整数值。

返回值:无。

以上是对给定代码段中的常量、结构体和公开函数的提取和总结。

根据提供的代码段,我们可以提取以下常量、结构体和公开函数:

GGML_TYPE_I8

类型:枚举

描述:表示8位整数类型。

GGML_TYPE_I16

类型:枚举

描述:表示16位整数类型。

GGML_TYPE_I32

类型:枚举

描述:表示32位整数类型。

GGML_TYPE_F16

类型:枚举

描述:表示16位浮点数类型。

GGML_TYPE_F32

类型:枚举

描述:表示32位浮点数类型。

ggml_tensor

描述:表示一个张量对象,包含张量的数据、类型、操作、梯度、源张量等信息。

字段

类型

描述

data

void*

指向张量数据的指针

type

enum ggml_type

张量的数据类型

op

enum ggml_op

张量的操作类型

grad

struct ggml_tensor*

指向梯度张量的指针

src

struct ggml_tensor*

指向源张量的指针

name

char[256]

张量的名称

nb

size_t[4]

张量的维度大小

ne

size_t

张量的元素个数

ggml_get_f32_1d

代码语言:javascript
复制
float ggml_get_f32_1d(const struct ggml_tensor * tensor, int i)

描述:获取一维张量中指定索引的32位浮点数值。

参数:

  • tensor:指向张量的指针。
  • i:索引值。

返回值:32位浮点数值。

ggml_set_f32_1d

代码语言:javascript
复制
void ggml_set_f32_1d(const struct ggml_tensor * tensor, int i, float value)

描述:设置一维张量中指定索引的32位浮点数值。

参数:

  • tensor:指向张量的指针。
  • i:索引值。
  • value:要设置的32位浮点数值。

ggml_get_f32_nd

代码语言:javascript
复制
float ggml_get_f32_nd(const struct ggml_tensor * tensor, int i0, int i1, int i2, int i3)

描述:获取多维张量中指定索引的32位浮点数值。

参数:

  • tensor:指向张量的指针。
  • i0, i1, i2, i3:多维索引值。

返回值:32位浮点数值。

ggml_set_f32_nd

代码语言:javascript
复制
void ggml_set_f32_nd(const struct ggml_tensor * tensor, int i0, int i1, int i2, int i3, float value)

描述:设置多维张量中指定索引的32位浮点数值。

参数:

  • tensor:指向张量的指针。
  • i0, i1, i2, i3:多维索引值。
  • value:要设置的32位浮点数值。

ggml_get_data

代码语言:javascript
复制
void * ggml_get_data(const struct ggml_tensor * tensor)

描述:获取张量的数据指针。

参数:

  • tensor:指向张量的指针。

返回值:指向张量数据的指针。

ggml_get_data_f32

代码语言:javascript
复制
float * ggml_get_data_f32(const struct ggml_tensor * tensor)

描述:获取张量的32位浮点数数据指针。

参数:

  • tensor:指向张量的指针。

返回值:指向张量32位浮点数数据的指针。

ggml_get_unary_op

代码语言:javascript
复制
enum ggml_unary_op ggml_get_unary_op(const struct ggml_tensor * tensor)

描述:获取张量的一元操作类型。

参数:

  • tensor:指向张量的指针。

返回值:一元操作类型。

ggml_get_name

代码语言:javascript
复制
const char * ggml_get_name(const struct ggml_tensor * tensor)

描述:获取张量的名称。

参数:

  • tensor:指向张量的指针。

返回值:张量的名称。

ggml_set_name

代码语言:javascript
复制
struct ggml_tensor * ggml_set_name(struct ggml_tensor * tensor, const char * name)

描述:设置张量的名称。

参数:

  • tensor:指向张量的指针。
  • name:新的名称。

返回值:指向张量的指针。

ggml_format_name

代码语言:javascript
复制
struct ggml_tensor * ggml_format_name(struct ggml_tensor * tensor, const char * fmt, ...)

描述:格式化张量的名称。

参数:

  • tensor:指向张量的指针。
  • fmt:格式化字符串。
  • ...:可变参数列表。

返回值:指向张量的指针。

ggml_view_tensor

代码语言:javascript
复制
struct ggml_tensor * ggml_view_tensor(struct ggml_context * ctx, struct ggml_tensor  * src)

描述:创建一个张量的视图。

参数:

  • ctx:上下文指针。
  • src:源张量指针。

返回值:指向新视图张量的指针。

ggml_get_first_tensor

代码语言:javascript
复制
struct ggml_tensor * ggml_get_first_tensor(const struct ggml_context * ctx)

描述:获取上下文中的第一个张量对象。

参数:

  • ctx:上下文指针。

返回值:指向第一个张量对象的指针。

ggml_get_next_tensor

代码语言:javascript
复制
struct ggml_tensor * ggml_get_next_tensor(const struct ggml_context * ctx, struct ggml_tensor * tensor)

描述:获取上下文中下一个张量对象。

参数:

  • ctx:上下文指针。
  • tensor:当前张量指针。

返回值:指向下一个张量对象的指针。

ggml_get_tensor

代码语言:javascript
复制
struct ggml_tensor * ggml_get_tensor(struct ggml_context * ctx, const char * name)

描述:根据名称获取张量对象。

参数:

  • ctx:上下文指针。
  • name:张量名称。

返回值:指向指定名称的张量对象的指针。

ggml_dup

代码语言:javascript
复制
struct ggml_tensor * ggml_dup(struct ggml_context * ctx, struct ggml_tensor * a)

描述:复制给定的张量a,返回一个新的张量。

参数:

  • ctx:上下文指针。
  • a:要复制的张量指针。

返回值:指向新复制的张量的指针。

ggml_dup_inplace

代码语言:javascript
复制
struct ggml_tensor * ggml_dup_inplace(struct ggml_context * ctx, struct ggml_tensor * a)

描述:在给定的上下文中,复制给定的张量a,如果inplace为true,则在原张量上进行复制。

参数:

  • ctx:上下文指针。
  • a:要复制的张量指针。

返回值:指向新复制的张量的指针。

ggml_add

代码语言:javascript
复制
struct ggml_tensor * ggml_add(struct ggml_context * ctx, struct ggml_tensor * a, struct ggml_tensor * b)

描述:在给定的上下文中,对给定的张量a和b进行相加操作,返回一个新的张量。

参数:

  • ctx:上下文指针。
  • a:第一个张量指针。
  • b:第二个张量指针。

返回值:指向相加结果张量的指针。

ggml_add_inplace

代码语言:javascript
复制
struct ggml_tensor * ggml_add_inplace(struct ggml_context * ctx, struct ggml_tensor * a, struct ggml_tensor * b)

描述:在给定的上下文中,对给定的张量a和b进行相加操作,如果inplace为true,则在原张量上进行操作。

参数:

  • ctx:上下文指针。
  • a:第一个张量指针。
  • b:第二个张量指针。

返回值:指向相加结果张量的指针。

ggml_add_cast

代码语言:javascript
复制
struct ggml_tensor * ggml_add_cast(struct ggml_context * ctx, struct ggml_tensor * a, struct ggml_tensor * b, enum   ggml_type     type)

描述:在给定的上下文中,对给定的张量a和b进行相加操作并进行类型转换。

参数:

  • ctx:上下文指针。
  • a:第一个张量指针。
  • b:第二个张量指针。
  • type:目标类型。

返回值:指向相加并转换类型后的张量的指针。

ggml_add1

代码语言:javascript
复制
struct ggml_tensor * ggml_add1(struct ggml_context * ctx, struct ggml_tensor * a, struct ggml_tensor * b)

描述:实现张量相加的功能,其中b是标量。

参数:

  • ctx:上下文指针。
  • a:第一个张量指针。
  • b:第二个张量指针(标量)。

返回值:指向相加结果张量的指针。

ggml_add1_inplace

代码语言:javascript
复制
struct ggml_tensor * ggml_add1_inplace(struct ggml_context * ctx, struct ggml_tensor * a, struct ggml_tensor * b)

描述:实现张量相加并就地修改的功能,其中b是标量。

参数:

  • ctx:上下文指针。
  • a:第一个张量指针。
  • b:第二个张量指针(标量)。

返回值:指向相加结果张量的指针。

ggml_acc_impl

代码语言:javascript
复制
static struct ggml_tensor * ggml_acc_impl(struct ggml_context * ctx, struct ggml_tensor * a, struct ggml_tensor * b, size_t               nb1, size_t               nb2, size_t               nb3, size_t               offset, bool inplace)

描述:实现张量累积操作的函数。

参数:

  • ctx:上下文指针。
  • a:第一个张量指针。
  • b:第二个张量指针。
  • nb1, nb2, nb3:维度大小。
  • offset:偏移量。
  • inplace:是否就地操作。

返回值:指向累积结果张量的指针。

请注意,由于代码中包含了一些静态函数和实现细节,这些函数可能不是公开API的一部分,而是用于内部实现。在实际使用时,应参考库的文档或API规范来确定哪些函数是公开可用的。

GGML_OP_ACC 类型:枚举值 描述:表示累加操作的枚举值

GGML_OP_SUB 类型:枚举值 描述:表示减法操作的枚举值

GGML_OP_MUL 类型:枚举值 描述:表示乘法操作的枚举值

GGML_OP_DIV 类型:枚举值 描述:表示除法操作的枚举值

GGML_OP_SQR 类型:枚举值 描述:表示平方操作的枚举值

GGML_OP_SQRT 类型:枚举值 描述:表示开方操作的枚举值

GGML_OP_LOG 类型:枚举值 描述:表示对数操作的枚举值

GGML_OP_SUM 类型:枚举值 描述:表示求和操作的枚举值

GGML_OP_SUM_ROWS 类型:枚举值 描述:表示求行和操作的枚举值

GGML_OP_MEAN 类型:枚举值 描述:表示求平均值操作的枚举值

GGML_OP_ARGMAX 类型:枚举值 描述:表示求最大值索引操作的枚举值

GGML_OP_REPEAT 类型:枚举值 描述:表示重复操作的枚举值

GGML_OP_REPEAT_BACK 类型:枚举值 描述:表示重复反向传播操作的枚举值

GGML_OP_CONCAT 类型:枚举值 描述:表示连接操作的枚举值

ggml_tensor

描述:表示一个张量的结构体

字段

类型

描述

op

枚举值

操作类型

grad

ggml_tensor*

梯度张量

src

ggml_tensor*

源张量

type

枚举值

张量类型

ne

int64_t[]

张量维度大小

ggml_acc

代码语言:javascript
复制
 struct ggml_tensor * ggml_acc(struct ggml_context * ctx, struct ggml_tensor * a, struct ggml_tensor * b, size_t nb1, size_t nb2, size_t nb3, size_t offset) 

描述:计算两个张量的加法

参数:

  • ctx:ggml_context 结构体指针
  • a:第一个张量
  • b:第二个张量
  • nb1, nb2, nb3, offset:操作参数

返回值:结果张量

ggml_acc_inplace

代码语言:javascript
复制
 struct ggml_tensor * ggml_acc_inplace(struct ggml_context * ctx, struct ggml_tensor * a, struct ggml_tensor * b, size_t nb1, size_t nb2, size_t nb3, size_t offset) 

描述:计算两个张量的原地加法

参数:

  • ctx:ggml_context 结构体指针
  • a:第一个张量
  • b:第二个张量
  • nb1, nb2, nb3, offset:操作参数

返回值:结果张量

ggml_sub

代码语言:javascript
复制
 struct ggml_tensor * ggml_sub(struct ggml_context * ctx, struct ggml_tensor * a, struct ggml_tensor * b) 

描述:计算两个张量的减法

参数:

  • ctx:ggml_context 结构体指针
  • a:第一个张量
  • b:第二个张量

返回值:结果张量

ggml_sub_inplace

代码语言:javascript
复制
 struct ggml_tensor * ggml_sub_inplace(struct ggml_context * ctx, struct ggml_tensor * a, struct ggml_tensor * b) 

描述:计算两个张量的原地减法

参数:

  • ctx:ggml_context 结构体指针
  • a:第一个张量
  • b:第二个张量

返回值:结果张量

ggml_mul

代码语言:javascript
复制
 struct ggml_tensor * ggml_mul(struct ggml_context * ctx, struct ggml_tensor * a, struct ggml_tensor * b) 

描述:计算两个张量的乘法

参数:

  • ctx:ggml_context 结构体指针
  • a:第一个张量
  • b:第二个张量

返回值:结果张量

ggml_mul_inplace

代码语言:javascript
复制
 struct ggml_tensor * ggml_mul_inplace(struct ggml_context * ctx, struct ggml_tensor * a, struct ggml_tensor * b) 

描述:计算两个张量的原地乘法

参数:

  • ctx:ggml_context 结构体指针
  • a:第一个张量
  • b:第二个张量

返回值:结果张量

ggml_div

代码语言:javascript
复制
 struct ggml_tensor * ggml_div(struct ggml_context * ctx, struct ggml_tensor * a, struct ggml_tensor * b) 

描述:计算两个张量的除法

参数:

  • ctx:ggml_context 结构体指针
  • a:第一个张量
  • b:第二个张量

返回值:结果张量

ggml_div_inplace

代码语言:javascript
复制
 struct ggml_tensor * ggml_div_inplace(struct ggml_context * ctx, struct ggml_tensor * a, struct ggml_tensor * b) 

描述:计算两个张量的原地除法

参数:

  • ctx:ggml_context 结构体指针
  • a:第一个张量
  • b:第二个张量

返回值:结果张量

ggml_sqr

代码语言:javascript
复制
 struct ggml_tensor * ggml_sqr(struct ggml_context * ctx, struct ggml_tensor * a) 

描述:计算张量的平方

参数:

  • ctx:ggml_context 结构体指针
  • a:输入张量

返回值:结果张量

ggml_sqr_inplace

代码语言:javascript
复制
 struct ggml_tensor * ggml_sqr_inplace(struct ggml_context * ctx, struct ggml_tensor * a) 

描述:计算张量的原地平方

参数:

  • ctx:ggml_context 结构体指针
  • a:输入张量

返回值:结果张量

ggml_sqrt

代码语言:javascript
复制
 struct ggml_tensor * ggml_sqrt(struct ggml_context * ctx, struct ggml_tensor * a) 

描述:计算张量的开方

参数:

  • ctx:ggml_context 结构体指针
  • a:输入张量

返回值:结果张量

ggml_sqrt_inplace

代码语言:javascript
复制
 struct ggml_tensor * ggml_sqrt_inplace(struct ggml_context * ctx, struct ggml_tensor * a) 

描述:计算张量的原地开方

参数:

  • ctx:ggml_context 结构体指针
  • a:输入张量

返回值:结果张量

ggml_log

代码语言:javascript
复制
 struct ggml_tensor * ggml_log(struct ggml_context * ctx, struct ggml_tensor * a) 

描述:计算张量的对数

参数:

  • ctx:ggml_context 结构体指针
  • a:输入张量

返回值:结果张量

ggml_log_inplace

代码语言:javascript
复制
 struct ggml_tensor * ggml_log_inplace(struct ggml_context * ctx, struct ggml_tensor * a) 

描述:计算张量的原地对数

参数:

  • ctx:ggml_context 结构体指针
  • a:输入张量

返回值:结果张量

ggml_sum

代码语言:javascript
复制
 struct ggml_tensor * ggml_sum(struct ggml_context * ctx, struct ggml_tensor * a) 

描述:计算张量的求和

参数:

  • ctx:ggml_context 结构体指针
  • a:输入张量

返回值:结果张量

ggml_sum_rows

代码语言:javascript
复制
 struct ggml_tensor * ggml_sum_rows(struct ggml_context * ctx, struct ggml_tensor * a) 

描述:计算张量的行求和

参数:

  • ctx:ggml_context 结构体指针
  • a:输入张量

返回值:结果张量

ggml_mean

代码语言:javascript
复制
 struct ggml_tensor * ggml_mean(struct ggml_context * ctx, struct ggml_tensor * a) 

描述:计算张量的平均值

参数:

  • ctx:ggml_context 结构体指针
  • a:输入张量

返回值:结果张量

ggml_argmax

代码语言:javascript
复制
 struct ggml_tensor * ggml_argmax(struct ggml_context * ctx, struct ggml_tensor * a) 

描述:计算张量的最大值索引

参数:

  • ctx:ggml_context 结构体指针
  • a:输入张量

返回值:结果张量

ggml_repeat

代码语言:javascript
复制
 struct ggml_tensor * ggml_repeat(struct ggml_context * ctx, struct ggml_tensor * a, struct ggml_tensor * b) 

描述:将张量沿着指定维度重复

参数:

  • ctx:ggml_context 结构体指针
  • a:输入张量
  • b:重复次数张量

返回值:结果张量

ggml_repeat_back

代码语言:javascript
复制
 struct ggml_tensor * ggml_repeat_back(struct ggml_context * ctx, struct ggml_tensor * a, struct ggml_tensor * b) 

描述:重复反向传播函数,用于计算梯度

参数:

  • ctx:ggml_context 结构体指针
  • a:输入张量
  • b:重复次数张量

返回值:结果张量

ggml_concat

代码语言:javascript
复制
 struct ggml_tensor * ggml_concat(struct ggml_context* ctx, 

描述:将两个张量在指定维度上连接

参数:

  • ctx:ggml_context 结构体指针
  • 待补充…

返回值:结果张量

请注意,上述函数列表中,ggml_concat函数的描述不完整,因为代码片段在此处被截断。如果需要完整描述,请提供完整的代码片段。

无显式定义的常量。

无显式定义的结构体。

ggml_concat

代码语言:javascript
复制
struct ggml_tensor * ggml_concat(
        struct ggml_context * ctx,
        struct ggml_tensor * a,
        struct ggml_tensor * b)

描述:将两个张量在指定维度上连接起来。

参数:

  • ctx:上下文指针。
  • a:第一个输入张量。
  • b:第二个输入张量。

返回值:连接后的新张量。

ggml_abs

代码语言:javascript
复制
struct ggml_tensor * ggml_abs(
        struct ggml_context * ctx,
        struct ggml_tensor  * a)

描述:计算张量的绝对值。

参数:

  • ctx:上下文指针。
  • a:输入张量。

返回值:绝对值后的新张量。

ggml_abs_inplace

代码语言:javascript
复制
struct ggml_tensor * ggml_abs_inplace(
        struct ggml_context * ctx,
        struct ggml_tensor  * a)

描述:计算张量的绝对值并覆盖原张量。

参数:

  • ctx:上下文指针。
  • a:输入张量。

返回值:原位操作后的张量。

ggml_sgn

代码语言:javascript
复制
struct ggml_tensor * ggml_sgn(
        struct ggml_context * ctx,
        struct ggml_tensor  * a)

描述:计算张量的符号。

参数:

  • ctx:上下文指针。
  • a:输入张量。

返回值:符号后的新张量。

ggml_sgn_inplace

代码语言:javascript
复制
struct ggml_tensor * ggml_sgn_inplace(
        struct ggml_context * ctx,
        struct ggml_tensor  * a)

描述:计算张量的符号并覆盖原张量。

参数:

  • ctx:上下文指针。
  • a:输入张量。

返回值:原位操作后的张量。

ggml_neg

代码语言:javascript
复制
struct ggml_tensor * ggml_neg(
        struct ggml_context * ctx,
        struct ggml_tensor  * a)

描述:计算张量的相反数。

参数:

  • ctx:上下文指针。
  • a:输入张量。

返回值:相反数后的新张量。

ggml_neg_inplace

代码语言:javascript
复制
struct ggml_tensor * ggml_neg_inplace(
        struct ggml_context * ctx,
        struct ggml_tensor  * a)

描述:计算张量的相反数并覆盖原张量。

参数:

  • ctx:上下文指针。
  • a:输入张量。

返回值:原位操作后的张量。

ggml_step

代码语言:javascript
复制
struct ggml_tensor * ggml_step(
        struct ggml_context * ctx,
        struct ggml_tensor  * a)

描述:对输入的张量进行步函数操作。

参数:

  • ctx:上下文指针。
  • a:输入张量。

返回值:步函数操作后的新张量。

ggml_step_inplace

代码语言:javascript
复制
struct ggml_tensor * ggml_step_inplace(
        struct ggml_context * ctx,
        struct ggml_tensor  * a)

描述:对输入的张量进行原位步函数操作。

参数:

  • ctx:上下文指针。
  • a:输入张量。

返回值:原位操作后的张量。

ggml_tanh

代码语言:javascript
复制
struct ggml_tensor * ggml_tanh(
        struct ggml_context * ctx,
        struct ggml_tensor  * a)

描述:对输入的张量进行双曲正切操作。

参数:

  • ctx:上下文指针。
  • a:输入张量。

返回值:双曲正切操作后的新张量。

ggml_tanh_inplace

代码语言:javascript
复制
struct ggml_tensor * ggml_tanh_inplace(
        struct ggml_context * ctx,
        struct ggml_tensor  * a)

描述:对输入的张量进行原位双曲正切操作。

参数:

  • ctx:上下文指针。
  • a:输入张量。

返回值:原位操作后的张量。

ggml_elu

代码语言:javascript
复制
struct ggml_tensor * ggml_elu(
    struct ggml_context * ctx,
    struct ggml_tensor  * a)

描述:对输入的张量进行ELU激活函数操作。

参数:

  • ctx:上下文指针。
  • a:输入张量。

返回值:ELU激活函数操作后的新张量。

ggml_elu_inplace

代码语言:javascript
复制
struct ggml_tensor * ggml_elu_inplace(
    struct ggml_context * ctx,
    struct ggml_tensor  * a)

描述:对输入的张量进行原位ELU激活函数操作。

参数:

  • ctx:上下文指针。
  • a:输入张量。

返回值:原位操作后的张量。

ggml_relu

代码语言:javascript
复制
struct ggml_tensor * ggml_relu(
        struct ggml_context * ctx,
        struct ggml_tensor  * a)

描述:对输入的张量进行ReLU激活函数操作。

参数:

  • ctx:上下文指针。
  • a:输入张量。

返回值:ReLU激活函数操作后的新张量。

ggml_relu_inplace

代码语言:javascript
复制
struct ggml_tensor * ggml_relu_inplace(
        struct ggml_context * ctx,
        struct ggml_tensor  * a)

描述:对输入的张量进行原位ReLU激活函数操作。

参数:

  • ctx:上下文指针。
  • a:输入张量。

返回值:原位操作后的张量。

ggml_leaky_relu

代码语言:javascript
复制
struct ggml_tensor * ggml_leaky_relu(
        struct ggml_context * ctx,
        struct ggml_tensor  * a, float negative_slope, bool inplace)

描述:对输入的张量进行Leaky ReLU激活函数操作。

参数:

  • ctx:上下文指针。
  • a:输入张量。
  • negative_slope:负斜率。
  • inplace:是否进行原位操作。

返回值:Leaky ReLU激活函数操作后的新张量。

ggml_gelu

代码语言:javascript
复制
struct ggml_tensor * ggml_gelu(
        struct ggml_context * ctx,
        struct ggml_tensor  * a)

描述:对输入的张量进行GELU激活函数操作。

参数:

  • ctx:上下文指针。
  • a:输入张量。

返回值:GELU激活函数操作后的新张量。

ggml_gelu_inplace

代码语言:javascript
复制
struct ggml_tensor * ggml_gelu_inplace(
        struct ggml_context * ctx,
        struct ggml_tensor  * a)

描述:对输入的张量进行原位GELU激活函数操作。

参数:

  • ctx:上下文指针。
  • a:输入张量。

返回值:原位操作后的张量。

ggml_gelu_quick

代码语言:javascript
复制
struct ggml_tensor * ggml_gelu_quick(
        struct ggml_context * ctx,
        struct ggml_tensor  * a)

描述:对输入的张量进行快速GELU激活函数操作。

参数:

  • ctx:上下文指针。
  • a:输入张量。

返回值:快速GELU激活函数操作后的新张量。

ggml_gelu_quick_inplace

代码语言:javascript
复制
struct ggml_tensor * ggml_gelu_quick_inplace(
        struct ggml_context * ctx,
        struct ggml_tensor  * a)

描述:对输入的张量进行原位快速GELU激活函数操作。

参数:

  • ctx:上下文指针。
  • a:输入张量。

返回值:原位操作后的张量。

ggml_silu

代码语言:javascript
复制
struct ggml_tensor * ggml_silu(
        struct ggml_context * ctx,
        struct ggml_tensor  * a)

描述:对输入的张量进行SiLU激活函数操作。

参数:

  • ctx:上下文指针。
  • a:输入张量。

返回值:SiLU激活函数操作后的新张量。

ggml_silu_inplace

代码语言:javascript
复制
struct ggml_tensor * ggml_silu_inplace(
        struct ggml_context * ctx,
        struct ggml_tensor  * a)

描述:对输入的张量进行原位SiLU激活函数操作。

参数:

  • ctx:上下文指针。
  • a:输入张量。

返回值:原位操作后的张量。

ggml_silu_back

代码语言:javascript
复制
struct ggml_tensor * ggml_silu_back(
        struct ggml_context * ctx,
        struct ggml_tensor  * a,
        struct ggml_tensor  * b)

描述:对输入的张量进行SiLU反向传播操作。

参数:

  • ctx:上下文指针。
  • a:输入张量。
  • b:输出张量。

返回值:SiLU反向传播操作后的新张量。

ggml_norm

代码语言:javascript
复制
struct ggml_tensor * ggml_norm(
        struct ggml_context * ctx,
        struct ggml_tensor  * a,
        float eps)

描述:计算给定张量的范数。

参数:

  • ctx:上下文指针。
  • a:输入张量。
  • eps:用于归一化的epsilon值。

返回值:范数计算后的新张量。

ggml_norm_inplace

代码语言:javascript
复制
struct ggml_tensor * ggml_norm_inplace(
        struct ggml_context * ctx,
        struct ggml_tensor  * a,
        float eps)

描述:计算给定张量的范数并将结果存储在原始张量中。

参数:

  • ctx:上下文指针。
  • a:输入张量。
  • eps:用于归一化的epsilon值。

返回值:原位范数计算后的张量。

ggml_rms_norm

代码语言:javascript
复制
struct ggml_tensor * ggml_rms_norm(
        struct ggml_context * ctx,
        struct ggml_tensor  * a,
        float  eps)

描述:计算给定张量的RMS范数。

参数:

  • ctx:上下文指针。
  • a:输入张量。
  • eps:用于归一化的epsilon值。

返回值:RMS范数计算后的新张量。

ggml_rms_norm_inplace

代码语言:javascript
复制
struct ggml_tensor * ggml_rms_norm_inplace(
        struct ggml_context * ctx,
        struct ggml_tensor  * a,
        float eps)

描述:计算给定张量的RMS范数并将结果存储在原始张量中。

参数:

  • ctx:上下文指针。
  • a:输入张量。
  • eps:用于归一化的epsilon值。

返回值:原位RMS范数计算后的张量。

ggml_rms_norm_back

代码语言:javascript
复制
struct ggml_tensor * ggml_rms_norm_back(
        struct ggml_context * ctx,
        struct ggml_tensor  * a,
        struct ggml_tensor  * b,
        float  eps)

描述:计算给定张量的RMS范数的反向传播。

参数:

  • ctx:上下文指针。
  • a:输入张量。
  • b:输出张量。
  • eps:用于归一化的epsilon值。

返回值:RMS范数反向传播后的新张量。

ggml_group_norm

代码语言:javascript
复制
struct ggml_tensor * ggml_group_norm(
    struct ggml_context * ctx,
    struct ggml_tensor * a,
    int n_groups)

描述:对输入张量进行分组归一化处理。

参数:

  • ctx:上下文指针。
  • a:输入张量。
  • n_groups:分组数量。

返回值:分组归一化后的新张量。

ggml_group_norm_inplace

代码语言:javascript
复制
struct ggml_tensor * ggml_group_norm_inplace(
    struct ggml_context * ctx,
    struct ggml_tensor * a,
    int n_groups)

描述:对输入张量进行原地分组归一化处理。

参数:

  • ctx:上下文指针。
  • a:输入张量。
  • n_groups:分组数量。

返回值:原地分组归一化后的张量。

ggml_mul_mat

代码语言:javascript
复制
struct ggml_tensor * ggml_mul_mat(
        struct ggml_context * ctx,
        struct ggml_tensor  * a,
        struct ggml_tensor  * b)

描述:对两个张量进行矩阵乘法运算。

参数:

  • ctx:上下文指针。
  • a:第一个输入张量。
  • b:第二个输入张量。

返回值:矩阵乘法运算后的新张量。

ggml_mul_mat_set_prec

代码语言:javascript
复制
void ggml_mul_mat_set_prec(
        struct ggml_tensor * a,
        enum ggml_prec       prec)

描述:设置矩阵乘法张量的精度。

参数:

  • a:输入张量。
  • prec:精度类型。

返回值:无返回值。

ggml_mul_mat_id

代码语言:javascript
复制
struct ggml_tensor * ggml_mul_mat_id(
        struct ggml_context * ctx,
        struct ggml_tensor  * const as[],
        int                   n_as,
        struct ggml_tensor  * ids,
        int                   id,
        struct ggml_tensor  * b)

描述:对多个输入张量和一个标识张量进行矩阵乘法运算。

参数:

  • ctx:上下文指针。
  • as:输入张量数组。
  • n_as:输入张量数量。
  • ids:标识张量。
  • id:标识值。
  • b:第二个输入张量。

返回值:矩阵乘法运算后的新张量。

ggml_out_prod

代码语言:javascript
复制
struct ggml_tensor * ggml_out_prod(
        struct ggml_context * ctx,
        struct ggml_tensor  * a,
        struct ggml_tensor  * b)

描述:计算两个张量的外积。

参数:

  • ctx:上下文指针。
  • a:第一个输入张量。
  • b:第二个输入张量。

返回值:外积运算后的新张量。

GGML_TYPE_F32

类型:枚举

描述:表示数据类型为32位浮点数。

GGML_OP_OUT_PROD

类型:枚举

描述:表示操作类型为外积。

GGML_OP_SCALE

类型:枚举

描述:表示操作类型为标量乘法。

GGML_OP_SET

类型:枚举

描述:表示操作类型为设置张量的值。

GGML_OP_CPY

类型:枚举

描述:表示操作类型为复制。

GGML_OP_CONT

类型:枚举

描述:表示操作类型为创建连续张量。

GGML_OP_RESHAPE

类型:枚举

描述:表示操作类型为重新塑形张量。

ggml_tensor

描述:表示一个张量结构体。

字段

类型

描述

op

枚举

操作类型

grad

ggml_tensor*

梯度张量

src

ggml_tensor*

源张量

type

枚举

数据类型

ne

int64_t[]

张量的维度大小

name

char*

张量的名称

ggml_new_tensor

代码语言:javascript
复制
struct ggml_tensor * ggml_new_tensor(struct ggml_context * ctx, enum ggml_type type, int ndims, const int64_t ne[]);

描述:创建一个新的张量。

参数:

  • ctx:ggml上下文。
  • type:张量的数据类型。
  • ndims:张量的维度数。
  • ne:张量的维度大小数组。

返回值:新创建的张量。

ggml_scale_impl

代码语言:javascript
复制
static struct ggml_tensor * ggml_scale_impl(struct ggml_context * ctx, struct ggml_tensor * a, float s, bool inplace);

描述:对张量进行标量乘法的实现函数。

参数:

  • ctx:ggml上下文。
  • a:输入张量。
  • s:标量值。
  • inplace:是否原地操作。

返回值:结果张量。

ggml_scale

代码语言:javascript
复制
struct ggml_tensor * ggml_scale(struct ggml_context * ctx, struct ggml_tensor * a, float s);

描述:对张量进行标量乘法,返回新的张量。

参数:

  • ctx:ggml上下文。
  • a:输入张量。
  • s:标量值。

返回值:新的张量。

ggml_scale_inplace

代码语言:javascript
复制
struct ggml_tensor * ggml_scale_inplace(struct ggml_context * ctx, struct ggml_tensor * a, float s);

描述:对张量进行标量乘法,原地操作。

参数:

  • ctx:ggml上下文。
  • a:输入张量。
  • s:标量值。

返回值:修改后的张量。

ggml_set_impl

代码语言:javascript
复制
static struct ggml_tensor * ggml_set_impl(struct ggml_context * ctx, struct ggml_tensor * a, struct ggml_tensor * b, size_t nb1, size_t nb2, size_t nb3, size_t offset, bool inplace);

描述:设置两个张量的值的实现函数。

参数:

  • ctx:ggml上下文。
  • a:目标张量。
  • b:源张量。
  • nb1, nb2, nb3:大小信息。
  • offset:偏移量。
  • inplace:是否原地操作。

返回值:结果张量。

ggml_set

代码语言:javascript
复制
struct ggml_tensor * ggml_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);

描述:设置两个张量的值(不进行原地操作)。

参数:

  • ctx:ggml上下文。
  • a:目标张量。
  • b:源张量。
  • nb1, nb2, nb3:大小信息。
  • offset:偏移量。

返回值:结果张量。

ggml_set_inplace

代码语言:javascript
复制
struct ggml_tensor * ggml_set_inplace(struct ggml_context * ctx, struct ggml_tensor * a, struct ggml_tensor * b, size_t nb1, size_t nb2, size_t nb3, size_t offset);

描述:设置两个张量的值(进行原地操作)。

参数:

  • ctx:ggml上下文。
  • a:目标张量。
  • b:源张量。
  • nb1, nb2, nb3:大小信息。
  • offset:偏移量。

返回值:结果张量。

ggml_cpy_impl

代码语言:javascript
复制
static struct ggml_tensor * ggml_cpy_impl(struct ggml_context * ctx, struct ggml_tensor * a, struct ggml_tensor * b, bool inplace);

描述:复制张量b的数据到张量a中的实现函数。

参数:

  • ctx:ggml上下文。
  • a:目标张量。
  • b:源张量。
  • inplace:是否原地操作。

返回值:结果张量。

ggml_cpy

代码语言:javascript
复制
struct ggml_tensor * ggml_cpy(struct ggml_context * ctx, struct ggml_tensor * a, struct ggml_tensor * b);

描述:复制张量b的数据到张量a中,返回新的张量。

参数:

  • ctx:ggml上下文。
  • a:目标张量。
  • b:源张量。

返回值:新的张量。

ggml_cpy_inplace

代码语言:javascript
复制
struct ggml_tensor * ggml_cpy_inplace(struct ggml_context * ctx, struct ggml_tensor * a, struct ggml_tensor * b);

描述:在原地将张量b的数据复制到张量a中,返回修改后的张量a。

参数:

  • ctx:ggml上下文。
  • a:目标张量。
  • b:源张量。

返回值:修改后的张量a。

ggml_cont_impl

代码语言:javascript
复制
static struct ggml_tensor * ggml_cont_impl(struct ggml_context * ctx, struct ggml_tensor * a, bool inplace);

描述:创建一个连续的张量的实现函数。

参数:

  • ctx:ggml上下文。
  • a:输入张量。
  • inplace:是否原地操作。

返回值:结果张量。

ggml_cont

代码语言:javascript
复制
struct ggml_tensor * ggml_cont(struct ggml_context * ctx, struct ggml_tensor * a);

描述:创建一个连续的张量。

参数:

  • ctx:ggml上下文。
  • a:输入张量。

返回值:新的张量。

ggml_cont_inplace

代码语言:javascript
复制
struct ggml_tensor * ggml_cont_inplace(struct ggml_context * ctx, struct ggml_tensor * a);

描述:在原地操作的情况下创建一个连续的张量。

参数:

  • ctx:ggml上下文。
  • a:输入张量。

返回值:修改后的张量。

ggml_cont_1d

代码语言:javascript
复制
struct ggml_tensor * ggml_cont_1d(struct ggml_context * ctx, struct ggml_tensor * a, int64_t ne0);

描述:创建一个一维连续的张量。

参数:

  • ctx:ggml上下文。
  • a:输入张量。
  • ne0:一维大小。

返回值:新的张量。

ggml_cont_2d

代码语言:javascript
复制
struct ggml_tensor * ggml_cont_2d(struct ggml_context * ctx, struct ggml_tensor * a, int64_t ne0, int64_t ne1);

描述:创建一个二维连续的张量。

参数:

  • ctx:ggml上下文。
  • a:输入张量。
  • ne0, ne1:二维大小。

返回值:新的张量。

ggml_cont_3d

代码语言:javascript
复制
struct ggml_tensor * ggml_cont_3d(struct ggml_context * ctx, struct ggml_tensor * a, int64_t ne0, int64_t ne1, int64_t ne2);

描述:创建一个三维连续的张量。

参数:

  • ctx:ggml上下文。
  • a:输入张量。
  • ne0, ne1, ne2:三维大小。

返回值:新的张量。

ggml_cont_4d

代码语言:javascript
复制
struct ggml_tensor * ggml_cont_4d(struct ggml_context * ctx, struct ggml_tensor * a, int64_t ne0, int64_t ne1, int64_t ne2, int64_t ne3);

描述:创建一个四维连续的张量。

参数:

  • ctx:ggml上下文。
  • a:输入张量。
  • ne0, ne1, ne2, ne3:四维大小。

返回值:新的张量。

ggml_reshape

代码语言:javascript
复制
struct ggml_tensor * ggml_reshape(struct ggml_context * ctx, struct ggml_tensor * a, struct ggml_tensor * b);

描述:重新塑形张量。

参数:

  • ctx:ggml上下文。
  • a:输入张量。
  • b:目标形状张量。

返回值:重塑后的张量。

ggml_reshape_1d

代码语言:javascript
复制
struct ggml_tensor * ggml_reshape_1d(struct ggml_context * ctx, struct ggml_tensor * a, int64_t ne0);

描述:一维张量的重新塑形。

参数:

  • ctx:ggml上下文。
  • a:输入张量。
  • ne0:一维大小。

返回值:重塑后的张量。

ggml_reshape_2d

代码语言:javascript
复制
struct ggml_tensor * ggml_reshape_2d(struct ggml_context * ctx, struct ggml_tensor * a, int64_t ne0, int64_t ne1);

描述:二维张量的重新塑形。

参数:

  • ctx:ggml上下文。
  • a:输入张量。
  • ne0, ne1:二维大小。

返回值:重塑后的张量。

ggml_reshape_3d

代码语言:javascript
复制
struct ggml_tensor * ggml_reshape_3d(struct ggml_context * ctx, struct ggml_tensor * a, int64_t ne0, int64_t ne1, int64_t ne2);

描述:三维张量的重新塑形。

参数:

  • ctx:ggml上下文。
  • a:输入张量。
  • ne0, ne1, ne2:三维大小。

返回值:重塑后的张量。

ggml_reshape_4d

代码语言:javascript
复制
struct ggml_tensor * ggml_reshape_4d(struct ggml_context * ctx, struct ggml_tensor * a, int64_t ne0, int64_t ne1, int64_t ne2, int64_t ne3);

描述:四维张量的重新塑形。

参数:

  • ctx:ggml上下文。
  • a:输入张量。
  • ne0, ne1, ne2, ne3:四维大小。

返回值:重塑后的张量。

GGML_OP_RESHAPE

类型:枚举值

描述:表示重塑操作的枚举值。

GGML_OP_VIEW

类型:枚举值

描述:表示视图操作的枚举值。

GGML_OP_PERMUTE

类型:枚举值

描述:表示排列操作的枚举值。

GGML_OP_TRANSPOSE

类型:枚举值

描述:表示转置操作的枚举值。

GGML_OP_GET_ROWS

类型:枚举值

描述:表示获取行操作的枚举值。

GGML_OP_GET_ROWS_BACK

类型:枚举值

描述:表示获取行反向操作的枚举值。

GGML_OP_DIAG

类型:枚举值

描述:表示对角线操作的枚举值。

GGML_OP_DIAG_MASK_INF

类型:枚举值

描述:表示对角线掩码无穷大操作的枚举值。

GGML_OP_DIAG_MASK_ZERO

类型:枚举值

描述:表示对角线掩码零操作的枚举值。

GGML_OP_SOFT_MAX

类型:枚举值

描述:表示softmax操作的枚举值。

ggml_tensor

描述:表示张量的结构体。

字段

类型

描述

op

枚举值

操作类型

grad

ggml_tensor*

梯度张量

src

ggml_tensor*

源张量

type

枚举值

张量类型

ne

int64_t[]

维度大小数组

nb

size_t[]

维度步长数组

name

char*

张量名称

ggml_format_name

代码语言:javascript
复制
void ggml_format_name(struct ggml_tensor * tensor, const char * format, ...);

描述:格式化张量的名称。

参数:

  • tensor:张量指针
  • format:格式化字符串

ggml_new_tensor_impl

代码语言:javascript
复制
struct ggml_tensor * ggml_new_tensor_impl(struct ggml_context * ctx, enum ggml_type type, int n_dims, const int64_t * ne, struct ggml_tensor * src, size_t offset);

描述:创建一个新的张量。

参数:

  • ctx:上下文指针
  • type:张量类型
  • n_dims:维度数量
  • ne:维度大小数组
  • src:源张量指针
  • offset:偏移量

返回值:新创建的张量指针

ggml_set_op_params

代码语言:javascript
复制
void ggml_set_op_params(struct ggml_tensor * tensor, void * params, size_t size);

描述:设置张量的操作参数。

参数:

  • tensor:张量指针
  • params:参数指针
  • size:参数大小

ggml_dup_tensor

代码语言:javascript
复制
struct ggml_tensor * ggml_dup_tensor(struct ggml_context * ctx, struct ggml_tensor * tensor);

描述:复制一个张量。

参数:

  • ctx:上下文指针
  • tensor:源张量指针

返回值:复制后的张量指针

ggml_view_impl

代码语言:javascript
复制
struct ggml_tensor * ggml_view_impl(struct ggml_context * ctx, struct ggml_tensor * a, int n_dims, const int64_t * ne, size_t offset);

描述:实现视图操作的内部函数。

参数:

  • ctx:上下文指针
  • a:输入张量指针
  • n_dims:维度数量
  • ne:维度大小数组
  • offset:偏移量

返回值:视图操作的结果张量指针

ggml_view_1d

代码语言:javascript
复制
struct ggml_tensor * ggml_view_1d(struct ggml_context * ctx, struct ggml_tensor * a, int64_t ne0, size_t offset);

描述:创建一个一维视图的张量。

参数:

  • ctx:上下文指针
  • a:输入张量指针
  • ne0:第一个维度的大小
  • offset:偏移量

返回值:创建的一维视图张量指针

ggml_view_2d

代码语言:javascript
复制
struct ggml_tensor * ggml_view_2d(struct ggml_context * ctx, struct ggml_tensor * a, int64_t ne0, int64_t ne1, size_t nb1, size_t offset);

描述:创建一个二维视图的张量。

参数:

  • ctx:上下文指针
  • a:输入张量指针
  • ne0:第一个维度的大小
  • ne1:第二个维度的大小
  • nb1:第二个维度的步长
  • offset:偏移量

返回值:创建的二维视图张量指针

ggml_view_3d

代码语言:javascript
复制
struct ggml_tensor * ggml_view_3d(struct ggml_context * ctx, struct ggml_tensor * a, int64_t ne0, int64_t ne1, int64_t ne2, size_t nb1, size_t nb2, size_t offset);

描述:创建一个三维视图的张量。

参数:

  • ctx:上下文指针
  • a:输入张量指针
  • ne0:第一个维度的大小
  • ne1:第二个维度的大小
  • ne2:第三个维度的大小
  • nb1:第二个维度的步长
  • nb2:第三个维度的步长
  • offset:偏移量

返回值:创建的三维视图张量指针

ggml_view_4d

代码语言:javascript
复制
struct ggml_tensor * ggml_view_4d(struct ggml_context * ctx, struct ggml_tensor * a, int64_t ne0, int64_t ne1, int64_t ne2, int64_t ne3, size_t nb1, size_t nb2, size_t nb3, size_t offset);

描述:创建一个四维视图的张量。

参数:

  • ctx:上下文指针
  • a:输入张量指针
  • ne0:第一个维度的大小
  • ne1:第二个维度的大小
  • ne2:第三个维度的大小
  • ne3:第四个维度的大小
  • nb1:第二维度的步长
  • nb2:第三维度的步长
  • nb3:第四维度的步长
  • offset:偏移量

返回值:创建的四维视图张量指针

ggml_permute

代码语言:javascript
复制
struct ggml_tensor * ggml_permute(struct ggml_context * ctx, struct ggml_tensor * a, int axis0, int axis1, int axis2, int axis3);

描述:对张量进行排列操作。

参数:

  • ctx:上下文指针
  • a:输入张量指针
  • axis0:第一个轴
  • axis1:第二个轴
  • axis2:第三个轴
  • axis3:第四个轴

返回值:排列操作的结果张量指针

ggml_transpose

代码语言:javascript
复制
struct ggml_tensor * ggml_transpose(struct ggml_context * ctx, struct ggml_tensor * a);

描述:对张量进行转置操作。

参数:

  • ctx:上下文指针
  • a:输入张量指针

返回值:转置操作的结果张量指针

ggml_get_rows

代码语言:javascript
复制
struct ggml_tensor * ggml_get_rows(struct ggml_context * ctx, struct ggml_tensor * a, struct ggml_tensor * b);

描述:从两个张量中获取行数据,返回一个新的张量。

参数:

  • ctx:上下文指针
  • a:第一个张量指针
  • b:第二个张量指针

返回值:获取行数据的结果张量指针

ggml_get_rows_back

代码语言:javascript
复制
struct ggml_tensor * ggml_get_rows_back(struct ggml_context * ctx, struct ggml_tensor * a, struct ggml_tensor * b, struct ggml_tensor * c);

描述:从三个张量中获取行数据的反向操作,返回一个新的张量。

参数:

  • ctx:上下文指针
  • a:第一个张量指针
  • b:第二个张量指针
  • c:第三个张量指针

返回值:获取行数据反向操作的结果张量指针

ggml_diag

代码语言:javascript
复制
struct ggml_tensor * ggml_diag(struct ggml_context * ctx, struct ggml_tensor * a);

描述:创建一个对角张量。

参数:

  • ctx:上下文指针
  • a:输入张量指针

返回值:对角张量指针

ggml_diag_mask_inf_impl

代码语言:javascript
复制
static struct ggml_tensor * ggml_diag_mask_inf_impl(struct ggml_context * ctx, struct ggml_tensor * a, int n_past, bool inplace);

描述:实现对输入张量进行对角线以下部分的掩码操作,将其设置为负无穷的内部函数。

参数:

  • ctx:上下文指针
  • a:输入张量指针
  • n_past:过去的时间步数
  • inplace:是否在原张量上进行操作

返回值:掩码操作的结果张量指针

ggml_diag_mask_inf

代码语言:javascript
复制
struct ggml_tensor * ggml_diag_mask_inf(struct ggml_context * ctx, struct ggml_tensor * a, int n_past);

描述:对输入张量进行对角线以下部分的掩码操作,将其设置为负无穷。

参数:

  • ctx:上下文指针
  • a:输入张量指针
  • n_past:过去的时间步数

返回值:掩码操作的结果张量指针

ggml_diag_mask_inf_inplace

代码语言:javascript
复制
struct ggml_tensor * ggml_diag_mask_inf_inplace(struct ggml_context * ctx, struct ggml_tensor * a, int n_past);

描述:对输入张量进行对角线以下部分的掩码操作,将其设置为负无穷,同时在原张量上进行操作。

参数:

  • ctx:上下文指针
  • a:输入张量指针
  • n_past:过去的时间步数

返回值:掩码操作的结果张量指针

ggml_diag_mask_zero_impl

代码语言:javascript
复制
static struct ggml_tensor * ggml_diag_mask_zero_impl(struct ggml_context * ctx, struct ggml_tensor * a, int n_past, bool inplace);

描述:实现对输入张量进行对角线以下部分的掩码操作,将其设置为零的内部函数。

参数:

  • ctx:上下文指针
  • a:输入张量指针
  • n_past:过去的时间步数
  • inplace:是否在原张量上进行操作

返回值:掩码操作的结果张量指针

ggml_diag_mask_zero

代码语言:javascript
复制
struct ggml_tensor * ggml_diag_mask_zero(struct ggml_context * ctx, struct ggml_tensor * a, int n_past);

描述:对输入张量进行对角线以下部分的掩码操作,将其设置为零。

参数:

  • ctx:上下文指针
  • a:输入张量指针
  • n_past:过去的时间步数

返回值:掩码操作的结果张量指针

ggml_diag_mask_zero_inplace

代码语言:javascript
复制
struct ggml_tensor * ggml_diag_mask_zero_inplace(struct ggml_context * ctx, struct ggml_tensor * a, int n_past);

描述:对输入张量进行对角线以下部分的掩码操作,将其设置为零,同时在原张量上进行操作。

参数:

  • ctx:上下文指针
  • a:输入张量指针
  • n_past:过去的时间步数

返回值:掩码操作的结果张量指针

ggml_soft_max_impl

代码语言:javascript
复制
static struct ggml_tensor * ggml_soft_max_impl(struct ggml_context * ctx, struct ggml_tensor * a, struct ggml_tensor * mask, float scale, bool inplace);

描述:实现 softmax 操作的内部函数。

参数:

  • ctx:上下文指针
  • a:输入张量指针
  • mask:掩码张量指针
  • scale:缩放因子
  • inplace:是否在原张量上进行操作

返回值:softmax 操作的结果张量指针

GGML_OP_SOFT_MAX

类型:枚举值

描述:表示softmax操作的枚举值。

GGML_OP_SOFT_MAX_BACK

类型:枚举值

描述:表示softmax反向传播操作的枚举值。

GGML_OP_ROPE

类型:枚举值

描述:表示rope操作的枚举值。

GGML_OP_ROPE_BACK

类型:枚举值

描述:表示rope反向传播操作的枚举值。

GGML_OP_ALIBI

类型:枚举值

描述:表示alibi操作的枚举值。

GGML_OP_CLAMP

类型:枚举值

描述:表示clamp操作的枚举值。

GGML_OP_CONV_TRANSPOSE_1D

类型:枚举值

描述:表示一维卷积转置操作的枚举值。

GGML_OP_IM2COL

类型:枚举值

描述:表示im2col操作的枚举值。

ggml_tensor

描述:表示张量的结构体,包含张量的操作类型、梯度信息、源张量等。

字段

类型

描述

op

枚举值

张量的操作类型

grad

ggml_tensor*

张量的梯度信息

src

ggml_tensor**

源张量

ggml_soft_max

代码语言:javascript
复制
struct ggml_tensor * ggml_soft_max(struct ggml_context * ctx, struct ggml_tensor  * a);

描述:对给定的张量进行softmax操作。

参数:

  • ctx:上下文结构体指针。
  • a:输入张量指针。

返回值:处理后的张量指针。

ggml_soft_max_inplace

代码语言:javascript
复制
struct ggml_tensor * ggml_soft_max_inplace(struct ggml_context * ctx, struct ggml_tensor  * a);

描述:对给定的张量进行原地softmax操作。

参数:

  • ctx:上下文结构体指针。
  • a:输入张量指针。

返回值:处理后的张量指针。

ggml_soft_max_ext

代码语言:javascript
复制
struct ggml_tensor * ggml_soft_max_ext(struct ggml_context * ctx, struct ggml_tensor  * a, struct ggml_tensor  * mask, float scale);

描述:对给定的张量进行扩展的softmax操作。

参数:

  • ctx:上下文结构体指针。
  • a:输入张量指针。
  • mask:掩码张量指针。
  • scale:缩放因子。

返回值:处理后的张量指针。

ggml_soft_max_back

代码语言:javascript
复制
struct ggml_tensor * ggml_soft_max_back(struct ggml_context * ctx, struct ggml_tensor  * a, struct ggml_tensor  * b);

描述:实现softmax反向传播的函数。

参数:

  • ctx:上下文结构体指针。
  • a:输入张量指针。
  • b:输入张量指针。

返回值:处理后的张量指针。

ggml_soft_max_back_inplace

代码语言:javascript
复制
struct ggml_tensor * ggml_soft_max_back_inplace(struct ggml_context * ctx, struct ggml_tensor  * a, struct ggml_tensor  * b);

描述:实现softmax反向传播的原地操作。

参数:

  • ctx:上下文结构体指针。
  • a:输入张量指针。
  • b:输入张量指针。

返回值:处理后的张量指针。

ggml_rope

代码语言:javascript
复制
struct ggml_tensor * ggml_rope(struct ggml_context * ctx, struct ggml_tensor  * a, struct ggml_tensor  * b, int n_dims, int mode, int n_ctx);

描述:对给定的张量进行rope操作。

参数:

  • ctx:上下文结构体指针。
  • a:输入张量指针。
  • b:输入张量指针。
  • n_dims:张量维度。
  • mode:模式。
  • n_ctx:上下文数量。

返回值:处理后的张量指针。

ggml_rope_inplace

代码语言:javascript
复制
struct ggml_tensor * ggml_rope_inplace(struct ggml_context * ctx, struct ggml_tensor  * a, struct ggml_tensor  * b, int n_dims, int mode, int n_ctx);

描述:对给定的张量进行原地rope操作。

参数:

  • ctx:上下文结构体指针。
  • a:输入张量指针。
  • b:输入张量指针。
  • n_dims:张量维度。
  • mode:模式。
  • n_ctx:上下文数量。

返回值:处理后的张量指针。

ggml_rope_custom

代码语言:javascript
复制
struct ggml_tensor * ggml_rope_custom(struct ggml_context * ctx, struct ggml_tensor  * a, struct ggml_tensor  * b, int n_dims, int mode, int n_ctx, int n_orig_ctx, float freq_base, float freq_scale, float ext_factor, float attn_factor, float beta_fast, float beta_slow);

描述:对给定的张量进行自定义rope操作。

参数:

  • ctx:上下文结构体指针。
  • a:输入张量指针。
  • b:输入张量指针。
  • n_dims:张量维度。
  • mode:模式。
  • n_ctx:上下文数量。
  • n_orig_ctx:原始上下文数量。
  • freq_base:频率基数。
  • freq_scale:频率比例。
  • ext_factor:扩展因子。
  • attn_factor:注意力因子。
  • beta_fast:快速beta。
  • beta_slow:慢速beta。

返回值:处理后的张量指针。

ggml_rope_custom_inplace

代码语言:javascript
复制
struct ggml_tensor * ggml_rope_custom_inplace(struct ggml_context * ctx, struct ggml_tensor  * a, struct ggml_tensor  * b, int n_dims, int mode, int n_ctx, int n_orig_ctx, float freq_base, float freq_scale, float ext_factor, float attn_factor, float beta_fast, float beta_slow);

描述:对给定的张量进行原地自定义rope操作。

参数:

  • ctx:上下文结构体指针。
  • a:输入张量指针。
  • b:输入张量指针。
  • n_dims:张量维度。
  • mode:模式。
  • n_ctx:上下文数量。
  • n_orig_ctx:原始上下文数量。
  • freq_base:频率基数。
  • freq_scale:频率比例。
  • ext_factor:扩展因子。
  • attn_factor:注意力因子。
  • beta_fast:快速beta。
  • beta_slow:慢速beta。

返回值:处理后的张量指针。

ggml_rope_xpos_inplace

代码语言:javascript
复制
struct ggml_tensor * ggml_rope_xpos_inplace(struct ggml_context * ctx, struct ggml_tensor  * a, struct ggml_tensor  * b, int n_dims, float base, bool down);

描述:对给定的张量进行原地xpos操作。

参数:

  • ctx:上下文结构体指针。
  • a:输入张量指针。
  • b:输入张量指针。
  • n_dims:张量维度。
  • base:基数。
  • down:是否向下。

返回值:处理后的张量指针。

ggml_rope_back

代码语言:javascript
复制
struct ggml_tensor * ggml_rope_back(struct ggml_context * ctx, struct ggml_tensor  * a, struct ggml_tensor  * b, int n_dims, int mode, int n_ctx, int n_orig_ctx, float freq_base, float freq_scale, float ext_factor, float attn_factor, float beta_fast, float beta_slow, float xpos_base, bool xpos_down);

描述:实现rope反向传播的函数。

参数:

  • ctx:上下文结构体指针。
  • a:输入张量指针。
  • b:输入张量指针。
  • n_dims:张量维度。
  • mode:模式。
  • n_ctx:上下文数量。
  • n_orig_ctx:原始上下文数量。
  • freq_base:频率基数。
  • freq_scale:频率比例。
  • ext_factor:扩展因子。
  • attn_factor:注意力因子。
  • beta_fast:快速beta。
  • beta_slow:慢速beta。
  • xpos_base:xpos基数。
  • xpos_down:xpos是否向下。

返回值:处理后的张量指针。

ggml_alibi

代码语言:javascript
复制
struct ggml_tensor * ggml_alibi(struct ggml_context * ctx, struct ggml_tensor  * a, int n_past, int n_head, float bias_max);

描述:实现alibi操作的函数。

参数:

  • ctx:上下文结构体指针。
  • a:输入张量指针。
  • n_past:过去的时间步数。
  • n_head:头数。
  • bias_max:最大偏置。

返回值:处理后的张量指针。

ggml_clamp

代码语言:javascript
复制
struct ggml_tensor * ggml_clamp(struct ggml_context * ctx, struct ggml_tensor  * a, float min, float max);

描述:实现clamp操作的函数。

参数:

  • ctx:上下文结构体指针。
  • a:输入张量指针。
  • min:最小值。
  • max:最大值。

返回值:处理后的张量指针。

ggml_conv_1d

代码语言:javascript
复制
struct ggml_tensor * ggml_conv_1d(struct ggml_context * ctx, struct ggml_tensor  * a, struct ggml_tensor  * b, int s0, int p0, int d0);

描述:实现一维卷积操作的函数。

参数:

  • ctx:上下文结构体指针。
  • a:输入张量指针。
  • b:卷积核张量指针。
  • s0:步长。
  • p0:填充。
  • d0:膨胀。

返回值:处理后的张量指针。

ggml_conv_1d_ph

代码语言:javascript
复制
struct ggml_tensor * ggml_conv_1d_ph(struct ggml_context * ctx, struct ggml_tensor  * a, struct ggml_tensor  * b, int s, int d);

描述:实现一维卷积操作的函数,带有填充和膨胀参数。

参数:

  • ctx:上下文结构体指针。
  • a:输入张量指针。
  • b:卷积核张量指针。
  • s:步长。
  • d:膨胀。

返回值:处理后的张量指针。

ggml_conv_transpose_1d

代码语言:javascript
复制
struct ggml_tensor * ggml_conv_transpose_1d(struct ggml_context * ctx, struct ggml_tensor  * a, struct ggml_tensor  * b, int s0, int p0, int d0);

描述:实现一维卷积转置操作的函数。

参数:

  • ctx:上下文结构体指针。
  • a:输入张量指针。
  • b:卷积核张量指针。
  • s0:步长。
  • p0:填充。
  • d0:膨胀。

返回值:处理后的张量指针。

ggml_conv_2d

代码语言:javascript
复制
struct ggml_tensor * ggml_conv_2d(struct ggml_context * ctx, struct ggml_tensor  * a, struct ggml_tensor  * b, int s0, int s1, int p0, int p1);

描述:实现二维卷积操作的函数。

参数:

  • ctx:上下文结构体指针。
  • a:输入张量指针。
  • b:卷积核张量指针。
  • s0:步长。
  • s1:步长。
  • p0:填充。
  • p1:填充。

返回值:处理后的张量指针。

ggml_im2col

代码语言:javascript
复制
struct ggml_tensor * ggml_im2col(struct ggml_context * ctx, struct ggml_tensor  * a, struct ggml_tensor  * b, int s0, int s1, int p0, int p1, int d0, int d1, bool is_2D);

描述:实现im2col操作的函数。

参数:

  • ctx:上下文结构体指针。
  • a:输入张量指针。
  • b:卷积核张量指针。
  • s0:步长。
  • s1:步长。
  • p0:填充。
  • p1:填充。
  • d0:膨胀。
  • d1:膨胀。
  • is_2D:是否为二维数据。

返回值:处理后的张量指针。

以上是对给定代码段中的常量、结构体、公开函数的提取和总结。

ggml_conv_2d

代码语言:javascript
复制
struct ggml_tensor * ggml_conv_2d(
        struct ggml_context * ctx,
        struct ggml_tensor  * a,
        struct ggml_tensor  * b,
        int                   s0,
        int                   s1,
        int                   p0,
        int                   p1,
        int                   d0,
        int                   d1);

描述: 实现二维卷积操作。

参数:

  • ctx: 上下文指针。
  • a: 输入张量。
  • b: 卷积核张量。
  • s0, s1: 步长。
  • p0, p1: 填充。
  • d0, d1: 膨胀。

返回值: 卷积结果张量。

ggml_conv_2d_sk_p0

代码语言:javascript
复制
struct ggml_tensor * ggml_conv_2d_sk_p0(
        struct ggml_context * ctx,
        struct ggml_tensor  * a,
        struct ggml_tensor  * b);

描述: 实现带有默认填充的二维卷积操作。

参数:

  • ctx: 上下文指针。
  • a: 输入张量。
  • b: 卷积核张量。

返回值: 卷积结果张量。

ggml_conv_2d_s1_ph

代码语言:javascript
复制
struct ggml_tensor * ggml_conv_2d_s1_ph(
        struct ggml_context * ctx,
        struct ggml_tensor  * a,
        struct ggml_tensor  * b);

描述: 实现带有默认步长和自动填充的二维卷积操作。

参数:

  • ctx: 上下文指针。
  • a: 输入张量。
  • b: 卷积核张量。

返回值: 卷积结果张量。

ggml_conv_transpose_2d_p0

代码语言:javascript
复制
struct ggml_tensor * ggml_conv_transpose_2d_p0(
        struct ggml_context * ctx,
        struct ggml_tensor  * a,
        struct ggml_tensor  * b,
        int                   stride);

描述: 实现带有默认填充的二维转置卷积操作。

参数:

  • ctx: 上下文指针。
  • a: 输入张量。
  • b: 卷积核张量。
  • stride: 步长。

返回值: 转置卷积结果张量。

ggml_pool_1d

代码语言:javascript
复制
struct ggml_tensor * ggml_pool_1d(
        struct ggml_context * ctx,
        struct ggml_tensor  * a,
        enum ggml_op_pool     op,
        int                   k0,
        int                   s0,
        int                   p0);

描述: 对输入的一维张量进行池化操作。

参数:

  • ctx: 上下文指针。
  • a: 输入张量。
  • op: 池化操作类型。
  • k0: 池化核大小。
  • s0: 步长。
  • p0: 填充。

返回值: 池化结果张量。

ggml_pool_2d

代码语言:javascript
复制
struct ggml_tensor * ggml_pool_2d(
        struct ggml_context * ctx,
        struct ggml_tensor  * a,
        enum ggml_op_pool     op,
        int                   k0,
        int                   k1,
        int                   s0,
        int                   s1,
        float                 p0,
        float                 p1);

描述: 对输入的二维张量进行池化操作。

参数:

  • ctx: 上下文指针。
  • a: 输入张量。
  • op: 池化操作类型。
  • k0, k1: 池化核大小。
  • s0, s1: 步长。
  • p0, p1: 填充。

返回值: 池化结果张量。

ggml_upscale_impl

代码语言:javascript
复制
static struct ggml_tensor * ggml_upscale_impl(
    struct ggml_context * ctx,
    struct ggml_tensor * a,
    int scale_factor);

描述: 实现对输入张量进行上采样操作。

参数:

  • ctx: 上下文指针。
  • a: 输入张量。
  • scale_factor: 缩放因子。

返回值: 上采样结果张量。

ggml_pad

代码语言:javascript
复制
struct ggml_tensor * ggml_pad(
    struct ggml_context * ctx,
    struct ggml_tensor  * a,
    int p0, int p1, int p2, int p3);

描述: 对输入张量进行填充操作。

参数:

  • ctx: 上下文指针。
  • a: 输入张量。
  • p0, p1, p2, p3: 填充大小。

返回值: 填充结果张量。

ggml_upscale

代码语言:javascript
复制
struct ggml_tensor * ggml_upscale(
    struct ggml_context * ctx,
    struct ggml_tensor * a,
    int scale_factor);

描述: 对输入张量进行上采样操作。

参数:

  • ctx: 上下文指针。
  • a: 输入张量。
  • scale_factor: 缩放因子。

返回值: 上采样结果张量。

ggml_argsort

代码语言:javascript
复制
struct ggml_tensor * ggml_argsort(
        struct ggml_context * ctx,
        struct ggml_tensor  * a,
        enum ggml_sort_order  order);

描述: 对输入张量进行排序操作。

参数:

  • ctx: 上下文指针。
  • a: 输入张量。
  • order: 排序顺序。

返回值: 排序结果张量。

ggml_top_k

代码语言:javascript
复制
struct ggml_tensor * ggml_top_k(
        struct ggml_context * ctx,
        struct ggml_tensor  * a,
        int                   k);

描述: 返回输入张量中前 k 个最大值的张量。

参数:

  • ctx: 上下文指针。
  • a: 输入张量。
  • k: 要返回的元素数量。

返回值: 前 k 个最大值的张量。

ggml_flash_attn

代码语言:javascript
复制
struct ggml_tensor * ggml_flash_attn(
        struct ggml_context * ctx,
        struct ggml_tensor  * q,
        struct ggml_tensor  * k,
        struct ggml_tensor  * v,
        bool                  masked);

描述: 计算注意力机制的输出张量。

参数:

  • ctx: 上下文指针。
  • q: 查询张量。
  • k: 键张量。
  • v: 值张量。
  • masked: 是否使用掩码。

返回值: 注意力机制输出张量。

ggml_flash_ff

代码语言:javascript
复制
struct ggml_tensor * ggml_flash_ff(
        struct ggml_context * ctx,
        struct ggml_tensor  * a,
        struct ggml_tensor  * b0,
        struct ggml_tensor  * b1,
        struct ggml_tensor  * c0,
        struct ggml_tensor  * c1);

描述: 计算前馈神经网络的输出张量。

参数:

  • ctx: 上下文指针。
  • a: 输入张量。
  • b0, b1: 权重张量。
  • c0, c1: 偏置张量。

返回值: 前馈神经网络输出张量。

ggml_flash_attn_back

代码语言:javascript
复制
struct ggml_tensor * ggml_flash_attn_back(
        struct ggml_context * ctx,
        struct ggml_tensor  * q,
        struct ggml_tensor  * k,
        struct ggml_tensor  * v,
        struct ggml_tensor  * d,
        bool                  masked);

描述: 计算注意力机制的反向传播输出张量。

参数:

  • ctx: 上下文指针。
  • q: 查询张量。
  • k: 键张量。
  • v: 值张量。
  • d: 输入张量。
  • masked: 是否使用掩码。

返回值: 注意力机制反向传播输出张量。

ggml_win_part

代码语言:javascript
复制
struct ggml_tensor * ggml_win_part(
        struct ggml_context * ctx,
        struct ggml_tensor  * a,
        int                   w);

描述: 对输入张量进行窗口划分操作。

参数:

  • ctx: 上下文指针。
  • a: 输入张量。
  • w: 窗口大小。

返回值: 窗口划分结果张量。

ggml_win_unpart

代码语言:javascript
复制
struct ggml_tensor * ggml_win_unpart(
        struct ggml_context * ctx,
        struct ggml_tensor  * a,
        int                   w0,
        int                   h0,
        int                   w);

描述: 对输入张量进行窗口反划分操作。

参数:

  • ctx: 上下文指针。
  • a: 输入张量。
  • w0, h0: 窗口大小。
  • w: 窗口大小。

返回值: 窗口反划分结果张量。

以上是根据提供的代码段提取的常量、结构体和公开函数。由于代码段中没有定义任何常量或结构体,因此这部分为空。所有公开函数都已列出,并附有其描述、参数和返回值。

GGML_TYPE_F32

类型:枚举

描述:表示32位浮点数类型。

GGML_TYPE_F16

类型:枚举

描述:表示16位浮点数类型。

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

代码语言:javascript
复制
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

代码语言:javascript
复制
void ggml_set_op_params(struct ggml_tensor * tensor, const void * params, size_t params_size);

描述:设置张量的操作参数。

参数:

  • tensor:目标张量。
  • params:操作参数。
  • params_size:操作参数的大小。

ggml_dup_tensor

代码语言:javascript
复制
struct ggml_tensor * ggml_dup_tensor(struct ggml_context * ctx, struct ggml_tensor * src);

描述:复制一个张量。

参数:

  • ctx:上下文指针。
  • src:源张量。

返回值:复制后的张量。

ggml_view_tensor

代码语言:javascript
复制
struct ggml_tensor * ggml_view_tensor(struct ggml_context * ctx, struct ggml_tensor * src);

描述:创建一个张量的视图。

参数:

  • ctx:上下文指针。
  • src:源张量。

返回值:视图张量。

ggml_get_rel_pos

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
struct ggml_tensor * ggml_unary(struct ggml_context * ctx, struct ggml_tensor * a, enum ggml_unary_op op);

描述:执行一元操作。

参数:

  • ctx:上下文指针。
  • a:输入张量。
  • op:一元操作类型。

返回值:新的张量。

ggml_unary_inplace

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
void ggml_set_param(
        struct ggml_context * ctx,
        struct ggml_tensor * tensor)

描述:设置张量为参数的函数,标记张量为参数并为其分配梯度张量。

参数:

  • ctx:ggml上下文指针
  • tensor:要设置为参数的张量

返回值:无

ggml_compute_forward_dup_same_cont

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
void ggml_vec_silu_f32(int nc, float *dst, float *src);

描述:对F32类型的向量进行SiLU(Sigmoid Linear Unit)激活函数处理。

参数:

  • nc:向量的长度。
  • dst:输出向量的指针。
  • src:输入向量的指针。

ggml_vec_leaky_relu_f32

代码语言:javascript
复制
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

代码语言:javascript
复制
void ggml_vec_silu_backward_f32(int nc, float *dst, float *src, float *grad);

描述:对F32类型的向量进行SiLU激活函数的反向传播计算。

参数:

  • nc:向量的长度。
  • dst:输出梯度的指针。
  • src:输入向量的指针。
  • grad:输入梯度的指针。

ggml_vec_scale_f32

代码语言:javascript
复制
void ggml_vec_scale_f32(int ne00, float *y, float scale);

描述:对F32类型的向量进行缩放操作。

参数:

  • ne00:向量的长度。
  • y:待缩放的向量的指针。
  • scale:缩放因子。

ggml_compute_forward_silu

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
void ggml_compute_forward_cpy(
    const struct ggml_compute_params * params,
    const struct ggml_tensor * src0,
    struct ggml_tensor * dst);

描述:根据输入参数和张量进行复制操作。

ggml_compute_forward_cont

代码语言:javascript
复制
void ggml_compute_forward_cont(
    const struct ggml_compute_params * params,
    const struct ggml_tensor * src0,
    struct ggml_tensor * dst);

描述:根据输入参数和张量进行复制操作。

ggml_compute_forward_reshape

代码语言:javascript
复制
void ggml_compute_forward_reshape(
    const struct ggml_compute_params * params,
    const struct ggml_tensor * src0,
    struct ggml_tensor * dst);

描述:根据输入参数和张量进行重塑操作。

ggml_compute_forward_view

代码语言:javascript
复制
void ggml_compute_forward_view(
    const struct ggml_compute_params * params,
    const struct ggml_tensor * src0);

描述:根据输入参数和张量进行视图操作。

ggml_compute_forward_permute

代码语言:javascript
复制
void ggml_compute_forward_permute(
    const struct ggml_compute_params * params,
    const struct ggml_tensor * src0);

描述:根据输入参数和张量进行排列操作。

ggml_compute_forward_transpose

代码语言:javascript
复制
void ggml_compute_forward_transpose(
    const struct ggml_compute_params * params,
    const struct ggml_tensor * src0);

描述:定义一个静态函数,用于计算转置操作。

ggml_compute_forward_get_rows_q

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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_compute_forward_get_rows_back

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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
代码语言:javascript
复制
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
代码语言:javascript
复制
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
代码语言:javascript
复制
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
代码语言:javascript
复制
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

代码语言:javascript
复制
static float rope_yarn_ramp(const float low, const float high, const int i0)

描述:计算绳索的斜率。

参数:

  • low:低值
  • high:高值
  • i0:索引

返回值:斜率的值

rope_yarn

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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
代码语言:javascript
复制
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
代码语言:javascript
复制
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
代码语言:javascript
复制
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
代码语言:javascript
复制
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
代码语言:javascript
复制
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
代码语言:javascript
复制
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
代码语言:javascript
复制
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
代码语言:javascript
复制
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
代码语言:javascript
复制
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
代码语言:javascript
复制
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
代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
void ggml_compute_forward(struct ggml_compute_params * params, struct ggml_tensor * tensor);

描述:执行张量的前向计算。

参数:

  • params:指向计算参数结构体的指针
  • tensor:指向要计算的张量的指针

返回值:无

ggml_hash_size

代码语言:javascript
复制
size_t ggml_hash_size(size_t min_sz);

描述:计算大于等于给定最小值的最小素数。

参数:

  • min_sz:给定的最小值

返回值:大于等于给定最小值的最小素数

ggml_hash

代码语言:javascript
复制
size_t ggml_hash(const void * p);

描述:计算哈希值。

参数:

  • p:要计算哈希值的指针

返回值:哈希值

ggml_hash_find

代码语言:javascript
复制
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

代码语言:javascript
复制
bool ggml_hash_contains(struct ggml_hash_set hash_set, struct ggml_tensor * key);

描述:检查哈希表中是否包含指定元素。

参数:

  • hash_set:哈希集合
  • key:要检查的键

返回值:如果包含则返回true,否则返回false

ggml_hash_insert

代码语言:javascript
复制
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

代码语言:javascript
复制
size_t ggml_hash_find_or_insert(struct ggml_hash_set hash_set, struct ggml_tensor * key);

描述:在哈希集合中查找给定键的索引,如果不存在则插入并返回索引。

参数:

  • hash_set:哈希集合
  • key:要查找或插入的键

返回值:键的索引

ggml_hash_set_new

代码语言:javascript
复制
struct ggml_hash_set ggml_hash_set_new(size_t size);

描述:创建新的哈希集合。

参数:

  • size:哈希集合的大小

返回值:新创建的哈希集合

ggml_hash_set_free

代码语言:javascript
复制
void ggml_hash_set_free(struct ggml_hash_set hash_set);

描述:释放哈希集合占用的内存。

参数:

  • hash_set:要释放的哈希集合

返回值:无

ggml_new_hash_map

代码语言:javascript
复制
struct hash_map * ggml_new_hash_map(size_t size);

描述:创建新的哈希映射。

参数:

  • size:哈希映射的大小

返回值:新创建的哈希映射

ggml_hash_map_free

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
static void ggml_compute_backward(struct ggml_context * ctx, struct ggml_tensor * tensor, struct ggml_hash_set zero_table)

描述:计算反向传播,检查梯度是否与张量的形状相同。

ggml_visit_parents

代码语言:javascript
复制
static void ggml_visit_parents(struct ggml_cgraph * cgraph, struct ggml_tensor * node)

描述:访问父节点,构建计算图的前向传播。

ggml_build_forward_impl

代码语言:javascript
复制
static void ggml_build_forward_impl(struct ggml_cgraph * cgraph, struct ggml_tensor * tensor, bool expand)

描述:构建前向传播的实现,接受计算图和张量作为参数。

ggml_build_forward_expand

代码语言:javascript
复制
void ggml_build_forward_expand(struct ggml_cgraph * cgraph, struct ggml_tensor * tensor)

描述:构建前向传播的函数,接受计算图和张量作为参数。

ggml_build_backward_expand

代码语言:javascript
复制
void ggml_build_backward_expand(struct ggml_context * ctx, struct ggml_cgraph * gf, struct ggml_cgraph * gb, bool keep)

描述:构建反向传播的函数,接受上下文、梯度图、反向梯度图和是否保留梯度的标志作为参数。

ggml_graph_nbytes

代码语言:javascript
复制
static size_t ggml_graph_nbytes(size_t size, bool grads)

描述:计算图占用的内存大小。

ggml_graph_overhead_custom

代码语言:javascript
复制
size_t ggml_graph_overhead_custom(size_t size, bool grads)

描述:计算图对象的额外开销,包括对象大小和内存对齐。

ggml_graph_overhead

代码语言:javascript
复制
size_t ggml_graph_overhead(void)

描述:计算图对象的额外开销,默认不包括梯度。

ggml_new_graph_custom

代码语言:javascript
复制
struct ggml_cgraph * ggml_new_graph_custom(struct ggml_context * ctx, size_t size, bool grads)

描述:创建自定义大小的计算图对象。

ggml_new_graph

代码语言:javascript
复制
struct ggml_cgraph * ggml_new_graph(struct ggml_context * ctx)

描述:创建默认大小的计算图对象。

ggml_graph_view

代码语言:javascript
复制
struct ggml_cgraph ggml_graph_view(struct ggml_cgraph * cgraph0, int i0, int i1)

描述:创建计算图对象的视图。

ggml_graph_cpy

代码语言:javascript
复制
void ggml_graph_cpy(struct ggml_cgraph * src, struct ggml_cgraph * dst)

描述:复制一个图结构,将源图结构的内容复制到目标图结构中。

ggml_graph_dup

代码语言:javascript
复制
struct ggml_cgraph * ggml_graph_dup(struct ggml_context * ctx, struct ggml_cgraph * cgraph)

描述:复制一个图结构,并返回复制后的图结构指针。

ggml_graph_reset

代码语言:javascript
复制
void ggml_graph_reset(struct ggml_cgraph * cgraph)

描述:重置图结构的梯度为零。

ggml_graph_clear

代码语言:javascript
复制
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

代码语言:javascript
复制
void ggml_graph_clear(struct ggml_cgraph * cgraph)

描述:清除计算图。

参数:

  • cgraph:指向计算图的指针。

ggml_graph_compute_thread

代码语言:javascript
复制
thread_ret_t ggml_graph_compute_thread(void * data)

描述:计算线程函数。

参数:

  • data:指向计算状态的指针。

返回值:线程退出状态。

ggml_graph_plan

代码语言:javascript
复制
struct ggml_cplan ggml_graph_plan(struct ggml_cgraph * cgraph, int n_threads)

描述:为图计划分配线程。

参数:

  • cgraph:指向计算图的指针。
  • n_threads:线程数。

返回值:图计划结构体。

ggml_graph_compute

代码语言:javascript
复制
int ggml_graph_compute(struct ggml_cgraph * cgraph, struct ggml_cplan * cplan)

描述:计算图的计算函数。

参数:

  • cgraph:指向计算图的指针。
  • cplan:指向计算计划的指针。

返回值:图计算的状态。

ggml_graph_compute_with_ctx

代码语言:javascript
复制
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

代码语言:javascript
复制
struct ggml_tensor * ggml_graph_get_tensor(struct ggml_cgraph * cgraph, const char * name)

描述:获取计算图中指定名称的张量。

参数:

  • cgraph:指向计算图的指针。
  • name:张量的名称。

返回值:指向张量的指针,如果未找到则返回 NULL。

ggml_graph_export_leaf

代码语言:javascript
复制
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

代码语言:javascript
复制
void ggml_graph_export(const struct ggml_cgraph * cgraph, const char * fname);

描述:导出计算图到文件的函数。

参数:

  • cgraph:指向计算图的指针。
  • fname:文件名。

返回值:无。

ggml_graph_import

代码语言:javascript
复制
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

代码语言:javascript
复制
void ggml_graph_print(const struct ggml_cgraph * cgraph);

描述:打印计算图信息的函数。

参数:

  • cgraph:指向计算图的指针。

返回值:无。

ggml_graph_dump_dot

代码语言:javascript
复制
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

代码语言:javascript
复制
static void ggml_opt_set_params(int np, struct ggml_tensor * const ps[], const float * x);

描述:设置参数的优化器函数,将参数数组中的值设置到对应的张量中。

参数:

  • np:参数的数量。
  • ps:指向参数张量的数组。
  • x:指向参数值数组的指针。

返回值:无。

ggml_opt_get_params

代码语言:javascript
复制
static void ggml_opt_get_params(int np, struct ggml_tensor * const ps[], float * x);

描述:获取参数的优化器函数,将张量中的值获取到参数数组中。

参数:

  • np:参数的数量。
  • ps:指向参数张量的数组。
  • x:指向参数值数组的指针。

返回值:无。

ggml_opt_get_grad

代码语言:javascript
复制
static void ggml_opt_get_grad(int np, struct ggml_tensor * const ps[], float * g);

描述:获取梯度的优化器函数,将张量中的梯度值获取到梯度数组中。

参数:

  • np:参数的数量。
  • ps:指向参数张量的数组。
  • g:指向梯度值数组的指针。

返回值:无。

ggml_opt_acc_grad

代码语言:javascript
复制
static void ggml_opt_acc_grad(int np, struct ggml_tensor * const ps[], float * g, float scale);

描述:累积梯度的优化器函数,将张量中的梯度值乘以比例后累积到梯度数组中。

参数:

  • np:参数的数量。
  • ps:指向参数张量的数组。
  • g:指向梯度值数组的指针。
  • scale:累积梯度时的比例因子。

返回值:无。

ggml_opt_adam

代码语言:javascript
复制
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

代码语言:javascript
复制
bool ggml_is_scalar(struct ggml_tensor * f);

描述:检查给定的张量是否为标量。

ggml_nelements

代码语言:javascript
复制
int64_t ggml_nelements(struct ggml_tensor * f);

描述:计算给定张量中的元素数量。

ggml_opt_init

代码语言:javascript
复制
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

代码语言:javascript
复制
struct ggml_cplan ggml_graph_plan(struct ggml_cgraph * gb, int n_threads);

描述:为计算图创建计算计划。

参数:

  • gb:反向传播计算图。
  • n_threads:线程数量。

ggml_new_object

代码语言:javascript
复制
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

代码语言:javascript
复制
void ggml_set_zero(struct ggml_tensor * t);

描述:将张量设置为零。

ggml_graph_compute

代码语言:javascript
复制
void ggml_graph_compute(struct ggml_cgraph * gb, struct ggml_cplan * cplan);

描述:执行计算图的计算。

参数:

  • gb:计算图。
  • cplan:计算计划。

ggml_opt_acc_grad

代码语言:javascript
复制
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

代码语言:javascript
复制
float ggml_get_f32_1d(struct ggml_tensor * t, int i);

描述:获取一维张量的元素值。

参数:

  • t:张量。
  • i:索引。

ggml_vec_dot_f32

代码语言:javascript
复制
void ggml_vec_dot_f32(int n, float * result, const float * a, const float * b);

描述:计算两个向量的点积。

参数:

  • n:向量长度。
  • result:结果指针。
  • a:第一个向量。
  • b:第二个向量。

ggml_vec_norm_f32

代码语言:javascript
复制
void ggml_vec_norm_f32(int n, float * result, const float * v);

描述:计算向量的范数。

参数:

  • n:向量长度。
  • result:结果指针。
  • v:向量。

ggml_vec_norm_inv_f32

代码语言:javascript
复制
void ggml_vec_norm_inv_f32(int n, float * result, const float * v);

描述:计算向量范数的倒数。

参数:

  • n:向量长度。
  • result:结果指针。
  • v:向量。

ggml_vec_neg_f32

代码语言:javascript
复制
void ggml_vec_neg_f32(int n, float * result, const float * v);

描述:计算向量的负值。

参数:

  • n:向量长度。
  • result:结果指针。
  • v:向量。

ggml_opt_default_params

代码语言:javascript
复制
struct ggml_opt_params ggml_opt_default_params(enum ggml_opt_type type);

描述:返回默认的优化参数结构体,根据不同的优化类型。

参数:

  • type:优化类型。

ggml_opt

代码语言:javascript
复制
enum ggml_opt_result ggml_opt(struct ggml_context * ctx, struct ggml_opt_params params, struct ggml_tensor * f);

描述:执行优化函数。

参数:

  • ctx:上下文指针。
  • params:优化参数。
  • f:目标函数张量。

ggml_opt_resume

代码语言:javascript
复制
enum ggml_opt_result ggml_opt_resume(struct ggml_context * ctx, struct ggml_opt_context * opt, struct ggml_tensor * f);

描述:恢复优化过程,构建前向和后向计算图。

参数:

  • ctx:上下文指针。
  • opt:优化器上下文指针。
  • f:目标函数张量。

ggml_opt_resume_g

代码语言:javascript
复制
enum ggml_opt_result ggml_opt_resume_g(struct ggml_context * ctx, struct ggml_opt_context * opt, struct ggml_tensor * f, struct ggml_cgraph * gf, struct ggml_cgraph * gb, ggml_opt_callback callback, void * callback_data);

描述:恢复优化过程,构建前向和后向计算图,并执行优化。

参数:

  • ctx:上下文指针。
  • opt:优化器上下文指针。
  • f:目标函数张量。
  • gf:前向传播计算图。
  • gb:反向传播计算图。
  • callback:优化回调函数。
  • callback_data:回调函数数据。

请注意,上述函数和结构体的描述是基于提供的代码片段提取的,可能不包含所有细节,且可能需要根据完整的代码库进行调整。

QK4_0

类型:未定义

描述:用于量化函数中的块大小,确保k是QK4_0的整数倍。

QK4_1

类型:未定义

描述:用于量化函数中的块大小,确保k是QK4_1的整数倍。

QK5_0

类型:未定义

描述:用于量化函数中的块大小,确保k是QK5_0的整数倍。

QK5_1

类型:未定义

描述:用于量化函数中的块大小,确保k是QK5_1的整数倍。

QK8_0

类型:未定义

描述:用于量化函数中的块大小,确保k是QK8_0的整数倍。

GGUF_MAGIC

类型:字符数组

描述:GGUF文件的魔数,用于识别文件格式。

GGUF_VERSION

类型:未定义

描述:GGUF文件的版本号。

GGUF_DEFAULT_ALIGNMENT

类型:未定义

描述:GGUF文件的默认对齐方式。

gguf_str

描述:用于存储字符串的结构体。

字段

类型

描述

n

uint64_t

字符串长度

data

char*

字符串数据

gguf_value

描述:联合体,用于存储不同类型的值。

字段

类型

描述

uint8

uint8_t

8位无符号整数

int8

int8_t

8位有符号整数

uint16

uint16_t

16位无符号整数

int16

int16_t

16位有符号整数

uint32

uint32_t

32位无符号整数

int32

int32_t

32位有符号整数

float32

float

32位浮点数

uint64

uint64_t

64位无符号整数

int64

int64_t

64位有符号整数

float64

double

64位浮点数

bool_

bool

布尔值

str

struct gguf_str

字符串结构体

arr

struct

包含类型、数量和数据的结构体

gguf_kv

描述:键值对结构体。

字段

类型

描述

key

struct gguf_str

type

enum gguf_type

类型

value

union gguf_value

gguf_header

描述:GGUF文件头部结构体。

字段

类型

描述

magic

char[4]

魔数

version

uint32_t

版本号

n_tensors

uint64_t

张量数量

n_kv

uint64_t

键值对数量

gguf_tensor_info

描述:张量信息结构体。

字段

类型

描述

name

struct gguf_str

名称

n_dims

uint32_t

维度数量

ne

uint64_t[GGML_MAX_DIMS]

每个维度的元素数量

type

enum ggml_type

类型

offset

uint64_t

偏移量

data

const void*

数据

size

size_t

大小

gguf_context

描述:GGUF上下文结构体。

字段

类型

描述

header

struct gguf_header

头部信息

kv

struct gguf_kv*

键值对数组

infos

struct gguf_tensor_info*

张量信息数组

alignment

size_t

对齐

offset

size_t

偏移量

size

size_t

大小

data

void*

数据

ggml_opt_adam

代码语言:javascript
复制
enum ggml_opt_result ggml_opt_adam(struct ggml_context * ctx, struct ggml_opt * opt, struct ggml_opt_params * params, struct ggml_cgraph * f, struct ggml_cgraph * gf, struct ggml_cgraph * gb, ggml_opt_callback callback, void * callback_data)

描述:实现Adam优化算法。

参数:

  • ctx:ggml_context指针。
  • opt:ggml_opt指针。
  • params:ggml_opt_params指针。
  • f:ggml_cgraph指针。
  • gf:ggml_cgraph指针。
  • gb:ggml_cgraph指针。
  • callback:ggml_opt_callback函数指针。
  • callback_data:回调数据。

返回值:ggml_opt_result枚举值。

ggml_opt_lbfgs

代码语言:javascript
复制
enum ggml_opt_result ggml_opt_lbfgs(struct ggml_context * ctx, struct ggml_opt * opt, struct ggml_opt_params * params, struct ggml_cgraph * f, struct ggml_cgraph * gf, struct ggml_cgraph * gb, ggml_opt_callback callback, void * callback_data)

描述:实现LBFGS优化算法。

参数:

  • ctx:ggml_context指针。
  • opt:ggml_opt指针。
  • params:ggml_opt_params指针。
  • f:ggml_cgraph指针。
  • gf:ggml_cgraph指针。
  • gb:ggml_cgraph指针。
  • callback:ggml_opt_callback函数指针。
  • callback_data:回调数据。

返回值:ggml_opt_result枚举值。

ggml_quantize_q4_0

代码语言:javascript
复制
size_t ggml_quantize_q4_0(const float * src, void * dst, int n, int k, int64_t * hist)

描述:将浮点数数组量化为Q4_0类型的数据。

参数:

  • src:源浮点数数组。
  • dst:目标地址。
  • n:数据量。
  • k:块大小。
  • hist:直方图。

返回值:量化后的数据大小。

ggml_quantize_q4_1

代码语言:javascript
复制
size_t ggml_quantize_q4_1(const float * src, void * dst, int n, int k, int64_t * hist)

描述:将浮点数数组量化为Q4_1类型的数据。

参数:

  • src:源浮点数数组。
  • dst:目标地址。
  • n:数据量。
  • k:块大小。
  • hist:直方图。

返回值:量化后的数据大小。

ggml_quantize_q5_0

代码语言:javascript
复制
size_t ggml_quantize_q5_0(const float * src, void * dst, int n, int k, int64_t * hist)

描述:将浮点数数组量化为Q5_0类型的数据。

参数:

  • src:源浮点数数组。
  • dst:目标地址。
  • n:数据量。
  • k:块大小。
  • hist:直方图。

返回值:量化后的数据大小。

ggml_quantize_q5_1

代码语言:javascript
复制
size_t ggml_quantize_q5_1(const float * src, void * dst, int n, int k, int64_t * hist)

描述:将浮点数数组量化为Q5_1类型的数据。

参数:

  • src:源浮点数数组。
  • dst:目标地址。
  • n:数据量。
  • k:块大小。
  • hist:直方图。

返回值:量化后的数据大小。

ggml_quantize_q8_0

代码语言:javascript
复制
size_t ggml_quantize_q8_0(const float * src, void * dst, int n, int k, int64_t * hist)

描述:将浮点数数组量化为Q8_0类型的数据。

参数:

  • src:源浮点数数组。
  • dst:目标地址。
  • n:数据量。
  • k:块大小。
  • hist:直方图。

返回值:量化后的数据大小。

ggml_quantize_chunk

代码语言:javascript
复制
size_t ggml_quantize_chunk(enum ggml_type type, const float * src, void * dst, int start, int n, int64_t * hist)

描述:对指定类型的输入数组进行量化。

参数:

  • type:量化类型。
  • src:源浮点数数组。
  • dst:目标地址。
  • start:起始位置。
  • n:数据量。
  • hist:直方图。

返回值:量化后的数据大小。

gguf_fread_el

代码语言:javascript
复制
static bool gguf_fread_el(FILE * file, void * dst, size_t size, size_t * offset)

描述:从文件中读取指定大小的数据到目标地址,并更新偏移量。

参数:

  • file:文件指针。
  • dst:目标地址。
  • size:数据大小。
  • offset:偏移量指针。

返回值:是否成功读取指定大小的数据。

gguf_fread_str

代码语言:javascript
复制
static bool gguf_fread_str(FILE * file, struct gguf_str * p, size_t * offset)

描述:从文件中读取字符串结构体gguf_str,并更新偏移量。

参数:

  • file:文件指针。
  • p:gguf_str结构体指针。
  • offset:偏移量指针。

返回值:是否成功读取字符串。

gguf_init_empty

代码语言:javascript
复制
struct gguf_context * gguf_init_empty(void)

描述:初始化一个空的gguf_context结构体。

返回值:gguf_context指针。

gguf_init_from_file

代码语言:javascript
复制
struct gguf_context * gguf_init_from_file(const char * fname, struct gguf_init_params params)

描述:从文件初始化gguf上下文。

参数:

  • fname:文件名。
  • params:初始化参数。

返回值:gguf_context指针。

gguf_find_key

代码语言:javascript
复制
int gguf_find_key(struct gguf_context * ctx, const char * key)

描述:查找指定键在gguf_context中的索引。

参数:

  • ctx:gguf_context指针。
  • key:键名。

返回值:键的索引,如果未找到则返回-1。

gguf_get_val_u32

代码语言:javascript
复制
uint32_t gguf_get_val_u32(struct gguf_context * ctx, int idx)

描述:获取gguf_context中指定索引的值,并转换为uint32_t类型。

参数:

  • ctx:gguf_context指针。
  • idx:索引。

返回值:转换后的uint32_t值。

gguf_free

代码语言:javascript
复制
void gguf_free(struct gguf_context * ctx)

描述:释放gguf_context结构体的内存。

参数:

  • ctx:gguf_context指针。

返回值:无。

GGML_PAD

类型:size_t

描述:用于计算对齐后的大小,具体实现未在给定代码段中提供。

GGML_ALIGNED_FREE

类型:void

描述:用于释放对齐内存的函数,具体实现未在给定代码段中提供。

GGUF_TYPE_NAME

类型:const char *

描述:一个数组,用于返回指定类型的名称,具体内容未在给定代码段中提供。

GGUF_TYPE_UINT8

类型:enum gguf_type

描述:表示无符号8位整数类型。

GGUF_TYPE_INT8

类型:enum gguf_type

描述:表示有符号8位整数类型。

GGUF_TYPE_UINT16

类型:enum gguf_type

描述:表示无符号16位整数类型。

GGUF_TYPE_INT16

类型:enum gguf_type

描述:表示有符号16位整数类型。

GGUF_TYPE_UINT32

类型:enum gguf_type

描述:表示无符号32位整数类型。

GGUF_TYPE_INT32

类型:enum gguf_type

描述:表示有符号32位整数类型。

GGUF_TYPE_FLOAT32

类型:enum gguf_type

描述:表示32位浮点数类型。

GGUF_TYPE_UINT64

类型:enum gguf_type

描述:表示无符号64位整数类型。

GGUF_TYPE_INT64

类型:enum gguf_type

描述:表示有符号64位整数类型。

GGUF_TYPE_FLOAT64

类型:enum gguf_type

描述:表示64位浮点数类型。

GGUF_TYPE_BOOL

类型:enum gguf_type

描述:表示布尔类型。

GGUF_TYPE_STRING

类型:enum gguf_type

描述:表示字符串类型。

GGUF_TYPE_ARRAY

类型:enum gguf_type

描述:表示数组类型。

gguf_context

描述:表示一个上下文结构体,包含版本号、对齐方式、数据偏移量、数据指针、键值对数量等信息。

字段

类型

描述

header

struct gguf_header

包含版本号、张量数量、键值对数量等信息

alignment

size_t

对齐方式

offset

size_t

数据偏移量

data

void *

数据指针

kv

struct gguf_kv *

键值对数组

infos

struct gguf_tensor_info *

张量信息数组

gguf_header

描述:包含版本号、张量数量、键值对数量等信息。

字段

类型

描述

version

int

版本号

n_tensors

uint32_t

张量数量

n_kv

uint32_t

键值对数量

gguf_kv

描述:表示一个键值对结构体,包含键、值类型和值。

字段

类型

描述

key

struct gguf_str

type

enum gguf_type

值类型

value

union gguf_value

gguf_str

描述:表示一个字符串结构体,包含字符串长度和数据。

字段

类型

描述

n

size_t

字符串长度

data

char *

字符串数据

gguf_value

描述:表示一个值联合体,根据不同的类型存储不同的值。

字段

类型

描述

uint8

uint8_t

无符号8位整数

int8

int8_t

有符号8位整数

uint16

uint16_t

无符号16位整数

int16

int16_t

有符号16位整数

uint32

uint32_t

无符号32位整数

int32

int32_t

有符号32位整数

float32

float

32位浮点数

uint64

uint64_t

无符号64位整数

int64

int64_t

有符号64位整数

float64

double

64位浮点数

bool_

bool

布尔值

str

struct gguf_str

字符串

arr

struct gguf_arr

数组

gguf_arr

描述:表示一个数组结构体,包含数组类型、元素数量和数据。

字段

类型

描述

type

enum gguf_type

数组类型

n

uint32_t

元素数量

data

void *

数组数据

gguf_tensor_info

描述:表示一个张量信息结构体,包含张量名称、类型、偏移量等信息。

字段

类型

描述

name

struct gguf_str

张量名称

type

enum ggml_type

张量类型

offset

size_t

张量偏移量

gguf_free

代码语言:javascript
复制
void gguf_free(struct gguf_context * ctx)

描述:释放 gguf_context 结构体所占用的内存空间。

参数:

  • ctx:指向 gguf_context 结构体的指针。

返回值:无。

gguf_type_name

代码语言:javascript
复制
const char * gguf_type_name(enum gguf_type type)

描述:返回指定类型的名称。

参数:

  • typeenum gguf_type 类型的值。

返回值:const char *,类型的名称。

gguf_get_version

代码语言:javascript
复制
int gguf_get_version(const struct gguf_context * ctx)

描述:获取 gguf_context 结构体中的版本号。

参数:

  • ctx:指向 gguf_context 结构体的指针。

返回值:版本号。

gguf_get_alignment

代码语言:javascript
复制
size_t gguf_get_alignment(const struct gguf_context * ctx)

描述:获取 gguf_context 结构体中的对齐方式。

参数:

  • ctx:指向 gguf_context 结构体的指针。

返回值:对齐方式。

gguf_get_data_offset

代码语言:javascript
复制
size_t gguf_get_data_offset(const struct gguf_context * ctx)

描述:获取 gguf_context 结构体中的数据偏移量。

参数:

  • ctx:指向 gguf_context 结构体的指针。

返回值:数据偏移量。

gguf_get_data

代码语言:javascript
复制
void * gguf_get_data(const struct gguf_context * ctx)

描述:获取 gguf_context 结构体中的数据指针。

参数:

  • ctx:指向 gguf_context 结构体的指针。

返回值:数据指针。

gguf_get_n_kv

代码语言:javascript
复制
int gguf_get_n_kv(const struct gguf_context * ctx)

描述:获取 gguf_context 结构体中的键值对数量。

参数:

  • ctx:指向 gguf_context 结构体的指针。

返回值:键值对数量。

gguf_find_key

代码语言:javascript
复制
int gguf_find_key(const struct gguf_context * ctx, const char * key)

描述:在给定的 gguf_context 中查找指定的键,如果找到则返回其索引,否则返回 -1。

参数:

  • ctx:指向 gguf_context 结构体的指针。
  • key:要查找的键。

返回值:键的索引或 -1。

gguf_get_key

代码语言:javascript
复制
const char * gguf_get_key(const struct gguf_context * ctx, int key_id)

描述:获取指定索引的键。

参数:

  • ctx:指向 gguf_context 结构体的指针。
  • key_id:键的索引。

返回值:键的字符串值。

gguf_get_kv_type

代码语言:javascript
复制
enum gguf_type gguf_get_kv_type(const struct gguf_context * ctx, int key_id)

描述:获取指定索引的键值对的类型。

参数:

  • ctx:指向 gguf_context 结构体的指针。
  • key_id:键的索引。

返回值:键值对的类型。

gguf_get_arr_type

代码语言:javascript
复制
enum gguf_type gguf_get_arr_type(const struct gguf_context * ctx, int key_id)

描述:获取指定索引的数组类型的键值对的类型。

参数:

  • ctx:指向 gguf_context 结构体的指针。
  • key_id:键的索引。

返回值:数组类型的键值对的数据类型。

gguf_get_arr_data

代码语言:javascript
复制
const void * gguf_get_arr_data(const struct gguf_context * ctx, int key_id)

描述:获取指定索引的数组类型的键值对的数据。

参数:

  • ctx:指向 gguf_context 结构体的指针。
  • key_id:键的索引。

返回值:数组类型的键值对的数据。

gguf_get_arr_str

代码语言:javascript
复制
const char * gguf_get_arr_str(const struct gguf_context * ctx, int key_id, int i)

描述:获取指定索引的数组类型的键值对的字符串数据。

参数:

  • ctx:指向 gguf_context 结构体的指针。
  • key_id:键的索引。
  • i:数组中字符串的索引。

返回值:字符串数据。

gguf_get_arr_n

代码语言:javascript
复制
int gguf_get_arr_n(const struct gguf_context * ctx, int key_id)

描述:获取指定索引的数组类型的键值对的元素数量。

参数:

  • ctx:指向 gguf_context 结构体的指针。
  • key_id:键的索引。

返回值:元素数量。

gguf_get_val_u8

代码语言:javascript
复制
uint8_t gguf_get_val_u8(const struct gguf_context * ctx, int key_id)

描述:从给定的 gguf_context 结构体中获取 uint8_t 类型的值。

参数:

  • ctx:指向 gguf_context 结构体的指针。
  • key_id:键的索引。

返回值:uint8_t 类型的值。

gguf_get_val_i8

代码语言:javascript
复制
int8_t gguf_get_val_i8(const struct gguf_context * ctx, int key_id)

描述:从给定的 gguf_context 结构体中获取 int8_t 类型的值。

参数:

  • ctx:指向 gguf_context 结构体的指针。
  • key_id:键的索引。

返回值:int8_t 类型的值。

gguf_get_val_u16

代码语言:javascript
复制
uint16_t gguf_get_val_u16(const struct gguf_context * ctx, int key_id)

描述:从给定的 gguf_context 结构体中获取 uint16_t 类型的值。

参数:

  • ctx:指向 gguf_context 结构体的指针。
  • key_id:键的索引。

返回值:uint16_t 类型的值。

gguf_get_val_i16

代码语言:javascript
复制
int16_t gguf_get_val_i16(const struct gguf_context * ctx, int key_id)

描述:从给定的 gguf_context 结构体中获取 int16_t 类型的值。

参数:

  • ctx:指向 gguf_context 结构体的指针。
  • key_id:键的索引。

返回值:int16_t 类型的值。

gguf_get_val_u32

代码语言:javascript
复制
uint32_t gguf_get_val_u32(const struct gguf_context * ctx, int key_id)

描述:从给定的 gguf_context 结构体中获取 uint32_t 类型的值。

参数:

  • ctx:指向 gguf_context 结构体的指针。
  • key_id:键的索引。

返回值:uint32_t 类型的值。

gguf_get_val_i32

代码语言:javascript
复制
int32_t gguf_get_val_i32(const struct gguf_context * ctx, int key_id)

描述:从给定的 gguf_context 结构体中获取 int32_t 类型的值。

参数:

  • ctx:指向 gguf_context 结构体的指针。
  • key_id:键的索引。

返回值:int32_t 类型的值。

gguf_get_val_f32

代码语言:javascript
复制
float gguf_get_val_f32(const struct gguf_context * ctx, int key_id)

描述:从给定的 gguf_context 结构体中获取 float 类型的值。

参数:

  • ctx:指向 gguf_context 结构体的指针。
  • key_id:键的索引。

返回值:float 类型的值。

gguf_get_val_u64

代码语言:javascript
复制
uint64_t gguf_get_val_u64(const struct gguf_context * ctx, int key_id)

描述:从给定的 gguf_context 结构体中获取 uint64_t 类型的值。

参数:

  • ctx:指向 gguf_context 结构体的指针。
  • key_id:键的索引。

返回值:uint64_t 类型的值。

gguf_get_val_i64

代码语言:javascript
复制
int64_t gguf_get_val_i64(const struct gguf_context * ctx, int key_id)

描述:从给定的 gguf_context 结构体中获取 int64_t 类型的值。

参数:

  • ctx:指向 gguf_context 结构体的指针。

GGUF_TYPE_INT64 类型:枚举 描述:表示有符号64位整数的类型

GGUF_TYPE_FLOAT64 类型:枚举 描述:表示浮点数的类型

GGUF_TYPE_BOOL 类型:枚举 描述:表示布尔值的类型

GGUF_TYPE_STRING 类型:枚举 描述:表示字符串的类型

GGUF_TYPE_ARRAY 类型:枚举 描述:表示数组的类型

GGML_MAX_DIMS 类型:整数 描述:表示张量的最大维度数量

GGML_PAD 类型:函数 描述:用于对齐内存的函数

GGML_ASSERT 类型:宏 描述:断言宏,用于检查条件是否为真

gguf_context 描述:表示上下文信息的结构体

字段

类型

描述

kv

struct kv[]

键值对数组

infos

struct gguf_tensor_info[]

张量信息数组

header

struct gguf_header

头部信息

alignment

int

对齐大小

infos

struct gguf_tensor_info[]

张量信息数组

alignment

int

对齐大小

gguf_tensor_info 描述:表示张量信息的结构体

字段

类型

描述

name

struct gguf_str

张量名称

n_dims

uint32_t

维度数量

ne

uint32_t[GGML_MAX_DIMS]

每个维度的大小

type

enum ggml_type

张量的数据类型

offset

size_t

张量的偏移量

data

void*

张量的数据指针

size

size_t

张量的大小

gguf_buf 描述:表示缓冲区的结构体

字段

类型

描述

data

void*

缓冲区的数据指针

size

size_t

缓冲区的大小

offset

size_t

缓冲区的偏移量

gguf_str 描述:表示字符串的结构体

字段

类型

描述

n

size_t

字符串长度

data

char*

字符串数据

gguf_set_val_f64

代码语言:javascript
复制
 void gguf_set_val_f64(struct gguf_context * ctx, const char * key, double val) 

描述:设置或添加浮点数值类型的键值对到上下文中

参数:

  • ctx:上下文指针
  • key:键名
  • val:浮点数值

返回值:无

gguf_set_val_bool

代码语言:javascript
复制
 void gguf_set_val_bool(struct gguf_context * ctx, const char * key, bool val) 

描述:设置或添加布尔类型的键值对到上下文中

参数:

  • ctx:上下文指针
  • key:键名
  • val:布尔值

返回值:无

gguf_set_val_str

代码语言:javascript
复制
 void gguf_set_val_str(struct gguf_context * ctx, const char * key, const char * val) 

描述:设置或添加字符串类型的键值对到上下文中

参数:

  • ctx:上下文指针
  • key:键名
  • val:字符串值

返回值:无

gguf_set_arr_data

代码语言:javascript
复制
 void gguf_set_arr_data(struct gguf_context * ctx, const char * key, enum gguf_type type, const void * data, int n) 

描述:设置或添加数组类型的键值对到上下文中

参数:

  • ctx:上下文指针
  • key:键名
  • type:数组类型
  • data:数组数据指针
  • n:数组元素数量

返回值:无

gguf_set_arr_str

代码语言:javascript
复制
 void gguf_set_arr_str(struct gguf_context * ctx, const char * key, const char ** data, int n) 

描述:设置或添加字符串数组类型的键值对到上下文中

参数:

  • ctx:上下文指针
  • key:键名
  • data:字符串数组数据指针
  • n:字符串数量

返回值:无

gguf_add_tensor

代码语言:javascript
复制
 void gguf_add_tensor(struct gguf_context * ctx, const struct ggml_tensor * tensor) 

描述:向上下文中添加张量

参数:

  • ctx:上下文指针
  • tensor:张量指针

返回值:无

gguf_set_tensor_type

代码语言:javascript
复制
 void gguf_set_tensor_type(struct gguf_context * ctx, const char * name, enum ggml_type type) 

描述:设置张量的数据类型

参数:

  • ctx:上下文指针
  • name:张量名称
  • type:数据类型

返回值:无

gguf_set_tensor_data

代码语言:javascript
复制
 void gguf_set_tensor_data(struct gguf_context * ctx, const char * name, const void * data, size_t size) 

描述:设置张量的数据

参数:

  • ctx:上下文指针
  • name:张量名称
  • data:数据指针
  • size:数据大小

返回值:无

gguf_buf_init

代码语言:javascript
复制
 static struct gguf_buf gguf_buf_init(size_t size) 

描述:初始化缓冲区

参数:

  • size:缓冲区大小

返回值:初始化后的缓冲区结构体

gguf_buf_free

代码语言:javascript
复制
 static void gguf_buf_free(struct gguf_buf buf) 

描述:释放缓冲区

参数:

  • buf:缓冲区结构体

返回值:无

gguf_buf_grow

代码语言:javascript
复制
 static void gguf_buf_grow(struct gguf_buf * buf, size_t size) 

描述:扩展缓冲区

参数:

  • buf:缓冲区指针
  • size:需要扩展的大小

返回值:无

gguf_bwrite_str

代码语言:javascript
复制
 static void gguf_bwrite_str(struct gguf_buf * buf, const struct gguf_str * val) 

描述:写入字符串到缓冲区

参数:

  • buf:缓冲区指针
  • val:字符串结构体

返回值:无

gguf_bwrite_el

代码语言:javascript
复制
 static void gguf_bwrite_el(struct gguf_buf * buf, const void * val, size_t el_size) 

描述:写入元素到缓冲区

参数:

  • buf:缓冲区指针
  • val:元素指针
  • el_size:元素大小

返回值:无

gguf_write_to_buf

代码语言:javascript
复制
 static void gguf_write_to_buf(const struct gguf_context * ctx, struct gguf_buf * buf, bool only_meta) 

描述:将数据写入缓冲区

参数:

  • ctx:上下文指针
  • buf:缓冲区指针
  • only_meta:是否只写入元数据

返回值:无

gguf_write_to_file

代码语言:javascript
复制
 void gguf_write_to_file(const struct gguf_context * ctx, const char * fname, bool only_meta) 

描述:将数据写入文件

参数:

  • ctx:上下文指针
  • fname:文件名
  • only_meta:是否只写入元数据

返回值:无

gguf_get_meta_size

代码语言:javascript
复制
 size_t gguf_get_meta_size(const struct gguf_context * ctx) 

描述:获取元数据的大小

参数:

  • ctx:上下文指针

返回值:元数据的大小

gguf_get_meta_data

代码语言:javascript
复制
 void gguf_get_meta_data(const struct gguf_context * ctx, void * data) 

描述:获取元数据的数据

参数:

  • ctx:上下文指针
  • data:存储元数据的缓冲区

返回值:无

ggml_cpu_has_avx

代码语言:javascript
复制
 int ggml_cpu_has_avx(void) 

描述:检查 CPU 是否支持 AVX 指令集

参数:无

返回值:1 表示支持,0 表示不支持

ggml_cpu_has_avx_vnni

代码语言:javascript
复制
 int ggml_cpu_has_avx_vnni(void) 

描述:检查 CPU 是否支持 AVX VNNI 指令集

参数:无

返回值:1 表示支持,0 表示不支持

ggml_cpu_has_avx2

代码语言:javascript
复制
 int ggml_cpu_has_avx2(void) 

描述:检查 CPU 是否支持 AVX2 指令集

参数:无

返回值:1 表示支持,0 表示不支持

ggml_cpu_has_avx512

代码语言:javascript
复制
 int ggml_cpu_has_avx512(void) 

描述:检查 CPU 是否支持 AVX512 指令集

参数:无

返回值:1 表示支持,0 表示不支持

ggml_cpu_has_avx512_vbmi

代码语言:javascript
复制
 int ggml_cpu_has_avx512_vbmi(void) 

描述:检查 CPU 是否支持 AVX512 VBMI 指令集

参数:无

返回值:1 表示支持,0 表示不支持

ggml_cpu_has_avx512_vnni

代码语言:javascript
复制
 int ggml_cpu_has_avx512_vnni(void) 

描述:检查 CPU 是否支持 AVX512 VNNI 指令集

参数:无

返回值:1 表示支持,0 表示不支持

ggml_cpu_has_fma

代码语言:javascript
复制
 int ggml_cpu_has_fma(void) 

描述:检查 CPU 是否支持 FMA 指令集

参数:无

返回值:1 表示支持,0 表示不支持

ggml_cpu_has_neon

代码语言:javascript
复制
 int ggml_cpu_has_neon(void) 

描述:检查 CPU 是否支持 NEON 指令集

参数:无

返回值:1 表示支持,0 表示不支持

ggml_cpu_has_arm_fma

代码语言:javascript
复制
 int ggml_cpu_has_arm_fma(void) 

描述:检查 CPU 是否支持 ARM FMA 指令集

参数:无

返回值:1 表示支持,0 表示不支持

ggml_cpu_has_metal

代码语言:javascript
复制
 int ggml_cpu_has_metal(void) 

描述:检查 CPU 是否支持 Metal 框架

参数:无

返回值:1 表示支持,0 表示不支持

ggml_cpu_has_f16c

代码语言:javascript
复制
 int ggml_cpu_has_f16c(void) 

描述:检查 CPU 是否支持 F16C 指令集

参数:无

返回值:1 表示支持,0 表示不支持

ggml_cpu_has_fp16_va

代码语言:javascript
复制
 int ggml_cpu_has_fp16_va(void) 

描述:检查 CPU 是否支持 ARM FP16 向量算术指令集

参数:无

返回值:1 表示支持,0 表示不支持

ggml_cpu_has_wasm_simd

代码语言:javascript
复制
 int ggml_cpu_has_wasm_simd(void) 

描述:检查 CPU 是否支持 WebAssembly SIMD 指令集

参数:无

返回值:1 表示支持,0 表示不支持

ggml_cpu_has_blas

代码语言:javascript
复制
 int ggml_cpu_has_blas(void) 

描述:检查 CPU 是否支持 BLAS 库

参数:无

返回值:1 表示支持,0 表示不支持

ggml_cpu_has_cublas

代码语言:javascript
复制
 int ggml_cpu_has_cublas(void) 

描述:检查 CPU 是否支持 cuBLAS 库

参数:无

返回值:1 表示支持,0 表示不支持

ggml_cpu_has_clblast

代码语言:javascript
复制
 int ggml_cpu_has_clblast(void) 

描述:检查 CPU 是否支持 CLBlast 库

参数:无

返回值:1 表示支持,0 表示不支持

ggml_cpu_has_gpublas

代码语言:javascript
复制
 int ggml_cpu_has_gpublas(void) 

描述:检查 CPU 是否支持 GPU BLAS 库

参数:无

返回值:1 表示支持,0 表示不支持

ggml_cpu_has_sse3

代码语言:javascript
复制
 int ggml_cpu_has_sse3(void) 

描述:检查 CPU 是否支持 SSE3 指令集

参数:无

返回值:1 表示支持,0 表示不支持

无常量定义。

无结构体定义。

ggml_cpu_has_sse3

代码语言:javascript
复制
int ggml_cpu_has_sse3(void)

描述:检查CPU是否支持SSE3指令集。

参数:无。

返回值:如果支持SSE3指令集,返回1;否则返回0。

ggml_cpu_has_ssse3

代码语言:javascript
复制
int ggml_cpu_has_ssse3(void)

描述:检查CPU是否支持SSSE3指令集。

参数:无。

返回值:如果支持SSSE3指令集,返回1;否则返回0。

ggml_cpu_has_vsx

代码语言:javascript
复制
int ggml_cpu_has_vsx(void)

描述:检查CPU是否支持VSX指令集。

参数:无。

返回值:如果支持VSX指令集,返回1;否则返回0。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-05-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • _CRT_SECURE_NO_DEPRECATE
  • _USE_MATH_DEFINES
  • GGML_DEBUG
  • GGML_GELU_FP16
  • GGML_GELU_QUICK_FP16
  • GGML_SILU_FP16
  • GGML_SOFT_MAX_UNROLL
  • GGML_VEC_DOT_UNROLL
  • GGML_VEC_MAD_UNROLL
  • GGML_MEM_ALIGN
  • CACHE_LINE_SIZE
  • CACHE_LINE_SIZE_F32
  • GGML_TYPE_COUNT
  • GGML_TYPE_I8
  • GGML_TYPE_I16
  • GGML_TYPE_I32
  • GGML_TYPE_F32
  • atomic_int
  • atomic_bool
  • pthread_t
  • thread_ret_t
  • ggml_type_traits_t
  • atomic_store
  • atomic_load
  • atomic_fetch_add
  • atomic_fetch_sub
  • pthread_create
  • pthread_join
  • sched_yield
  • ggml_aligned_malloc
  • ggml_fp16_to_fp32
  • ggml_fp32_to_fp16
  • ggml_fp16_to_fp32_row
  • ggml_fp32_to_fp16_row
  • ggml_time_init
  • ggml_time_ms
  • ggml_time_us
  • ggml_cycles
  • ggml_cycles_per_ms
  • ggml_vec_dot_f32
  • ggml_vec_dot_f16
  • GGML_TYPE_F32
  • GGML_TYPE_F16
  • GGML_TYPE_Q4_0
  • GGML_TYPE_Q4_1
  • GGML_TYPE_Q5_0
  • GGML_TYPE_Q5_1
  • GGML_TYPE_Q8_0
  • GGML_TYPE_Q8_1
  • GGML_TYPE_Q2_K
  • GGML_TYPE_Q3_K
  • GGML_TYPE_Q4_K
  • GGML_TYPE_Q5_K
  • GGML_TYPE_Q6_K
  • GGML_TYPE_Q8_K
  • ggml_type_traits_t
  • ggml_internal_get_type_traits
  • vaddvq_f32
  • dequantize_row_q4_0
  • quantize_row_q4_0
  • quantize_row_q4_0_reference
  • ggml_vec_dot_q4_0_q8_0
  • dequantize_row_q4_1
  • quantize_row_q4_1
  • quantize_row_q4_1_reference
  • ggml_vec_dot_q4_1_q8_1
  • dequantize_row_q5_0
  • quantize_row_q5_0
  • quantize_row_q5_0_reference
  • ggml_vec_dot_q5_0_q8_0
  • dequantize_row_q5_1
  • quantize_row_q5_1
  • quantize_row_q5_1_reference
  • ggml_vec_dot_q5_1_q8_1
  • dequantize_row_q8_0
  • quantize_row_q8_0
  • quantize_row_q8_0_reference
  • ggml_vec_dot_q8_0_q8_0
  • quantize_row_q8_1
  • quantize_row_q8_1_reference
  • dequantize_row_q2_K
  • quantize_row_q2_K
  • quantize_row_q2_K_reference
  • ggml_vec_dot_q2_K_q8_K
  • dequantize_row_q3_K
  • quantize_row_q3_K
  • quantize_row_q3_K_reference
  • ggml_vec_dot_q3_K_q8_K
  • dequantize_row_q4_K
  • quantize_row_q4_K
  • quantize_row_q4_K_reference
  • ggml_vec_dot_q4_K_q8_K
  • dequantize_row_q5_K
  • quantize_row_q5_K
  • quantize_row_q5_K_reference
  • GGML_F32x8
  • GGML_F32x8_ZERO
  • GGML_F32x8_SET1
  • GGML_F32x8_LOAD
  • GGML_F32x8_STORE
  • GGML_F32x8_FMA
  • GGML_F32x8_ADD
  • GGML_F32x8_MUL
  • GGML_F32x8_REDUCE
  • GGML_F16_STEP
  • GGML_F16_EPR
  • GGML_F32Cx8
  • GGML_F32Cx8_ZERO
  • GGML_F32Cx8_SET1
  • GGML_F32Cx8_LOAD
  • GGML_F32Cx8_STORE
  • GGML_F32Cx8_FMA
  • GGML_F32Cx8_ADD
  • GGML_F32Cx8_MUL
  • GGML_F32Cx8_REDUCE
  • GGML_F16_VEC
  • GGML_F16_VEC_ZERO
  • GGML_F16_VEC_SET1
  • GGML_F16_VEC_LOAD
  • GGML_F16_VEC_STORE
  • GGML_F16_VEC_FMA
  • GGML_F16_VEC_ADD
  • GGML_F16_VEC_MUL
  • GGML_F16_VEC_REDUCE
  • GGML_F16_VEC_MUL
  • GGML_F16_VEC_REDUCE
  • GGML_F32_ARR
  • GGML_F16_ARR
  • ggml_vec_set_i8
  • ggml_vec_set_i16
  • ggml_vec_set_i32
  • ggml_vec_set_f16
  • ggml_vec_add_f32
  • ggml_vec_add1_f32
  • ggml_vec_acc_f32
  • ggml_vec_acc1_f32
  • ggml_vec_sub_f32
  • ggml_vec_set_f32
  • ggml_vec_cpy_f32
  • ggml_vec_neg_f32
  • ggml_vec_mul_f32
  • ggml_vec_div_f32
  • ggml_vec_dot_f32
  • ggml_vec_dot_f16
  • ggml_vec_dot_f16_unroll
  • ggml_vec_mad_f32
  • ggml_vec_mad_f32_unroll
  • ggml_vec_scale_f32
  • ggml_vec_norm_f32
  • ggml_vec_sqr_f32
  • ggml_vec_sqrt_f32
  • ggml_vec_log_f32
  • ggml_vec_abs_f32
  • ggml_vec_sgn_f32
  • ggml_vec_step_f32
  • ggml_vec_tanh_f32
  • ggml_vec_elu_f32
  • ggml_vec_relu_f32
  • ggml_vec_leaky_relu_f32
  • ggml_gelu_f32
  • ggml_vec_gelu_f16
  • ggml_vec_gelu_f32
  • ggml_gelu_quick_f32
  • ggml_vec_gelu_quick_f32
  • ggml_silu_f32
  • ggml_vec_silu_f32
  • GGML_OP_COUNT
  • GGML_OP_POOL_COUNT
  • GGML_UNARY_OP_COUNT
  • GGML_MEM_ALIGN
  • GGML_MAX_CONTEXTS
  • GGML_NUMA_MAX_NODES
  • GGML_NUMA_MAX_CPUS
  • ggml_object
  • ggml_tensor
  • ggml_context
  • ggml_context_container
  • ggml_numa_node
  • ggml_numa_nodes
  • ggml_state
  • ggml_vec_sum_f32
  • ggml_vec_sum_f32_ggf
  • ggml_vec_sum_f16_ggf
  • ggml_vec_max_f32
  • ggml_vec_norm_inv_f32
  • ggml_vec_argmax_f32
  • ggml_setup_op_has_task_pass
  • ggml_numa_init
  • ggml_is_numa
  • ggml_print_object
  • ggml_print_objects
  • ggml_nelements
  • ggml_nrows
  • ggml_nbytes
  • ggml_nbytes_pad
  • ggml_blck_size
  • ggml_type_size
  • ggml_row_size
  • ggml_type_sizef
  • ggml_type_name
  • ggml_is_quantized
  • ggml_op_name
  • ggml_op_symbol
  • ggml_unary_op_name
  • ggml_op_desc
  • GGML_MAX_DIMS
  • GGML_MEM_ALIGN
  • GGML_OBJECT_SIZE
  • GGML_TENSOR_SIZE
  • struct ggml_tensor
  • struct ggml_context
  • ggml_unary_op_name
  • ggml_op_name
  • ggml_element_size
  • ggml_is_scalar
  • ggml_is_vector
  • ggml_is_matrix
  • ggml_is_3d
  • ggml_n_dims
  • ggml_can_mul_mat
  • ggml_can_out_prod
  • ggml_ftype_to_ggml_type
  • ggml_tensor_overhead
  • ggml_is_transposed
  • ggml_is_contiguous
  • ggml_is_contiguous_except_dim_1
  • ggml_is_permuted
  • ggml_is_padded_1d
  • ggml_are_same_shape
  • ggml_can_repeat
  • ggml_can_repeat_rows
  • ggml_up32
  • ggml_up
  • ggml_assert_aligned
  • ggml_init
  • ggml_free
  • ggml_used_mem
  • ggml_set_scratch
  • ggml_get_no_alloc
  • ggml_set_no_alloc
  • ggml_get_mem_buffer
  • ggml_get_mem_size
  • ggml_get_max_tensor_size
  • ggml_scratch_save
  • ggml_scratch_load
  • ggml_new_object
  • ggml_new_tensor_impl
  • GGML_MAX_DIMS
  • GGML_MAX_OP_PARAMS
  • struct ggml_tensor
  • struct ggml_tensor * ggml_new_tensor(struct ggml_context * ctx, enum ggml_type type, int n_dims, const int64_t * ne)
  • struct ggml_tensor * ggml_new_tensor_1d(struct ggml_context * ctx, enum ggml_type type, int64_t ne0)
  • struct ggml_tensor * ggml_new_tensor_2d(struct ggml_context * ctx, enum ggml_type type, int64_t ne0, int64_t ne1)
  • struct ggml_tensor * ggml_new_tensor_3d(struct ggml_context * ctx, enum ggml_type type, int64_t ne0, int64_t ne1, int64_t ne2)
  • struct ggml_tensor * ggml_new_tensor_4d(struct ggml_context * ctx, enum ggml_type type, int64_t ne0, int64_t ne1, int64_t ne2, int64_t ne3)
  • struct ggml_tensor * ggml_new_i32(struct ggml_context * ctx, int32_t value)
  • struct ggml_tensor * ggml_new_f32(struct ggml_context * ctx, float value)
  • struct ggml_tensor * ggml_dup_tensor(struct ggml_context * ctx, const struct ggml_tensor * src)
  • static void ggml_set_op_params(struct ggml_tensor * tensor, const void * params, size_t params_size)
  • static int32_t ggml_get_op_params_i32(const struct ggml_tensor * tensor, uint32_t i)
  • static void ggml_set_op_params_i32(struct ggml_tensor * tensor, uint32_t i, int32_t value)
  • struct ggml_tensor * ggml_set_zero(struct ggml_tensor * tensor)
  • struct ggml_tensor * ggml_set_i32(struct ggml_tensor * tensor, int32_t value)
  • struct ggml_tensor * ggml_set_f32(struct ggml_tensor * tensor, float value)
  • void ggml_unravel_index(const struct ggml_tensor * tensor, int64_t i, int64_t * i0, int64_t * i1, int64_t * i2, int64_t * i3)
  • int32_t ggml_get_i32_1d(const struct ggml_tensor * tensor, int i)
  • void ggml_set_i32_1d(const struct ggml_tensor * tensor, int i, int32_t value)
  • int32_t ggml_get_i32_nd(const struct ggml_tensor * tensor, int i0, int i1, int i2, int i3)
  • void ggml_set_i32_nd(const struct ggml_tensor * tensor, int i0, int i1, int i2, int i3, int32_t value)
  • GGML_TYPE_I8
  • GGML_TYPE_I16
  • GGML_TYPE_I32
  • GGML_TYPE_F16
  • GGML_TYPE_F32
  • ggml_tensor
  • ggml_get_f32_1d
  • ggml_set_f32_1d
  • ggml_get_f32_nd
  • ggml_set_f32_nd
  • ggml_get_data
  • ggml_get_data_f32
  • ggml_get_unary_op
  • ggml_get_name
  • ggml_set_name
  • ggml_format_name
  • ggml_view_tensor
  • ggml_get_first_tensor
  • ggml_get_next_tensor
  • ggml_get_tensor
  • ggml_dup
  • ggml_dup_inplace
  • ggml_add
  • ggml_add_inplace
  • ggml_add_cast
  • ggml_add1
  • ggml_add1_inplace
  • ggml_acc_impl
  • GGML_OP_ACC 类型:枚举值 描述:表示累加操作的枚举值
  • GGML_OP_SUB 类型:枚举值 描述:表示减法操作的枚举值
  • GGML_OP_MUL 类型:枚举值 描述:表示乘法操作的枚举值
  • GGML_OP_DIV 类型:枚举值 描述:表示除法操作的枚举值
  • GGML_OP_SQR 类型:枚举值 描述:表示平方操作的枚举值
  • GGML_OP_SQRT 类型:枚举值 描述:表示开方操作的枚举值
  • GGML_OP_LOG 类型:枚举值 描述:表示对数操作的枚举值
  • GGML_OP_SUM 类型:枚举值 描述:表示求和操作的枚举值
  • GGML_OP_SUM_ROWS 类型:枚举值 描述:表示求行和操作的枚举值
  • GGML_OP_MEAN 类型:枚举值 描述:表示求平均值操作的枚举值
  • GGML_OP_ARGMAX 类型:枚举值 描述:表示求最大值索引操作的枚举值
  • GGML_OP_REPEAT 类型:枚举值 描述:表示重复操作的枚举值
  • GGML_OP_REPEAT_BACK 类型:枚举值 描述:表示重复反向传播操作的枚举值
  • GGML_OP_CONCAT 类型:枚举值 描述:表示连接操作的枚举值
  • ggml_tensor
  • ggml_acc
  • ggml_acc_inplace
  • ggml_sub
  • ggml_sub_inplace
  • ggml_mul
  • ggml_mul_inplace
  • ggml_div
  • ggml_div_inplace
  • ggml_sqr
  • ggml_sqr_inplace
  • ggml_sqrt
  • ggml_sqrt_inplace
  • ggml_log
  • ggml_log_inplace
  • ggml_sum
  • ggml_sum_rows
  • ggml_mean
  • ggml_argmax
  • ggml_repeat
  • ggml_repeat_back
  • ggml_concat
  • ggml_concat
  • ggml_abs
  • ggml_abs_inplace
  • ggml_sgn
  • ggml_sgn_inplace
  • ggml_neg
  • ggml_neg_inplace
  • ggml_step
  • ggml_step_inplace
  • ggml_tanh
  • ggml_tanh_inplace
  • ggml_elu
  • ggml_elu_inplace
  • ggml_relu
  • ggml_relu_inplace
  • ggml_leaky_relu
  • ggml_gelu
  • ggml_gelu_inplace
  • ggml_gelu_quick
  • ggml_gelu_quick_inplace
  • ggml_silu
  • ggml_silu_inplace
  • ggml_silu_back
  • ggml_norm
  • ggml_norm_inplace
  • ggml_rms_norm
  • ggml_rms_norm_inplace
  • ggml_rms_norm_back
  • ggml_group_norm
  • ggml_group_norm_inplace
  • ggml_mul_mat
  • ggml_mul_mat_set_prec
  • ggml_mul_mat_id
  • ggml_out_prod
  • GGML_TYPE_F32
  • GGML_OP_OUT_PROD
  • GGML_OP_SCALE
  • GGML_OP_SET
  • GGML_OP_CPY
  • GGML_OP_CONT
  • GGML_OP_RESHAPE
  • ggml_tensor
  • ggml_new_tensor
  • ggml_scale_impl
  • ggml_scale
  • ggml_scale_inplace
  • ggml_set_impl
  • ggml_set
  • ggml_set_inplace
  • ggml_cpy_impl
  • ggml_cpy
  • ggml_cpy_inplace
  • ggml_cont_impl
  • ggml_cont
  • ggml_cont_inplace
  • ggml_cont_1d
  • ggml_cont_2d
  • ggml_cont_3d
  • ggml_cont_4d
  • ggml_reshape
  • ggml_reshape_1d
  • ggml_reshape_2d
  • ggml_reshape_3d
  • ggml_reshape_4d
  • GGML_OP_RESHAPE
  • GGML_OP_VIEW
  • GGML_OP_PERMUTE
  • GGML_OP_TRANSPOSE
  • GGML_OP_GET_ROWS
  • GGML_OP_GET_ROWS_BACK
  • GGML_OP_DIAG
  • GGML_OP_DIAG_MASK_INF
  • GGML_OP_DIAG_MASK_ZERO
  • GGML_OP_SOFT_MAX
  • ggml_tensor
  • ggml_format_name
  • ggml_new_tensor_impl
  • ggml_set_op_params
  • ggml_dup_tensor
  • ggml_view_impl
  • ggml_view_1d
  • ggml_view_2d
  • ggml_view_3d
  • ggml_view_4d
  • ggml_permute
  • ggml_transpose
  • ggml_get_rows
  • ggml_get_rows_back
  • ggml_diag
  • ggml_diag_mask_inf_impl
  • ggml_diag_mask_inf
  • ggml_diag_mask_inf_inplace
  • ggml_diag_mask_zero_impl
  • ggml_diag_mask_zero
  • ggml_diag_mask_zero_inplace
  • ggml_soft_max_impl
  • GGML_OP_SOFT_MAX
  • GGML_OP_SOFT_MAX_BACK
  • GGML_OP_ROPE
  • GGML_OP_ROPE_BACK
  • GGML_OP_ALIBI
  • GGML_OP_CLAMP
  • GGML_OP_CONV_TRANSPOSE_1D
  • GGML_OP_IM2COL
  • ggml_tensor
  • ggml_soft_max
  • ggml_soft_max_inplace
  • ggml_soft_max_ext
  • ggml_soft_max_back
  • ggml_soft_max_back_inplace
  • ggml_rope
  • ggml_rope_inplace
  • ggml_rope_custom
  • ggml_rope_custom_inplace
  • ggml_rope_xpos_inplace
  • ggml_rope_back
  • ggml_alibi
  • ggml_clamp
  • ggml_conv_1d
  • ggml_conv_1d_ph
  • ggml_conv_transpose_1d
  • ggml_conv_2d
  • ggml_im2col
  • ggml_conv_2d
  • ggml_conv_2d_sk_p0
  • ggml_conv_2d_s1_ph
  • ggml_conv_transpose_2d_p0
  • ggml_pool_1d
  • ggml_pool_2d
  • ggml_upscale_impl
  • ggml_pad
  • ggml_upscale
  • ggml_argsort
  • ggml_top_k
  • ggml_flash_attn
  • ggml_flash_ff
  • ggml_flash_attn_back
  • ggml_win_part
  • ggml_win_unpart
  • GGML_TYPE_F32
  • GGML_TYPE_F16
  • 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
  • GGML_OP_MAP_CUSTOM2_F32
  • GGML_OP_MAP_CUSTOM3_F32
  • GGML_OP_MAP_CUSTOM1
  • ggml_tensor
  • ggml_new_tensor
  • ggml_set_op_params
  • ggml_dup_tensor
  • ggml_view_tensor
  • ggml_get_rel_pos
  • ggml_add_rel_pos
  • ggml_add_rel_pos_inplace
  • ggml_unary
  • ggml_unary_inplace
  • ggml_map_unary_f32
  • ggml_map_unary_inplace_f32
  • ggml_map_binary_f32
  • ggml_map_binary_inplace_f32
  • ggml_map_custom1_f32
  • ggml_map_custom1_inplace_f32
  • ggml_map_custom2_f32
  • ggml_map_custom2_inplace_f32
  • ggml_map_custom3_f32
  • ggml_map_custom3_inplace_f32
  • ggml_map_custom1
  • ggml_map_custom1_inplace
  • ggml_map_custom2_op_params
  • GGML_N_TASKS_MAX
  • ggml_map_custom2_op_params
  • ggml_map_custom3_op_params
  • ggml_map_custom2_impl
  • ggml_map_custom2
  • ggml_map_custom2_inplace
  • ggml_map_custom3_impl
  • ggml_map_custom3
  • ggml_map_custom3_inplace
  • ggml_cross_entropy_loss
  • ggml_cross_entropy_loss_back
  • ggml_set_param
  • ggml_compute_forward_dup_same_cont
  • ggml_compute_forward_dup_f16
  • ggml_compute_forward_dup_f32
  • ggml_compute_forward_dup_bytes
  • GGML_TYPE_F16
  • GGML_TYPE_F32
  • GGML_TASK_INIT
  • GGML_TASK_FINALIZE
  • ggml_compute_params
  • ggml_tensor
  • ggml_compute_forward_dup
  • ggml_compute_forward_add_f32
  • ggml_compute_forward_add_f16_f32
  • ggml_compute_forward_add_f16_f16
  • ggml_compute_forward_add_q_f32
  • ggml_compute_forward_add
  • ggml_compute_forward_add1_f32
  • ggml_compute_forward_add1_f16_f32
  • GGML_TYPE_F16
  • GGML_TYPE_F32
  • GGML_TYPE_Q4_0
  • GGML_TYPE_Q4_1
  • GGML_TYPE_Q5_0
  • GGML_TYPE_Q5_1
  • GGML_TYPE_Q8_0
  • GGML_TYPE_Q8_1
  • GGML_TYPE_Q2_K
  • GGML_TYPE_Q3_K
  • GGML_TYPE_Q4_K
  • GGML_TYPE_Q5_K
  • GGML_TYPE_Q6_K
  • ggml_compute_params
  • ggml_tensor
  • ggml_compute_forward_add1_f16_f16
  • ggml_compute_forward_add1_q_f32
  • ggml_compute_forward_add1
  • ggml_compute_forward_acc_f32
  • ggml_compute_forward_acc
  • ggml_compute_forward_sub_f32
  • ggml_compute_forward_sub
  • ggml_compute_forward_mul_f32
  • ggml_compute_forward_mul_f32
  • ggml_compute_forward_div_f32
  • ggml_compute_forward_sqr_f32
  • ggml_compute_forward_sqrt_f32
  • ggml_compute_forward_log_f32
  • ggml_compute_forward_sum_f32
  • ggml_compute_forward_sum_rows_f32
  • GGML_TYPE_F32
  • GGML_TYPE_F16
  • GGML_TYPE_I16
  • GGML_TYPE_I32
  • GGML_TASK_INIT
  • GGML_TASK_FINALIZE
  • ggml_compute_params
  • ggml_tensor
  • ggml_compute_forward_sum_rows_f32
  • ggml_compute_forward_mean_f32
  • ggml_compute_forward_mean
  • ggml_compute_forward_argmax_f32
  • ggml_compute_forward_argmax
  • ggml_compute_forward_repeat_f32
  • ggml_compute_forward_repeat_f16
  • ggml_compute_forward_repeat
  • ggml_compute_forward_repeat_back_f32
  • ggml_compute_forward_repeat_back
  • ggml_compute_forward_concat_f32
  • ggml_compute_forward_concat
  • ggml_compute_forward_abs_f32
  • ggml_compute_forward_abs
  • ggml_compute_forward_sgn
  • ggml_compute_forward_sgn_f32
  • ggml_compute_forward_neg
  • ggml_compute_forward_neg_f32
  • ggml_compute_forward_step
  • ggml_compute_forward_step_f32
  • ggml_compute_forward_tanh
  • ggml_compute_forward_tanh_f32
  • ggml_compute_forward_elu
  • ggml_compute_forward_elu_f32
  • ggml_compute_forward_relu
  • ggml_compute_forward_relu_f32
  • ggml_compute_forward_gelu
  • ggml_compute_forward_gelu_f32
  • ggml_compute_forward_gelu_quick
  • ggml_compute_forward_gelu_quick_f32
  • ggml_compute_forward_silu
  • ggml_compute_forward_silu_f32
  • nc
  • nr
  • dr
  • ir0
  • ir1
  • ggml_compute_params
  • ggml_tensor
  • ggml_vec_silu_f32
  • ggml_vec_leaky_relu_f32
  • ggml_vec_silu_backward_f32
  • ggml_vec_scale_f32
  • ggml_compute_forward_silu
  • ggml_compute_forward_leaky_relu_f32
  • ggml_compute_forward_leaky_relu
  • ggml_compute_forward_silu_back_f32
  • ggml_compute_forward_silu_back
  • ggml_compute_forward_norm_f32
  • ggml_compute_forward_norm
  • ggml_compute_forward_rms_norm_f32
  • ggml_compute_forward_rms_norm
  • ggml_compute_forward_rms_norm_back_f32
  • ggml_compute_forward_rms_norm_back
  • ggml_compute_forward_group_norm_f32
  • eps
  • scale
  • ggml_compute_params
  • ggml_tensor
  • ggml_compute_forward_group_norm
  • ggml_compute_forward_mul_mat
  • ggml_compute_forward_mul_mat_use_blas
  • ggml_compute_forward_mul_mat_id
  • ggml_compute_forward_out_prod_f32
  • GGML_VEC_MAD_UNROLL
  • ggml_compute_params
  • ggml_tensor
  • ggml_compute_forward_out_prod_q_f32
  • ggml_compute_forward_scale_f32
  • ggml_compute_forward_set_f32
  • ggml_compute_forward_cpy
  • ggml_compute_forward_cont
  • ggml_compute_forward_reshape
  • ggml_compute_forward_view
  • ggml_compute_forward_permute
  • ggml_compute_forward_transpose
  • ggml_compute_forward_get_rows_q
  • ggml_compute_forward_get_rows_q
  • ggml_compute_forward_get_rows_f16
  • ggml_compute_forward_get_rows_f32
  • ggml_compute_forward_get_rows
  • ggml_compute_forward_get_rows_back_f32_f16
  • ggml_compute_forward_get_rows_back_f32
  • ggml_compute_forward_get_rows_back
  • ggml_compute_forward_diag_f32
  • ggml_compute_forward_diag
  • ggml_compute_forward_diag_mask_f32
  • ggml_compute_forward_diag_mask_inf
  • ggml_compute_forward_diag_mask_zero
  • ggml_compute_forward_soft_max_f32
  • GGML_TYPE_I16
  • GGML_TYPE_I32
  • GGML_TYPE_COUNT
  • ggml_compute_params
  • ggml_tensor
  • rope_yarn_ramp
  • rope_yarn
  • ggml_rope_yarn_corr_dim
  • ggml_rope_yarn_corr_dims
  • ggml_compute_forward_rope_f32
  • ggml_compute_forward_rope_f16
  • ggml_compute_forward_rope
  • ggml_compute_forward_rope_back
  • ggml_compute_forward_conv_transpose_1d_f16_f32
  • ggml_compute_forward_conv_transpose_1d_f32
  • ggml_compute_forward_conv_transpose_1d
  • GGML_TYPE_F16
  • GGML_TYPE_F32
  • GGML_TASK_INIT
  • GGML_TASK_FINALIZE
  • GGML_OP_POOL_AVG
  • GGML_OP_POOL_MAX
  • GGML_OP_POOL_COUNT
  • GGML_TYPE_F32
  • GGML_TYPE_F16
  • GGML_TYPE_F32
  • FLT_MAX
  • ggml_compute_params
  • ggml_tensor
  • ggml_compute_forward_im2col_f16
  • ggml_compute_forward_conv_transpose_2d
  • ggml_compute_forward_pool_1d
  • ggml_compute_forward_pool_2d
  • ggml_compute_forward_upscale
  • ggml_compute_forward_pad_f32
  • GGML_TYPE_F32
  • GGML_SORT_ASC
  • GGML_SORT_DESC
  • GGML_TASK_INIT
  • GGML_TASK_FINALIZE
  • GGML_SOFT_MAX_UNROLL
  • GGML_SOFT_MAX_ACCELERATE
  • GGML_FP32_TO_FP16
  • GGML_FP16_TO_FP32
  • GGML_FP16_TO_FP32
  • GGML_FLASH_ATTN_EXP_FP16
  • ggml_compute_params
  • ggml_tensor
  • ggml_compute_forward_pad
  • ggml_compute_forward_argsort_f32
  • ggml_compute_forward_argsort
  • ggml_compute_forward_flash_attn_f32
  • ggml_compute_forward_flash_attn_f16
  • GGML_VEC_DOT_UNROLL
  • ggml_compute_params
  • ggml_tensor
  • ggml_compute_forward_flash_attn
  • ggml_compute_forward_flash_ff
  • ggml_compute_forward_flash_attn_back
  • ggml_compute_forward_win_part_f32
  • GGML_TASK_INIT
  • GGML_TASK_FINALIZE
  • GGML_OP_NONE
  • GGML_HASHTABLE_FULL
  • GGML_HASHTABLE_ALREADY_EXISTS
  • struct ggml_compute_params
  • struct ggml_tensor
  • struct ggml_hash_set
  • struct hash_map
  • ggml_compute_forward_map_custom3
  • ggml_compute_forward_cross_entropy_loss_f32
  • ggml_compute_forward_cross_entropy_loss_back_f32
  • ggml_compute_forward
  • ggml_hash_size
  • ggml_hash
  • ggml_hash_find
  • ggml_hash_contains
  • ggml_hash_insert
  • ggml_hash_find_or_insert
  • ggml_hash_set_new
  • ggml_hash_set_free
  • ggml_new_hash_map
  • ggml_hash_map_free
  • 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
  • struct ggml_cgraph
  • struct hash_map
  • struct ggml_hash_set
  • ggml_recompute_graph_node
  • ggml_build_backward_gradient_checkpointing
  • ggml_add_or_set
  • ggml_acc_or_set
  • ggml_add1_or_set
  • ggml_sub_or_set
  • ggml_compute_backward
  • ggml_visit_parents
  • ggml_build_forward_impl
  • ggml_build_forward_expand
  • ggml_build_backward_expand
  • ggml_graph_nbytes
  • ggml_graph_overhead_custom
  • ggml_graph_overhead
  • ggml_new_graph_custom
  • ggml_new_graph
  • ggml_graph_view
  • ggml_graph_cpy
  • ggml_graph_dup
  • ggml_graph_reset
  • ggml_graph_clear
  • GGML_DEFAULT_N_THREADS
  • CACHE_LINE_SIZE
  • ggml_cgraph
  • ggml_compute_state_shared
  • ggml_compute_state
  • ggml_graph_clear
  • ggml_graph_compute_thread
  • ggml_graph_plan
  • ggml_graph_compute
  • ggml_graph_compute_with_ctx
  • ggml_graph_get_tensor
  • ggml_graph_export_leaf
  • GGML_FILE_MAGIC
  • GGML_FILE_VERSION
  • ggml_tensor
  • ggml_cgraph
  • ggml_graph_export
  • ggml_graph_import
  • ggml_graph_print
  • ggml_graph_dump_dot
  • ggml_opt_set_params
  • ggml_opt_get_params
  • ggml_opt_get_grad
  • ggml_opt_acc_grad
  • ggml_opt_adam
  • GGML_MAX_PARAMS
  • MAX
  • ggml_tensor
  • ggml_lbfgs_iteration_data
  • ggml_is_scalar
  • ggml_nelements
  • ggml_opt_init
  • ggml_graph_plan
  • ggml_new_object
  • ggml_set_zero
  • ggml_graph_compute
  • ggml_opt_acc_grad
  • ggml_get_f32_1d
  • ggml_vec_dot_f32
  • ggml_vec_norm_f32
  • ggml_vec_norm_inv_f32
  • ggml_vec_neg_f32
  • ggml_opt_default_params
  • ggml_opt
  • ggml_opt_resume
  • ggml_opt_resume_g
  • QK4_0
  • QK4_1
  • QK5_0
  • QK5_1
  • QK8_0
  • GGUF_MAGIC
  • GGUF_VERSION
  • GGUF_DEFAULT_ALIGNMENT
  • gguf_str
  • gguf_value
  • gguf_kv
  • gguf_header
  • gguf_tensor_info
  • gguf_context
  • ggml_opt_adam
  • ggml_opt_lbfgs
  • ggml_quantize_q4_0
  • ggml_quantize_q4_1
  • ggml_quantize_q5_0
  • ggml_quantize_q5_1
  • ggml_quantize_q8_0
  • ggml_quantize_chunk
  • gguf_fread_el
  • gguf_fread_str
  • gguf_init_empty
  • gguf_init_from_file
  • gguf_find_key
  • gguf_get_val_u32
  • gguf_free
  • GGML_PAD
  • GGML_ALIGNED_FREE
  • GGUF_TYPE_NAME
  • GGUF_TYPE_UINT8
  • GGUF_TYPE_INT8
  • GGUF_TYPE_UINT16
  • GGUF_TYPE_INT16
  • GGUF_TYPE_UINT32
  • GGUF_TYPE_INT32
  • GGUF_TYPE_FLOAT32
  • GGUF_TYPE_UINT64
  • GGUF_TYPE_INT64
  • GGUF_TYPE_FLOAT64
  • GGUF_TYPE_BOOL
  • GGUF_TYPE_STRING
  • GGUF_TYPE_ARRAY
  • gguf_context
  • gguf_header
  • gguf_kv
  • gguf_str
  • gguf_value
  • gguf_arr
  • gguf_tensor_info
  • gguf_free
  • gguf_type_name
  • gguf_get_version
  • gguf_get_alignment
  • gguf_get_data_offset
  • gguf_get_data
  • gguf_get_n_kv
  • gguf_find_key
  • gguf_get_key
  • gguf_get_kv_type
  • gguf_get_arr_type
  • gguf_get_arr_data
  • gguf_get_arr_str
  • gguf_get_arr_n
  • gguf_get_val_u8
  • gguf_get_val_i8
  • gguf_get_val_u16
  • gguf_get_val_i16
  • gguf_get_val_u32
  • gguf_get_val_i32
  • gguf_get_val_f32
  • gguf_get_val_u64
  • gguf_get_val_i64
  • GGUF_TYPE_INT64 类型:枚举 描述:表示有符号64位整数的类型
  • GGUF_TYPE_FLOAT64 类型:枚举 描述:表示浮点数的类型
  • GGUF_TYPE_BOOL 类型:枚举 描述:表示布尔值的类型
  • GGUF_TYPE_STRING 类型:枚举 描述:表示字符串的类型
  • GGUF_TYPE_ARRAY 类型:枚举 描述:表示数组的类型
  • GGML_MAX_DIMS 类型:整数 描述:表示张量的最大维度数量
  • GGML_PAD 类型:函数 描述:用于对齐内存的函数
  • GGML_ASSERT 类型:宏 描述:断言宏,用于检查条件是否为真
  • gguf_context 描述:表示上下文信息的结构体
  • gguf_tensor_info 描述:表示张量信息的结构体
  • gguf_buf 描述:表示缓冲区的结构体
  • gguf_str 描述:表示字符串的结构体
  • gguf_set_val_f64
  • gguf_set_val_bool
  • gguf_set_val_str
  • gguf_set_arr_data
  • gguf_set_arr_str
  • gguf_add_tensor
  • gguf_set_tensor_type
  • gguf_set_tensor_data
  • gguf_buf_init
  • gguf_buf_free
  • gguf_buf_grow
  • gguf_bwrite_str
  • gguf_bwrite_el
  • gguf_write_to_buf
  • gguf_write_to_file
  • gguf_get_meta_size
  • gguf_get_meta_data
  • ggml_cpu_has_avx
  • ggml_cpu_has_avx_vnni
  • ggml_cpu_has_avx2
  • ggml_cpu_has_avx512
  • ggml_cpu_has_avx512_vbmi
  • ggml_cpu_has_avx512_vnni
  • ggml_cpu_has_fma
  • ggml_cpu_has_neon
  • ggml_cpu_has_arm_fma
  • ggml_cpu_has_metal
  • ggml_cpu_has_f16c
  • ggml_cpu_has_fp16_va
  • ggml_cpu_has_wasm_simd
  • ggml_cpu_has_blas
  • ggml_cpu_has_cublas
  • ggml_cpu_has_clblast
  • ggml_cpu_has_gpublas
  • ggml_cpu_has_sse3
  • ggml_cpu_has_sse3
  • ggml_cpu_has_ssse3
  • ggml_cpu_has_vsx
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档