FLOP / FLOP/s
FLOP = Floating Point Operation(浮点运算),是运算计数单位;FLOP/s = Floating Point Operations per Second(每秒浮点运算数),是速率。一次融合乘加(FMA,Fused Multiply-Add)按 2 FLOPs 计。
已公开讲义的中文名称、英文全称与概念解释,连接到相应的讲义主题。
80 个概念 · 定义、示例和应用相互连接
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 的地址集合;单个线程连续读不能独自保证合并。
共享内存(SMEM,Shared Memory)是由程序管理的 CTA 工作区(更广协作须注明范围);不是 CPU 缓存一致性的同义词。
从逻辑问题取出的一块数据或输出;逻辑 tile、CTA tile、指令 tile 可以有不同形状。
coherence 约束同一位置副本的读写可见;consistency 约束跨位置的观察顺序。锁还需说明互斥与进展。
线程访问不同变量,却因变量同属一条缓存行而争夺写权限。
配对的发布与接收建立同步边;重复使用缓冲还需要反方向的“读完”交接。
CAS = Compare-and-Swap(比较交换);TAS = Test-and-Set(测试并设置);TTAS = Test-and-Test-and-Set(先测试、再测试并设置)。CAS 提供条件原子更新,TTAS 等待时先只读;原子性不自动提供所需范围和进展。
stream 表示执行队列与顺序约定;pipeline 是让不同阶段处理不同数据的组织方式。创建多个 stream 不保证重叠。
谁执行与谁能观察同步效果须分别明确。不能把 warp、CTA、cluster 或 device 范围的保证互换。
reduce 合并成状态,scan 保留前缀,compaction 使用前缀为保留元素确定唯一地址。
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 一类操作。
Operating System。操作系统;任务数不一定等于操作系统线程数。
Directed Acyclic Graph。有向无环图,节点为任务,有向边为先后依赖。
Partial Differential Equation。偏微分方程,网格迭代是常见数值求解方式之一。
First In, First Out。先进先出,先进入队列的任务先被取出。
Non-Uniform Memory Access。非均匀内存访问,到不同内存节点的访问代价可能不同。
Message Passing Interface。消息传递接口,用于进程间通信。
Modified / Exclusive / Shared / Invalid。已修改 / 独占且干净 / 共享 / 无效。MSI 不含 E,MESI 加入 E;描述缓存行状态。
Single-Writer, Multiple-Reader。单写者、多读者,是缓存一致性中的权限组织原则。
Sequential Consistency。顺序一致性;所有相关操作可解释为保持各线程程序顺序的一次统一交错。与 LL/SC 中的 SC 含义不同。
Load-Linked / Store-Conditional。链接加载 / 条件存储;后者检查保留是否仍然有效,不等同于 CAS 的值比较。
Instruction Set Architecture。指令集架构,规定指令及其可见语义。
Read-Modify-Write。读改写,将读取、修改与写回组织成原子更新。
Mellor-Crummey–Scott。以两位作者姓氏命名的队列锁;等待者主要轮询自己的节点。
Resource Acquisition Is Initialization。资源获取即初始化;利用对象生命周期管理资源,析构时释放。
Hardware Transactional Memory。硬件事务内存,硬件追踪读写集、发现冲突并支持中止。
Host to Device / Device to Host。主机到设备 / 设备到主机的数据复制方向。
Not a Number(非数值),表示无效运算等情况的特殊浮点编码;不等同于无穷大。
Query / Key / Value(查询 / 键 / 值),注意力机制中的三类向量;Q 与 K 决定相关性权重,再对 V 加权汇总。