FLOP / FLOP/s
FLOP = Floating Point Operation(浮点运算),是运算计数单位;FLOP/s = Floating Point Operations per Second(每秒浮点运算数),是速率。一次融合乘加(FMA,Fused Multiply-Add)按 2 FLOPs 计。
已公开两讲的中文名称、英文全称与概念解释,连接到相应的讲义主题。
55 个概念 · 定义、示例和应用相互连接
FLOP = Floating Point Operation(浮点运算),是运算计数单位;FLOP/s = Floating Point Operations per Second(每秒浮点运算数),是速率。一次融合乘加(FMA,Fused Multiply-Add)按 2 FLOPs 计。
选定存储层次下,运算次数除以搬运字节数;张量容量不等于实际流量。
相邻逻辑坐标的地址增量;一定说明单位是元素还是字节,以及对应哪一根轴。
发射槽(issue slot)是一个周期中发射一条指令的一次机会;发射宽度(issue width)是每周期最多能发射的条数。使用机会还需指令就绪且执行资源可用,槽数不等于线程数或运算单元数。GPU 中还需注明计的是 warp 级指令,以及哪个调度范围。
SIMD = Single Instruction, Multiple Data(单指令多数据);SIMT = Single Instruction, Multiple Threads(单指令多线程);SPMD = Single Program, Multiple Data(单程序多数据)。SPMD 描述程序表达,前两者描述执行组织,不在同一分类层。
CTA = Cooperative Thread Array(协作线程阵列),对应 CUDA 线程块;warp 是线程执行分组,warpgroup(WG)是现代指令的一种协作范围。参与范围与驻留资源要分开。
实际驻留 warp 数相对于上限的比例;它不直接等于可发射指令比例或执行单元利用率。
看同一条访存指令中一组 lane 的地址集合;单个线程连续读不能独自保证合并。
HBM = High Bandwidth Memory(高带宽内存),通过堆叠存储芯片和宽接口提高传输能力,常用于高端 AI 加速器。HBM 带宽与主机/设备互连带宽不同。
批量是一批样本或请求。线性层矩阵的M是本次处理的输入向量总数;等长输入[b,L,K]可以整理为[bL,K],所以M不一定等于请求数。
固定工作量时,未加速部分限制整体加速;还应计入新增通信与协调开销。比例指基线时间,而非代码行数。
用计算峰值与带宽乘计算强度中较小的一项估算性能上界。数据类型、运算路径与统计流量的存储层次必须匹配。
Compute Unified Device Architecture。统一计算设备架构;NVIDIA 的 GPU 并行计算平台。
Compute Architecture for Neural Networks。面向神经网络的计算架构;昇腾的异构计算软件平台。
Central Processing Unit。中央处理器,执行主机程序并组织数据与设备工作。
Graphics Processing Unit。图形处理器,用大量并行执行资源处理图形与通用计算。
General Matrix Multiplication。通用矩阵乘法;库接口常表达 C=αAB+βC,课程先研究 C=AB。
Artificial Intelligence / Large Language Model。人工智能 / 大语言模型。
Computed Tomography。计算机断层成像;由投影观测重建内部结构的典型计算应用。
Red / Green / Blue。红、绿、蓝三个颜色通道。
ImageNet Large Scale Visual Recognition Challenge。ImageNet 大规模视觉识别挑战。
Generative Pre-trained Transformer。生成式预训练 Transformer。
Reinforcement Learning from Human Feedback。人类反馈强化学习。
Tensor Processing Unit。张量处理器;Google 面向 AI 张量计算的专用加速器。
Direct Memory Access。直接存储器访问;由专用引擎搬运数据。
Solid-State Drive。固态硬盘,持久保存文件。
Random-Access Memory。随机存取存储器;主机工作数据所在的主存属于这一类存储。
Peripheral Component Interconnect Express。高速外设互连;主机与设备之间的传输带宽不同于显存带宽。
Floating Point。浮点。数字表示总位数;本课分别使用 16 位半精度、32 位单精度和 64 位双精度。
Brain Floating Point。bfloat16,源自 Google Brain 的 16 位浮点格式;与 FP16 的指数和有效数字位数不同。
Out of Memory。内存或显存不足,指某次内存申请无法满足;不只由参数量决定。
Fused Multiply-Add。融合乘加,把乘法与加法融合为一次运算并进行一次最终舍入;性能计数通常按 2 FLOPs。
Institute of Electrical and Electronics Engineers。电气电子工程师学会;IEEE 754 是浮点算术标准。
A Tensor Library。PyTorch 的底层张量与数学运算库。
Basic Linear Algebra Subprograms。基础线性代数子程序;cuBLAS 是其在 NVIDIA CUDA 上的实现。
CUDA Deep Neural Network library / Deep Neural Network。CUDA 深度神经网络库 / 深度神经网络。
Ahead-of-Time。提前;AOTAutograd 在编译路径中提前捕获求导图。
Rectified Linear Unit。整流线性单元,常写为 max(0,x)。
Local Response Normalization。局部响应归一化;AlexNet 用邻近通道的响应调整幅值。
Fully Connected / Convolution。全连接 / 卷积;架构图中 FC6、Conv1 等标记层的类型与序号。
Instruction-Level Parallelism。指令级并行,利用相互独立的指令或依赖链填充执行资源。
Intel Implicit SPMD Program Compiler。Intel 隐式 SPMD 程序编译器,可把一组程序实例映射到 SIMD 通道。
Arithmetic Logic Unit。算术逻辑单元,执行算术与逻辑运算。
SMT = Simultaneous Multithreading(同时多线程)。一个物理核心保留多份硬件线程上下文,可在同一周期从多个线程中选择就绪指令,共享执行资源;不等于增加同等数量的物理核心。Intel 超线程是一种 SMT 实现。
上下文是继续执行所需的状态,如程序计数器与寄存器。OS 上下文切换会更换某个逻辑处理器承载的软件线程,保存旧线程、恢复新线程的状态;SMT 在已驻留上下文间选择指令,不需要每次都进行这种软件保存与恢复。
Streaming Multiprocessor,流式多处理器。GPU 中承载线程块、保存线程状态并执行指令的硬件单元,包含调度、寄存器、共享存储与执行资源。一个普通 CUDA block 整体在一个 SM 内执行;资源允许时,一个 SM 可同时驻留多个 block。SM 与 block 分别属于硬件和软件组织。
SM 内组织调度、寄存器与执行资源的硬件分区。以 V100 为例,一个 SM 有四个子分区,每个调度器管理固定的一组驻留 warp。一个 block 的 warp 可以使用多个子分区,一个子分区也可管理来自不同 block 的 warp;具体 warp 编号如何对应调度器不是 CUDA 编程模型保证。
计分板(scoreboard)跟踪寄存器等依赖是否满足;warp 调度器在其管理的驻留 warp 中选择可发射的指令,还要满足发射与执行资源条件。已经驻留、指令就绪和被选中发射是三件事;正常选择另一驻留 warp,无需进行 OS 线程切换式的状态保存与恢复。
Level 1 Cache / Level 2 Cache。一级缓存 / 二级缓存;层级与共享范围依具体架构而定。
Special Function Unit。特殊函数单元,执行特定数学函数相关运算。
Application Programming Interface。应用程序编程接口,规定调用方式与行为。
Dynamic Random-Access Memory。动态随机存取存储器;HBM 是基于 DRAM 的高带宽内存技术。
Matrix Multiply-Accumulate。矩阵乘累加,计算 D=AB+C 一类操作。
Not a Number(非数值),表示无效运算等情况的特殊浮点编码;不等同于无穷大。
Query / Key / Value(查询 / 键 / 值),注意力机制中的三类向量;Q 与 K 决定相关性权重,再对 V 加权汇总。