迈向新“十”代 解析IBM Power 10处理器
2020-11-17李实
李实
作为业界百年巨头,IBM的大中型电脑在银行、金融等行业依旧有着不可小觑的地位和势力,而这类产品的核心正是IBM自研的Power处理器。虽然Power处理器不是民用设计,离普通用户很远,但是其强劲的性能和复杂的设计,也一直是其他厂商可望不可即的存在,在业内也有着独立的地位。在今年的HotChips年会上,IBM披露了全新Power 10处理器,并宣布它将在未来12个月内开始销售。那么,Power 10处理器都有怎样的出色设计和强劲性能呢?今天本文就和大家一起来解读一下这款处理器的设计和优势。
IBM在2020年8月17日的HotChips年会上详细介绍了其最新的Power10处理器。作为目前非x86架构中最强大的处理器之一,Power架构和相关生态圈在金融、商业、医疗保健和政府行业中依旧有着不可替代的作用和地位。上一代Power 9发布于2017年,一经发布就引发业界关注,Power 9拥有最多24核心96线程、全新的微架构、OMI内存、NVLink支持、PCIe 4.0支持等多项进步,是当时最强悍的企业级处理器之一。时过境迁,在经过多年的研发后,IB M又推出了全新Power 10。这一次,凭借7nm工艺、再度升级的架构以及大幅加强的AI算力,Power 10又将给业内带来深远的影响。
Power 10的发展历史和设计理念
IBM在发布会上先回顾了IBM Power系列近几代的发展历史。首先从Power 7家族开始,Power 7和Power7+采用的是45n m和32n m工艺,进行了多核优化,最多8个核心32线程,支持eDRAM L3缓存。Power 7之后是Power 8,后者的工艺升级到了22nm,核心数量升级到了12核心,每个核心支持8线程SMT,12核心总计可以执行96个线程。在互联方面,Power 8支持PCIe 3.0和NVLink,还加入了OpenPOWER联盟,从这一代开始,IBM开始开源Power处理器的部分特性以吸引全球相关业者基于Power处理器推出产品。离我们最近的一代是Power 9家族,采用14nm工艺,核心数量升级到了最多24个,线程数量最多高达96个,这也是当前Power处理器家族的主力产品。
在2020年,Power 10终于正式上线。简单来说,Power 10在单个系统中最多可以支持60个核心,每个插槽最多支持30个核心,每个核心可以根据配置情况的不同,支持SMT4或者SMT8,因此30个核心的处理器最多可以拥有240个线程。Power 10在處理器设计上采用了模块化方案,处理器之间通过专用总线互联。微架构方面,Power 10使用的是新的CPU微架构,整个处理器还增强了AI性能、提高了能耗比、增强了硬件安全特性、企业级性能等。通用互联架构方面,Power 10支持目前最先进的PCIe 5.0技术,整体硬件架构设计非常激进。
在简单介绍了IBM Power系列处理器发展的相关内容后,IBM给出了设计Power 10的五大重点,这五大重点包括:
1.数据的带宽、容量、可组合性和规模,Power 10系统将带来TB/s的单个插槽数据带宽,PB级别的系统存储容量,每个集群最高拥有16个处理器插槽。
2.强大的企业级核心。Power 10拥有新的核心架构,整体设计更为灵活,缓存更大且延迟更低。
3.端到端的安全功能。IBM提供了PowerVM管理程序,可以配合软件协同实现对硬件的优化。
4.能源效率的改进。依靠全新工艺和架构,Power 10的能效比是Power 9的三倍。
5.AI性能的增强。相比Power 9,Power 10在数学矩阵方面的性能达到了前者的10倍至20倍。
Power 10的宏观结构
IBM在处理器设计的相关信息披露上还是相当积极的,发布会上展示了Power 10的大量新特性和晶元结构图。可以看到,一个完整的Power 10核心拥有16个CPU核心,每个CPU核心可执行最多8个线程也就是SMT8,每个CPU核心L2缓存的容量为2MB,L3缓存容量为8MB。IBM在L3缓存的设计上分为2个区域,每个区域64MB,分配给每个CPU核心为8MB。在CPU核心和L3缓存的外围,则布置了SMP、内存、各类加速器、各种计算集群和PCI界面。再向外一层则是PowerAXON互联界面和内存控制器(OMi)部分。
IBM给出了有关Power 10功能特性的详细表格。在工艺和封装方面,Power 10采用的是三星7nm工艺,这也是该工艺首次应用在规模如此巨大的核心上。值得一提的是,三星7nm工艺使用的是EUV光刻,这意味着三星已经成熟掌握了EuV高世代光刻技术,并能够开始量产如此复杂的CPU核心。Power 10处理器有180亿晶体管,整体面积高达602平方毫米,拥有18个金属层,配置方案为单核配置或者双核配置。
在计算功能设计方面,Power 10处理器出于良率考虑,目前只开放了最多15个核心,再加上sMT8,因此单个Power 10处理器最多能实现120个线程。L3缓存方面,最多120HB容量,但是采用了低延迟和NuHA的设计方案。整个CPU设计还增强了企业级功能、AI和安全功能等。在性能方面,IBM提到Power 10的SIHD性能在普通情况下是Power 9的2倍,在矩阵计算中是Power 9的4倍。另外在L1缓存方面,Power 10的L1 MMU性能是Power 9的4倍。
内存方面,Power 10设计了名为Open Memory Interface(开放性内存系统,简称0MI)的系统,这个系统能够支持各类不同的内存,在配置DDR4的时候,其8通道内存最多可以实现410GB/s的带宽,但是在换用GDDR6的时候,带宽会提升至800GB,s甚至更高。另外在0MI的支持下,Power 10支持存储容量可高达2PB。
在外部互联方面,IBM的PowerAXON互联界面带来了多核心之间的互联功能,PowerAXON能够提供高达1TB/s的互联带宽,并且还可以最多连接16个插槽或者设备,它也可以借助OpencAPI功能帮助系统连接更多的内存、加速器或者I/O设备。
独特的CPU配置方案和互联系统
Power 10的CPU配置方案在业内算得上是很独特的。它目前有2种规格,其中一种是单核心方案,被称为SCM,整个处理器包括15个核心和120个线程,运行频率高达4GHz,整个系统可以配置1个或者16个插槽(主机)。另一个方案是双核心方案,在这种情况下,2个Power 10 CPU核心被封装在一个基板上,被称为DcM,形成了等效1204平方毫米、拥有360亿晶体管的巨大核心。这个核心的最大CPU内核数量为30个,线程数量为240,频率方面相比单核心产品要稍微低一些,运行频率为3.5GHz,整个系统可以配置1个或4个插槽的方案。
接下来IBM重点介绍了Power 10的互联系统。Power 10是通过PowerAXON和OMI在多个处理器之间组建互联体系的。先来看PowerAXON,对SCM配置的Power 10处理器来说,PowerAXON互联总线布置在CPU的4个角落,每个角落有32个总线通道,每个总线通道的带宽是32GT/s,那么整个Power10能够提供的PowerAXON互联总线就是4×4×8×32GT/s=512GB/s。在互联方面,每16个总线通道组成一个链接端子可以和外界进行互联,整个SCM配置的Power 10总计拥有8个通道,使用其中6个就可以和16个处理器实现高速互联。
除了PowerAXON外,OHI也值得一提。整个Power 10的OMI总计有2个,分别分布在处理器的左右两边,每个OHI有8×8个32GT/s的通道,单个OMI可以实现256GB/s的连接,那么2个OMI就能实现512GB/s的连接。OHI除了连接内存外,还可以连接SCH处理器。换句话来说,Power 10处理器的互联包含了横向的PowerAXON和縱向的OMI,最终可以利用处理器本身的互联端口实现16个处理器的大规模互联方案。
IBM还给出了Power 10在互联方面的示意图。其中SCM处理器之间的互联可以通过PowerAXON和OHI完成,此外,OMI还留下了一部分空间用于连接内存。前文提到过,每个OMI内存连接能够为每个处理器插槽提供高达4TB的内存空间,搭配DDR4带宽为410GB/s,其他还可以根据情况支持GDDR系列,以及存储加密等功能。
除了上述内容外,本次Power 10还借助PowerAXON带来了内存聚合功能。内存初始化的时候可以将另一个节点的内存映射为它自己的内存,多个节点可以通过集群共享不同的内存。借助这个功能,在节点中直接连接邻居节点的内存作为共享加载/存储内存。和其他方案不同的是,内存可以作为低延迟的本地内存使用或者作为NUHA延迟的远程内存使用。IBM举了一个例子,比如一个集群中有8个节点,每个节点都有8TB内存,总计64TB内存的话,工作负载A对延迟要求比较敏感,那么可以将本地的4TB内存作为低延迟内存使用,满足自己的计算需求。工作负载B对延迟不敏感,但是需要大容量的话,可以借用其他空余内存,实现24TB的容量。工作负载c需要一部分低延迟内存和一部分大容量内存,那么可以利用本地的8TB低延迟内存搭配16TB高延迟内存使用,这样一来,对一个集群中存在的所有工作任务都可以根据需求将所有64TB内存作为自己的内存,再根据其他占用或者空闲情况进行调配,大大提高内存使用的灵活性和效率。
IBH提到,目前内存聚合功能可能不仅仅是单个集群中多个节点之间的内存容量聚合,还涉及集群之间的内存容量聚合,甚至可以建立专用的内存服务器,和无内存节点之间共享使用,非常方便。
互联性能方面,从IBM给出的数据显示,Power 10的内存性能在各个情况下都是Power 9系统的3倍以上,在使用DDR5 OMI内存的时候,性能甚至可以达到Power 9的4倍以上,提升幅度令人惊讶。
POWer 10的CPU内核:面向企业级计算和AI优化
由于Power 10的定位是面向企业和政府等行业用户,因此其在设计方面自然也针对企业级计算进行了大量优化。IBM给出了一些数据,比如Power 10的整体性能相比Power 9增加了30%,单核心性能增加了20%,性能功耗比相比Power 9处理器每核心达到了2.6倍,每个插槽达到了3倍之多。
在AI优化方面,Power 10的核心加入了全新设计的4倍SIMD矩阵核心、2倍SIMD普通核心、新的ISA Prefix融合、增强的控制和分支单元、2倍的读取单元、4倍的MMU以及4倍的L2缓存设计。由于整体计算规模大幅度增加,因此Power 10的AI计算性能相比之前的产品有了相当显著的提升。
Power 10在架构方面做出了很多优化,IBM列出了最重要的四条内容。其中第一条是Prefix架构,这个新架构极大地扩展了操作码空间、并行寻址、MHA掩蔽等操作的性能。第二条是新的指令和数据格式,这个内容主要是加入了用于控制流和操作对称的新标量指令以及用于提升AI操作吞吐量和数据的新指令。第三是高级系统功能和易用性改善,包括存储控制、debug、内存的冷页面和热页面追踪、复制粘贴的扩展等。第四是动态的能源管理,第五则是安全的云数据和云计算功能等。
最后再来看看Power 10的内核。IBM给出了一张简图用于描述Power 10的内核设计。从这个内核设计可以看出,Power 10分为性能和功耗两个部分,其中前者包含了所有的性能增强,后者包含了一些功耗方面的控制。性能增强部分本文之前已有介绍,包括增加的SIMD、更大的缓存、更低的延迟、更出色的分支预测技术等。后者则主要包括工艺提升、时钟门控电路提升、架构设计的优化、减少的端口和访问等。在架构方面,IBM也给出了一些简略信息。处理器的前端设计除了常规部分外,IBM还提到了LI指令缓存采用748KB、6路方案,执行部分包括4个执行区块,每个都是128bit的规格,另外还加入了一个2×512bit的MMA也就是SIMD向量引擎和矩阵数学辅助加速单元,这是Power 10处理器计算性能最强大的部分。其余的部分包括:Load排序采用了SMT模式下128队列、ST模式下64队列的设计,Load失误部分采用12个队列的设计、指令拾取部分则是16个并行的模式等。总的来说,就现有的消息来看,Power 10的内核整体设计延续了之前Power 9的优势,但是在很多地方做出了加强,尤其是在计算能力和方面等。最终IBM给出了一个算法,Power 10能够在性能是Power 9 1.3倍的基础上,功耗降低至Power 9的0.5倍,因此最终Power 10的能耗比相比Power 9提升了2.6倍,令人称赞。
余威犹在的Power家族
IBM的Power家族和相关处理器产品已经伴随整个业界许多年,在英特尔突飞猛进、AMD攻城略地甚至英伟达都进积极进入更多市场的今天,IBM的Power系列处理器看起来似乎“人淡如菊”,相当低调。不过,低调归低调,Power系列处理器由于面向的市场和传统市场完全不同,更加偏向稳定以及追求安全性的企业、金融、政府市场,因此数据互联能力、整个处理器的稳定和持续工作能力反而更为重要,这也是IBM在Power 10中进一步提升数据互联性能的原因。另外,在AI计算大行其道的现在,有关AI计算的加速也在Power 10中得到了体现。从Power 10的整个处理器架构来看,毫不夸张地说,这几乎是目前最庞大、最复杂和具有最多先进功能的高性能处理器产品。现在的IBM虽然远没有巅峰时期那么强大,但是“余威犹在”四个字用来形容它非常恰当,很多行业依旧无法离开IBM,Power 10的未来也让人看好。