AI模型的计算过程可系统性地拆解为“取”、“算”、“存”三大阶段每个阶段又可细化为多个子步骤并对应着关键的延迟指标。1. “取”阶段数据与指令获取此阶段负责将模型权重、输入数据及计算指令从存储系统加载至计算单元。子步骤核心任务关键延迟指标1.1 指令取指 (Instruction Fetch)从指令缓存I-Cache或内存中读取下一条待执行的指令。分支预测失败惩罚 (Branch Misprediction Penalty)当CPU/GPU错误预测分支跳转方向时需清空流水线并重新取指造成10-20个时钟周期的延迟。1.2 数据加载 (Data Load)将模型权重Weights和输入数据Activations从内存层次结构如HBM、DRAM加载到片上缓存或寄存器。缓存命中率 (Cache Hit Rate)衡量所需数据在高速缓存如L1/L2 Cache、KV Cache中直接命中的比例。未命中Miss需访问更慢的存储导致缓存未命中延迟 (Cache Miss Latency)可达数百个时钟周期。1.3 权重预取与广播 (Weight Prefetching Broadcasting)在分布式训练或MoE模型中提前将所需权重从参数服务器或其他计算节点拉取到本地或在节点间广播。网络通信延迟 (Network Latency)跨节点数据传输的端到端延迟受网络带宽、协议开销和物理距离影响。MoE all-to-all通信延迟在混合专家模型中Token路由后所需的跨节点数据交换延迟。2. “算”阶段核心计算执行此阶段在算术逻辑单元ALU、张量核心Tensor Core等计算单元上执行矩阵乘、卷积等核心运算。子步骤核心任务关键延迟指标2.1 指令译码与发射 (Instruction Decode Issue)将取到的指令解码为微操作并发射到相应的功能单元。流水线停顿 (Pipeline Stall)由于数据依赖如前一条指令结果未就绪、资源冲突或结构冒险导致流水线空转的周期数。2.2 计算执行 (Execution)在ALU、FPU或Tensor Core上执行实际的浮点或整数运算。计算延迟 (Compute Latency)完成一次基本运算如FMA所需的时钟周期。内存墙 (Memory Wall)延迟由于数据供给速度远低于计算速度导致计算单元空闲等待数据的延迟这是冯·诺依曼架构的主要瓶颈。2.3 同步与归约 (Synchronization Reduction)在分布式计算中等待所有并行计算单元完成工作并对结果进行汇总如梯度All-Reduce。同步延迟 (Synchronization Latency)等待最慢计算单元Straggler的时间。归约通信延迟在集群中进行All-Reduce等集合操作产生的网络延迟。3. “存”阶段结果写回与更新此阶段将计算结果写回内存或缓存并可能更新模型状态。子步骤核心任务关键延迟指标3.1 结果写回 (Write-Back)将计算单元的运算结果写回寄存器或缓存。写缓冲区满停顿 (Write Buffer Stall)当写缓冲区Write Buffer已满时后续的存储指令必须等待导致流水线停顿。3.2缓存一致性维护 (Cache Coherence Maintenance)在多核/多GPU系统中确保不同核心的缓存中同一数据副本的一致性如MESI协议。一致性协议通信延迟为维护一致性缓存间发送无效化Invalidation或更新消息所产生的延迟。3.3模型状态更新 (Model State Update)在训练过程中将计算出的梯度更新到优化器状态和模型权重中。参数更新延迟特别是对于大规模模型将更新后的权重从GPU HBM写回至CPU内存或参数服务器的延迟。在存算一体等新型架构中此延迟可能被显著降低。3.4 输出返回 (Output Return)将最终的模型输出如生成的Token从设备内存传输回主机内存或发送给用户。端到端延迟 (End-to-End Latency)从用户提交请求到收到完整响应的总时间是衡量推理性能的终极指标包含首Token延迟 (TTFT)和Token间延迟 (TPOT)。核心延迟优化技术代码示意以下以优化“取”阶段的缓存命中率为例展示一种软件预取策略import numpy as np def prefetch_aware_matrix_multiply(A, B, C, block_size, prefetch_distance): 带有数据预取意识的块矩阵乘法旨在提升缓存命中率。 A, B: 输入矩阵 C: 输出矩阵 (初始为零矩阵) block_size: 缓存友好的分块大小 prefetch_distance: 预取提前量以迭代次数计 n A.shape[0] # 假设我们针对B矩阵进行预取 for i in range(0, n, block_size): for j in range(0, n, block_size): # 1. 预取阶段提前将未来要用的B矩阵块加载到缓存 if j prefetch_distance * block_size n: _prefetch_block_B B[j prefetch_distance * block_size: j (prefetch_distance 1) * block_size, i prefetch_distance * block_size: i (prefetch_distance 1) * block_size] # 模拟硬件预取指令如__builtin_prefetch in C # 此处为逻辑表示实际由编译器或硬件完成 pass # 2. 计算当前块 for k in range(0, n, block_size): A_block A[i:iblock_size, k:kblock_size] B_block B[k:kblock_size, j:jblock_size] C[i:iblock_size, j:jblock_size] np.dot(A_block, B_block) return C # 使用示例 A np.random.randn(1024, 1024) B np.random.randn(1024, 1024) C np.zeros((1024, 1024)) result prefetch_aware_matrix_multiply(A, B, C, block_size256, prefetch_distance2)注释此代码展示了通过分块提升空间局部性和模拟预取将未来需要的数据提前加载来优化缓存利用率的思路是减少“取”阶段延迟的经典方法。总结延迟指标的层级关系这些延迟指标共同构成了模型执行的性能画像。端到端延迟是最终用户体验的体现而缓存未命中延迟、流水线停顿和分支预测失败是构成其微观时间开销的主要因素。优化往往需要从算法如提升数据局部性、系统如优化内存层次和硬件如采用存算一体架构多个层面协同进行。参考来源延迟指标解析缓存命中率、流水线停顿与分支预测5大关键指标如何评估AI算力网络的通信性能算力≠速度TOPS、GFLOPS、带宽、延迟这些指标怎么读AI硬件的未来发展方向——存算融合AI算力网络中低延迟通信协议的实现原理与代码示例AI算力网络中的算力模型安全验证方法