AMD RDNA全新GPU架构探秘:三管齐下 迎接光追
amd发布的新一代rx 5700系列显卡基于7nm新工艺和navi新核心,而在底层是全新的rdna架构,已经走过七年半的gcn架构就此挥手作别。
这些年来,很多用户玩家尤其是a饭一直期待一个全新的gpu架构,但这种事儿的难度远超一般人想象,某种程度上设计一个新的gpu架构甚至要比设计一个新的cpu架构还要难。rdna架构就花费了amd研发团队长达四年的时间,凝聚了无数人的心血,也开启了amd显卡历史上第五代重大架构的新时代。
2000年前,r100核心是a卡的第一代架构,用的还是固定单元设计,3d几何转换和光照效果如今看起来都极为原始。
2001-2007年的r200-r500是第二代架构,简单的vs纹理着色器、ps像素着色器分离式设计,不同的只是比例不同,整个渲染流水线就像一个单通道的单行道。
2008-2011年的第三代terascale架构(代表核心r600)实现了一个飞跃,vs、ps融合为统一着色器,也就是我们常说的流处理器,支持vliw(超长指令字),然后就是2011-2019年的gcn架构(代表核心southern islands),统一着色器加独立的标量、矢量单元,二者比例为1:4。
如今,我们迎来了全新的rdna(radeon dna),还是统一着色器,但标量和矢量单元走向融合,支持simt(单指令多线程) ilp(指令集并行),类似cpu处理器的simd(单指令多数据流),单线程性能和指令集执行效率大大提升。
需要强调的是,rdna是一个全方位重新设计的架构,并不是gcn的又一个升级版,也不是与gcn的混合体,只是集成了gcn架构的指令以保持向下兼容,现有技术仍然可以在rdna架构上得到支持。
rdna架构将是amd gpu显卡未来多年的基石,接下来我们将看到采用7nm+工艺的第二代版本rdna 2,看路线图有望明年初和我们见面。
除了rdna新架构,navi核心还有7nm工艺、gddr6显存、pcie 4.0总线、radeon媒体引擎、radeon显示引擎等诸多全新特性。
navi 10核心集成了103亿个晶体管,相比vega 64 125亿个少了大约18%,而核心面积只有251平方毫米,相比vega 64 495平方毫米更是小了足足一半,因此单位面积性能提升了足足1.3倍。
尽管晶体管更少、面积更小,navi 10核心的性能相比于vega 64却提升了14%,同时功耗降低了23%,能效比因此大涨50%。
纯架构性能上,navi相比于vega在同等功耗、同等配置下提升多达50%,反应到实际产品上,这贡献了产品性能提升的60%左右,另外有大约25%来自7nm新工艺的加持,还有约15%来自频率以及功耗的改进。
amd表示,rdna架构的设计理念主要有四个方面,性能上要满足在现代游戏负载需求,能效上要充分优化功耗和带宽利用率,功能上要壮大生态,扩展性上要从移动到桌面到云端通吃。
为实现上述目标,rdna架构主要从三大方面进行了变革,包括cu计算单元、缓存、流水线,接下来我们逐一和大家分享,但鉴于gpu架构的技术性太强,我们只是蜻蜓点水地大致看一下,最后还有amd关于光线追踪的规划。
新的计算单元设计一共分为40组,每组2个标量处理器、64个流处理器、4个64位双线性过滤单元,总计80个、2560个、160个,执行延迟更低,单线程性能更强,缓存效率更高,整体计算能效比gcn架构有着巨大的提升,而且可适应从游戏到计算各种负载。
多级缓存一致性可以带来更低的延迟、更高的带宽、更低的功耗,包括各处零级缓存、512kb一级缓存、4mb二级缓存。
整个图形引擎也做了重新调整,更加顺畅高效,包括几何引擎、64个纹理单元、4个异步计算引擎(ace),负载分配更加均衡,可以在更低的功耗下达成更高的频率,能效更高。
cu计算单元方面,虽然看起来每一组还是64个流处理器,数量没变,但这个数字是amd反复设计后与处理资源最为平衡的的组合,同时整个计算单元的结构进行了彻底重组,和gcn时代完全不一样了。
rdna架构下,每个cu计算单元的标量解码和发射单元、矢量解码和发射单元、调度器的数量都增加了一倍来到两个,指令处理率因此也提升一倍。
同时,四个sim16矢量单元、四个simd4特殊功能单元变为两个simd32、两个simd8,比如64个线程可组合为两个wave32,然后由两个simd32执行两个wave32,实现单时钟周期指令发射(之前需要四个),simd alu单元的利用率也从25%来到了100%,而且支持wave32、wave64两种执行模式,以应对不同负载需求。
此外,为了强化资源调度和利用的效率,rdna架构还将每两个cu计算单元紧密地捆绑在了一起,组成一个工作组处理器(work group processor),使得可用alu单元、寄存器数量翻番,缓存带宽更是之前的四倍。
缓存方面,rdna架构设计了一套多级一致性结构,每个双cu组合内都有自己的零级缓存,与alu单元的载入带宽翻番,增加了四组新的一级缓存(都是16-way 128kb),降低了二级缓存(16-way 4mb)的拥堵,整体延迟和功耗大大减低。
按照amd的说法,零级缓存的延迟降低了21%,一二级缓存降低24%,内存延迟也低了7%。
另外在一致性多级缓存下,到处都支持delta数据压缩(dcc/图中箭头黄色部分),提高传输率,同时还改进了色彩压缩算法,可供显示引擎读取,着色器也能同时读写压缩的色彩数据。
图形引擎流水线方面进行了大刀阔斧的重组,包括四个增强的ace异步计算引擎,地位更加中心化的结合处理器(包含四个原语单元),64个像素单元。
异步计算一直是a卡的独门绝技,也是起在dx12、vulkan api下表现更好的关键,如今得到增强后,可以更精准地实时控制其他模块。
有趣的是,rdna gpu架构设计也借鉴了zen cpu架构设计的一些先进理念,尤其是在时钟门控方面,效率和能效极高,同时还减少了达到更高频率所需要的逻辑层级。
radeon显示引擎也大幅跃进,支持freesync 2 hdr、hdmi 2.0/displayport 1.4 hdr,针对高分辨率hr显示器优化,可输出4k/240hz、8k/60hz,而且都只需一根数据线即可达成,同时还优化了vr头显显示。
radeon多媒体引擎则大大改进了视频编解码,增加了新的h.265 hdr/wcg编码器,全面支持h.264 1080p600、4k150、8k30解码和1080p360、4k90编码,h.265 1080p360、4k90、8k24解码和1080p360、4k60编码,vp9 4k90、8k24解码,整体编码速度加快40%。
对于大家非常关注的光线追踪支持,gcn、rdna架构都没有专门的硬件单元加速,不过事实上,amd prorender、radeon rays都早就支持了光线追踪,分别面向内容创作渲染和游戏开发。
在下一代rdna架构上,amd会通过硬件单元,支持特定的光线追踪效果在游戏中实时渲染,而即便到了更遥远的未来,amd也不会将光线追踪全部一股脑扔给硬件来本地处理,否则效率会非常低下,而是将借助云计算,实现全场景的光线追踪,保证画面效果的同时,不会给本地硬件太大的压力。