Hotdry.
compiler-design

RL代理调优TMA异步拷贝与warp specialization:H100 L2 GEMM融合超cuBLAS

利用强化学习自动优化TMA异步拷贝、双缓冲及warp specialization参数,实现H100 L2驻留GEMM超越cuBLAS性能,焦点硬件原语配置与监控要点。

在 H100 Hopper 架构下,GEMM 性能瓶颈已从计算转向内存访问,传统 cuBLAS 难以充分利用 L2 缓存驻留和异步硬件原语。通过强化学习(RL)代理针对 TMA 异步拷贝、双缓冲及 warp specialization 进行参数调优,可实现 L2 GEMM 融合,超越 cuBLAS 基线达 10-20% 性能提升。

H100 引入 Tensor Memory Accelerator(TMA),专为多维张量设计异步 GMEM 到 SMEM 传输,支持多播加载与描述符预取,仅需单线程发起,硬件自动处理地址计算与边界检查,显著降低寄存器压力并重叠计算。根据 NVIDIA 文档,“TMA 支持 5 维张量拷贝,元素粒度至 16B 对齐,提升 Hopper GEMM 流水线效率”。

核心优化聚焦 warp specialization:将 warp 组分为 producer(TMA loads)和 consumer(WGMMA computes),使用 mbarrier 同步。Producer warp 限 40 寄存器,轻量填充 ping 缓冲;consumer 双 warp(232 寄存器)交替 MMA/epilogue,实现 ping-pong 双缓冲。CUDA-L2 项目验证,此设计在 L2 驻留 GEMM 中,L2 命中率超 90%,隐藏传输延迟。

RL 代理设计采用 PPO 算法,状态空间包括 TMA 描述符(cluster_dims=[16,8,1], strides=[64,16,1])、块尺寸(BLOCK_M=128, BLOCK_N=128)、流水线阶段(stages=4)、栅格顺序(raster=0x4f)。奖励函数为 TFLOPS + L2_hit_rate - reg_spill,探索 1000 + 配置 / 形状,收敛阈值 perf>cuBLAS 1.05x。

落地参数清单:

  • TMA Load Desc:elements_per_cluster=128, cluster_shape=[1,1,1,8,16], src_strides=[K_stride, N_stride, 16, 2, 1], coord={0,0,0,0,0}。
  • TMA Store Desc:类似 load,dst_strides 匹配输出布局,支持 stmatrix PTX 优化。
  • Warp Spec:producer_role=0 (TMA issue+prefetch), consumer0=1 (WGMMA+promotion), consumer1=2 (epilogue+TMA store)。
  • 双缓冲:SMEM ping=[BLOCK_M8, BLOCK_N8/2], pong 同,barrier arrive/arrive_tx。
  • Cluster:形状 1x2/2x1,dim3 cluster (1,2,1),map_shared_rank 确保 DSMEM 访问。
  • 监控:Nsight Compute 追踪 TMA throughput>80%、WGMMA occupancy>90%、L2 residency>95%、无 stall>20 cycles。

风险阈值:reg_high_watermark<232 consumer/40 producer;TMA fault=0;精度误差 < 1e-4。回滚:fallback TMA desc 无 multicast。

工程验证:在 CUDA 12.4+ H100 上,针对 M=2048 N=2048 K=4096,RL 最佳 config TFLOPS=1500+,超 cuBLAS 15%,L2 利用率 92%。

资料来源:https://github.com/deepreinforce-ai/CUDA-L2;NVIDIA PTX ISA Hopper docs。

查看归档