Intro-ops/docs/glossary.md

3.9 KiB
Raw Permalink Blame History

术语表 (Glossary)

GPU 编程

英文 中文 说明
operator / op 算子 GPU 上执行的计算单元,如 copy、softmax
kernel 核函数 在 GPU 上并行执行的函数,由 host 端调用
grid 网格 CUDA 中最高层级的线程组织单元,由多个 block 组成
block 线程块 grid 的子单元block 内线程可以通过 shared memory 通信
thread 线程 GPU 上最小的执行单元
warp 线程束 GPU 调度的最小执行单元NVIDIA 上为 32 个线程)
grid-stride loop 网格跨步循环 让 kernel 处理任意大小输入的技术:每个线程负责多个元素,跨度为 grid 总线程数
shared memory 共享内存 block 内线程共享的片上内存SMEM速度远超全局内存
global memory 全局内存 GPU 的片外显存HBM/DRAM容量大但延迟高
register 寄存器 每个线程私有的最快存储
SM (Streaming Multiprocessor) 流式多处理器 GPU 上的计算核心单元,一个 GPU 包含多个 SM每个 SM 可并行执行多个 warp
coalesced access 合并访问 相邻线程访问相邻地址GPU 可将多次访问合并为一次内存事务
stride 步长 tensor 在某个维度上相邻元素之间的内存地址间隔(以元素数计)
contiguous 连续 描述 tensor 在内存中是否紧密排列、无间隙,合并访问的前提条件
bank conflict 存储体冲突 shared memory 中多个线程同时访问同一 bank 的不同地址导致串行化
__syncthreads() 线程同步 block 内所有线程到达此处后才能继续,用于 shared memory 写入后同步
reduction 归约 将多个值合并为一个值的操作(求和、求最大等)
online softmax 在线 softmax 一遍扫描完成 softmax 的算法,无需单独求 max 和 sum
occupancy 占用率 每个 SM 上活跃 warp 数与理论最大值的比值,影响隐藏延迟的能力
nvcc NVIDIA CUDA 编译器 将 .cu 文件编译为 GPU 可执行的二进制
CUDA NVIDIA 的 GPU 通用并行计算平台与编程模型

数值精度

英文 中文 说明
FP32 / float32 单精度浮点 32 位浮点数,约 7 位有效数字
FP16 / float16 / half 半精度浮点 16 位浮点数,约 3 位有效数字,显存占用为 FP32 的一半
inf / NaN 无穷/非数 浮点溢出或无效运算的结果
tolerance / rtol / atol 容差 测试中允许的数值误差上限

框架术语

英文 中文 说明
descriptor 描述符 封装算子运行所需全部信息(输入输出 shape、dtype、参数的对象
tensor_view 张量视图 对 tensor 的轻量级引用包含数据指针、shape、stride、dtype
backend 后端 算子的具体硬件实现NVIDIA CUDA、MetaX MACA、TileLang
workspace 工作空间 kernel 执行时需要的临时内存
launch / dispatch 启动/分发 将 kernel 函数提交到 GPU 执行队列
FFI 外部函数接口 Python 调用 C 动态库的机制(本项目用 ctypes

TileLang 术语

英文 中文 说明
TileLang Python DSL用 tile 级别的语义描述计算JIT 编译为 GPU kernel
fragment 片段 tile 在单个线程上的局部数据块,对应寄存器或 shared memory
T.alloc_fragment 分配片段 创建 tile 级别的局部 buffer
T.copy 拷贝 在 tile 和全局内存之间搬移数据
T.Parallel 并行循环 循环的每次迭代可并行执行(不依赖前一次迭代的结果)
T.Serial 顺序循环 循环必须按序执行(后一次依赖前一次的结果)
T.reduce_sum 归约求和 对 fragment 内的元素做求和规约
JIT 即时编译 运行时将 TileLang Python 函数编译为 GPU 机器码