IBM|IBM开源BlueGene/Q超级计算机内部的核心

IBM|IBM开源BlueGene/Q超级计算机内部的核心

文章图片

IBM|IBM开源BlueGene/Q超级计算机内部的核心

文章图片

IBM|IBM开源BlueGene/Q超级计算机内部的核心

导读:此次IBM开源是一次众望所归的举动 。
【IBM|IBM开源BlueGene/Q超级计算机内部的核心】早2019年夏天 , IBM就开源了Power指令集 , 而在开源软件生态系统中度过了职业生涯的Kulina表示 , 在某个时候他会要求IBM开源实际的Power核心 , 以便人们可以参与设计基于Power的芯片 。 甚至没有到一个月 , IBM就公开将Power核心之一VHDL文件捐赠给OpenPower社区 。


至少从硬件业务的标准来看 , 这是很快的 。 但是实际上 , OpenPower基金会总裁 , IBM负责电源处理器验证的人Mendy Furmanek表示 , 开放Power内核已经有一段时间了 , 并会逐步开放硬件业务 。
Furmanek表示 , 实际上 , 选择Power-A2内核作为第一个开放的内核有几个原因 。 首先这是众望所归 。 此外 , 其后的Power-EN和Power-A2的开发目是针对整个环境进行优化 , 但也针对自定义进行优化 。 该设计具有可以紧密耦合到内核的辅助单元 。 最重要的是 , Power-A2设计具有平衡性能和功耗的能力 。 ”
关于Power-EN和Power-A2的一些历史也许是为了对此进行一点分析 , 并解释为什么IBM不只是抓住自己商业芯片中使用的Power8或Power9内核 , 然后将VHDL文件分散到GitHub上并称之为完成任务 。
IBM的系统和技术小组创建了芯片和服务器 , 其IBM研究部门共同开发了一种大规模并行 , 低功耗的Power变种 , 称为Wire-Speed Processor , 专门设计用于运行高吞吐量的工作.些 。 这些工作通常被降级为切换芯片或其他类型的网络ASIC , 但也可以很好地运行数据库或HPC仿真和模型等线程密集的工作负载 。
该测试芯片最终称为Power-EN , 是网络边缘的简称 , 它是使用IBM自己的45纳米绝缘硅(SOI)芯片制造技术开发的 , 该技术在十年前揭晓时是世界一流的 。
2010年2月Power-EN具有16个内核 , 具有64位处理和内存寻址功能 , 基本时钟速度为2.3 GHz , 时钟上限为3 GHz 。 它支持同时多线程 , 每个内核有四个线程 。 内核以四个为一组排列 , 共享的L2缓存重达2 MB , 并使用IBM的嵌入式DRAM(eDRAM)技术进行蚀刻 , 该技术已在Power服务器芯片中使用了几代 , 效果非常好 。 每个内核具有16 KB的L1指令缓存和16 KB的L1数据缓存 。
该芯片具有14.3亿个晶体管 , 这在十年前是一个不错的数目 , 其中包括两个DDR3内存控制器(每个通道具有一个或两个DIMM) , 三个芯片到芯片链接 , 用于在节点中实现NUMA内存共享(带有每个链接20 GB /秒的带宽 , 这在当时是很大的) , 四个10 Gb /秒的以太网控制器 , 和两个PCI-Express 2.0控制器 。
Power-EN集成了加密和压缩加速器 , 还包括一个特殊的以太网主机适配器 , 该适配器还可以充当数据包处理器 。 它支持服务器虚拟化管理程序 , 并且可以虚拟化自己的I / O和存储 。

线速处理器的概念是合并网络处理和数据库以及应用程序和业务逻辑处理-所有这些都是高度线程化的 , 并且都依赖于从外部来源获取数据作为应用程序堆栈的一部分 。
有趣的是 , Power-EN内核(称为A2)是有序执行程序 , 而不是无序执行程序 , 每个时钟可以发出两条指令 。 事后看来 , 更有趣的是- 等待它 -Power -EN拥有我们所听说的唯一现代处理器内核 , 其电路中没有推测性执行 。 Google在2018年1月发现了Spectre和Meltdown安全漏洞 , 投机执行已在所有商业处理器上造成了不同程度的影响 , 但这对于使用Power-EN的A2内核的人来说并不是问题 。
例如 , 在美国的劳伦斯·利弗莫尔国家实验室和阿贡国家实验室以及德国的Forschungszenrum Julich安装的BlueGene/Q大规模并行超级计算机 , 仅举三个例子 。 事实证明 , BlueGene/Q机器使用了称为Power-A2的Power-EN处理器的改进版本 。
Power-A2处理器的芯片上共有18个内核:其中16个用于计算 , 一个用于运行Linux操作系统并避免其他内核的抖动 , 最后一个是备用的 , 当IBM晶圆厂生产出来的芯片时 , 它确实被用来提高芯片的良率 。

在这种情况下 , IBM将用于BlueGene/Q系统的5D环形互连嵌入到管芯上 , 该互连具有11条以2 GB /秒的速度运行的链接 。 Power-A2在芯片中央有一个14端口纵横制交换机/路由器 , 以支持点对点 , 集合和隔离消息 。 它还实现了节点之间的直接内存访问 。 BlueGene / Q中使用的Power-A2芯片具有14.7亿个晶体管 , 并且仅以1.6 GHz运行 , 以保持热量低至55瓦 。 在劳伦斯·利弗莫尔(Lawrence Livermore)的“红杉”系统中 , 花了96个机架和157万核的机器才能达到20 petaflops的性能 , 但是以6.6兆瓦的功率完成了 , 这在当时还是相当不错的 。
BlueGene/Q系统的核心是第一个开放源代码的原因还有一个:IBM已经准备好了该芯片的FPGA仿真器 , 可以将其分离出来并提供给OpenPower社区 。 IBM有很多自己开发的工具用来开发芯片 , 这并不是它可以在社区上松懈的东西–就像Google刚将Borg容器和系统协调器放到GitHub上一样 。 它必须清理掉它 , 在Go和更通用的用例集中重写它 , 并将其称为Kubernetes 。
Power-A2内核支持大尾数字节顺序和小尾数字节顺序 , 这意味着它可以运行IBM自己的AIX和IBM i操作系统以及Linux摇摆的任何一种方式(在Power上也是如此) 。 看到有人为运行这些操作系统制造了一些真正的横向扩展Power芯片 , 这将非常有趣 。 24核Power9和大概48核Power10的内核非常笨重 , 并不是为了提高电源效率而设计的 , 而是在整个过程中都表现出色且可扩展的 。

这是该整数核的那个框图的放大图 , 因为它有点模糊:

据我们所知 , IBM并未开放Power-A2芯片中的四泵浦浮点单元 , 这给了BlueGene / Q所有的petaflops 。 同样重要的是要意识到IBM正在开放A2I内核 , 而不是完整的Power-A2芯片 。
这很有趣 。 Power-A2整数内核实现于45纳米中 , 面积为2.9平方毫米 , 在2.3 GHz时产生0.9瓦特 。 预计将采用7纳米工艺(大概在IBM当前与Power芯片的晶圆合作伙伴三星合作实施) , 对于整数核 , 该面积将降至0.17平方毫米 , 基本3 GHz时功率为0.15瓦 , 顶部3瓦时为0.5瓦速度为4.2 GHz 。
除了开放Power-A2内核外 , 无论是否相信 , IBM都在要求开放其他内核和芯片 , 包括一些较旧的32位设计 。 人们还对开放IBM为索尼和微软创建的游戏机芯片感兴趣-我们认为Power系列的“ Cell”变体将在2009年至2013年期间曾在洛斯阿拉莫斯国家实验室的“ Roadrunner”超级计算机中使用 , 因此很有名 。 也很有趣 。
而且总是有可能在核心甚至完全打开Power8 , Power9甚至Power10 。 一切皆有可能 。 我们已经提出了建议-Furmanek并没有说这很愚蠢 , 但她也没有做出任何承诺-Power10应该是IBM自己设计的最后一个芯片 , 而Power11应该是第一个由所有芯片设计者共同提供帮助的芯片 。 我们认为 , 这很难做到 , 就像由委员会建造大象一样 。 但是 , 应该有一种方法可以创建比IBM今天提供的产品更多样化的Power芯片系列 , 而在Power-A2上打开内核是第二步 。 打开PowerISA永远是不够的 , 但这也是一个很好的第一步 。


    推荐阅读