硬件 - 编译器协同技术

搜索文档
逆向英伟达GPU,解码芯片龙头的成功奥秘
半导体行业观察· 2025-05-14 09:47
现代GPU微架构研究 - 学术界多数研究仍基于15年前的GPU核心流水线设计,而现代英伟达GPU架构已发生显著变化[1][2] - 通过逆向工程揭示了现代英伟达GPU核心设计的关键方面,包括指令发射逻辑、寄存器文件结构和内存流水线特性[1] - 研究发现现代GPU采用硬件-编译器协同技术,在执行过程中由编译器引导硬件工作[1] 指令发射机制 - 指令发射阶段采用CGGTY策略(编译器引导的贪心优先且最年轻优先)[36] - 线程束就绪条件包括指令缓冲区有效性、无数据依赖风险以及执行资源可用性[28] - 发射调度器优先选择同一线程束指令,否则切换到最年轻的可执行线程束[33] 依赖管理系统 - 采用基于控制位的软硬件协同设计,包括停顿计数器、Yield位和6个依赖计数器[18][19] - 相比传统计分板机制,新方案面积开销仅0.09%(计分板为5.32%)且性能更优[77][78] - 编译器负责设置停顿计数器处理固定延迟指令依赖,依赖计数器处理可变延迟指令依赖[16][18] 寄存器文件架构 - 包含多种寄存器文件:常规寄存器(65536个)、统一寄存器(64个/线程束)、谓词寄存器等[41] - 采用寄存器文件缓存(RFC)缓解端口竞争,每个子核心缓存6个1024位操作数值[44][45] - 编译器通过重用位管理RFC分配策略,命中时可减少寄存器文件访问[22][45] 内存流水线特性 - 每个子核心可缓冲5条连续内存指令,共享结构每2周期处理1个请求[47][48] - 全局内存访问延迟:32位加载指令WAR延迟9-11周期,RAW/WAW延迟29-38周期[52] - 共享内存访问延迟普遍低于全局内存,32位加载RAW/WAW延迟23-24周期[52] 模拟器性能提升 - 新模型平均绝对百分比误差(MAPE)为13.98%,比先进模拟器降低18.24%[7][67] - 流缓冲区指令预取器(16条目)使性能接近完美指令缓存(加速比1.47x)[69][71] - 模型验证覆盖143个基准测试,在RTX A6000上90%百分位误差仅31.47%[68] 跨架构适用性 - 研究成果适用于安培和图灵架构,在图灵架构上MAPE降低6.94%[80] - 核心微架构设计理念可扩展至其他英伟达架构,仅需调整特定指令延迟[80] - 硬件-编译器协同设计成为现代GPU架构主流趋势,显著提升能效比[89]