CONCEPT INDEX

把名词放回程序里

已公开两讲的中文名称、英文全称与概念解释,连接到相应的讲义主题。

55 个概念 · 定义、示例和应用相互连接

FLOP / FLOP/s

FLOP = Floating Point Operation(浮点运算),是运算计数单位;FLOP/s = Floating Point Operations per Second(每秒浮点运算数),是速率。一次融合乘加(FMA,Fused Multiply-Add)按 2 FLOPs 计。

计算强度

选定存储层次下,运算次数除以搬运字节数;张量容量不等于实际流量。

stride

相邻逻辑坐标的地址增量;一定说明单位是元素还是字节,以及对应哪一根轴。

发射槽 / 发射宽度

发射槽(issue slot)是一个周期中发射一条指令的一次机会;发射宽度(issue width)是每周期最多能发射的条数。使用机会还需指令就绪且执行资源可用,槽数不等于线程数或运算单元数。GPU 中还需注明计的是 warp 级指令,以及哪个调度范围。

SIMD / SIMT / SPMD

SIMD = Single Instruction, Multiple Data(单指令多数据);SIMT = Single Instruction, Multiple Threads(单指令多线程);SPMD = Single Program, Multiple Data(单程序多数据)。SPMD 描述程序表达,前两者描述执行组织,不在同一分类层。

warp / warpgroup / CTA

CTA = Cooperative Thread Array(协作线程阵列),对应 CUDA 线程块;warp 是线程执行分组,warpgroup(WG)是现代指令的一种协作范围。参与范围与驻留资源要分开。

occupancy

实际驻留 warp 数相对于上限的比例;它不直接等于可发射指令比例或执行单元利用率。

合并访存

看同一条访存指令中一组 lane 的地址集合;单个线程连续读不能独自保证合并。

高带宽内存(HBM)

HBM = High Bandwidth Memory(高带宽内存),通过堆叠存储芯片和宽接口提高传输能力,常用于高端 AI 加速器。HBM 带宽与主机/设备互连带宽不同。

批量(batch)与矩阵行数

批量是一批样本或请求。线性层矩阵的M是本次处理的输入向量总数;等长输入[b,L,K]可以整理为[bL,K],所以M不一定等于请求数。

阿姆达尔定律(Amdahl’s law)

固定工作量时,未加速部分限制整体加速;还应计入新增通信与协调开销。比例指基线时间,而非代码行数。

屋顶线模型(Roofline)

用计算峰值与带宽乘计算强度中较小的一项估算性能上界。数据类型、运算路径与统计流量的存储层次必须匹配。

执行子分区

SM 内组织调度、寄存器与执行资源的硬件分区。以 V100 为例,一个 SM 有四个子分区,每个调度器管理固定的一组驻留 warp。一个 block 的 warp 可以使用多个子分区,一个子分区也可管理来自不同 block 的 warp;具体 warp 编号如何对应调度器不是 CUDA 编程模型保证。

warp 调度器 / 计分板

计分板(scoreboard)跟踪寄存器等依赖是否满足;warp 调度器在其管理的驻留 warp 中选择可发射的指令,还要满足发射与执行资源条件。已经驻留、指令就绪和被选中发射是三件事;正常选择另一驻留 warp,无需进行 OS 线程切换式的状态保存与恢复。

NaN

Not a Number(非数值),表示无效运算等情况的特殊浮点编码;不等同于无穷大。

Q / K / V

Query / Key / Value(查询 / 键 / 值),注意力机制中的三类向量;Q 与 K 决定相关性权重,再对 V 加权汇总。