nvidia在gtc22春季展发布采用hopper新架构的h100 gpu,并在多重软硬件改良与优化后,带来6倍于前代a100 gpu的ai运算性能提升。
在gtc22春季展的开幕演说中,nvidia创办人兼首席执行官黄仁勋发布了次世代采用全新hopper架构的h100 gpu,笔者也在《nvidia于gtc 2022发布全新hopper gpu架构,还可与grace合体变身超级芯片》文中介绍了h100 gpu的规格,接下来笔者将更进一步分析hopper的架构革新。
从硬件结构的观点出发,h100 gpu的最小组成区块为流媒体多重处理器(streaming multiprocessors,sm,内部具有128组fp32 cuda核心),并由2个sm组成材质处理集群(texture processing clusters,tpc)、9个tpc组成gpu处理集群(gpu processing clusters,gpc),而完整的h100 gpu具有8组gpc(共有144组sm),此外还有容量高达60mb的l2缓存内存与12组hbm3内存控制器(支持6组hbm3或hbm2e堆栈),并支持pcie gen5与nvlink等对外传输资料的总线。
hopper架构中全新的第四代tensor core可以在同时脉的前提下,提供2倍于前代的稠密(dense)或稀疏(sparse)运算的原始性能,并具有更具效率的资料管理单元,能够节省30%的资料传输耗电。
由于ai运算的特性需要依赖大量的资料吞吐,因此对外传输带宽将对整体性能造成决定性的影响,虽然h100的pcie gen5能够提供128 gb/s的总带宽(单向64gb/s),但nvidia仍不满足于此,因此在hopper架构导入带宽达到900gb/s的nvlink,具有7倍于pcie gen5的带宽,整体聚合带宽(aggregate bandwidth)更是比现今最快的服务器高出30倍,能为处理tb级资料量的应用程序带来10倍的整体性能表现。
黄仁勋在gtc22的访谈中提到,nvidia的策略是尽可能的使用pcie总线,其优点在于每个设备都可以独立运行,其次选用的总线则是ucie,它与pcie类似消耗更少电力并提供更高带宽,但其应用场景为裸晶互联(die to die),尽管这项技术还在起步阶段,但nvidia仍相当看好其未来发展。
不过黄仁勋也表示ucie仍为周边接口而无法直接深入芯片内部(ucie cannot tap directly into the chip. it’s still a peripherals interface.),nvlink则能够几乎直接黏合2个芯片的内存系统,让它们在连接之后,本质上就像同一个芯片,虽然还是会有少许延迟与虚耗,但它们可以使用相同的程序模型(programming model),因此会在需要连接所有运算单元与内存的使用场景中使用nvlink。
采用hopper新架构的h100 gpu是目前最先进的gpu与加速运单元。
h100 gpu具有transformer engine、dpx指令、机密运算、第二代多执行实例gpu等新功能,更多资讯可以参考本文。
h100 gpu的最小组成区块为流媒体多重处理器(sm),内部具有128组fp32 cuda核心。
2个sm组成tpc,9个tpc组成gpc。完整的h100 gpu具有8组gpc(共有144组sm),以及60mb的l2缓存内存与12组hbm3内存控制器。
可以看到在nvlink网络高带宽优势的协助下,能够有效提升h100的ai训练性能。
hopper架构的一大特色就是支持全新的fp8资料类型,它采用8个位元来记录浮点数,并支持e5m2、e4m3等模式,其资料格式如下:
e5m2:1个位元记录正负号,5个位元记录指数(exponent,表示次方数),2个位元记录尾数(mantissa,表示数字资料)。适合动态范围较大且较不要求精确度的资料
e4m3:1个位元记录正负号,4个位元记录指数,3个位元记录尾数。适合需要更高精确度但动态范围较小的资料
虽然fp8会牺牲少许运算的精确度,但与fp16或bf16等资料类型相比,可以将资料的容量减半,不但更节省内存空间,也能让资料吞吐量翻倍。
为了要发挥fp8的优势,全新的transformer engine运算引擎能够以对运算框架透明的方式支持fp8资料类型(简单地说就是不需修改程序,也可以享有fp8的加速效果。用户可手动设置激活、停用fp8资料类型),发挥在进行自然语言处理时,将网络速度提高6倍又不失其精度。
另一方面,全新的dpx指令的动态规划(dynamic programming)功能也对整体运算性能有极大帮助,它的2大核心功能为递归(recursion)与备忘(memoization),前者能将复杂的问题拆分为多个简单的子问题,从而节省运算的工作量与时间,至于后者则会将会被重复使用多次的子问题答案存储起来,以便往后直接查找答案并略过运算。
nvidia表示dpx指令能够提升多种算法的执行效率,针对包括路线优化、基因组学等应用,与使用传统处理器(cpu)相比甚至能将执行速度加快达40倍之谱。
综合各项改善,将h100与前代a100相比,h100的sm数量提升带来1.2倍性能增益、tensor core性能提升带来2倍性能增益、transformer engine带来2倍性能增益、运行时脉提升带来1.3倍性能增益等多重改良下,h100能在特定应用场景下带来6倍于a100的运算性能。
fp8资料类型可分为e5m2、e4m3等模式,可以提升ai运算性能,分别适合动态范围较大且较不要求精确度,以及需要更高精确度但动态范围较小的资料。
h100在本身运算架构提升与fp8资料类型的协助下,与前代a100相比能够提升6倍tensor core资料吞吐量。
h100与a100在各种不同资料类型的运算性能对照表,可以看到同类型下h100有1.5~3.2倍的性能,而h100搭配全新的fp8可以带来较a100搭配fp16达6.4倍的性能表现。
dpx指令所支持的动态规划功能,在路线优化应用中能带来40倍于处理器的运算性能。
在sm数量提升、tensor core性能提升、transformer engine、运行时脉提升等多重改良下,h100能在特定应用场景下带来6倍于a100的运算性能。
h100 gpu的另一大特色笔者在先前也曾提到,就是它具有相当大的使用弹性与扩展性,从最基本的sxm模块版本与h100 pcie gen 5 gpu运算卡,到集成connectx-7网络芯片的h100 cnx运算卡,并有hgx h100服务器、dgx h100计算机、dgx superpod超级计算机,通过不同的组态来满足用户多样的应用需求。
想要更深入了解hopper架构的读者,可以下载nvidia提供的hopper架构白皮书(pdf,7.5mb)。