从Stampede超算看Xeon Phi异构计算:架构演进与工程实践
1. 项目概述德克萨斯的心脏地带一台“巨兽”正在苏醒如果你在2012年底路过德克萨斯大学奥斯汀分校可能不会想到在校园一角的德州高级计算中心里一群工程师和技术人员正在为一件“庞然大物”做最后的冲刺。这不是什么新的体育场馆而是一台代号为“Stampede”的超级计算机。它的目标很简单成为当时全球科学计算领域最通用、最强大的工具之一。对于像我这样长期混迹于高性能计算和半导体行业的人来说Stampede的亮相不仅仅是一则新闻它更像是一个时代的注脚标志着从传统CPU集群向异构计算架构大规模进军的号角已经吹响。这台机器最引人注目的莫过于它成为了英特尔Xeon Phi协处理器技术的全球首发平台试图在NVIDIA Tesla GPU几乎垄断的加速计算市场撕开一道口子。Stampede的设计理念很“德州”——大而全追求极致的规模与兼容性。它由超过6400个戴尔PowerEdge C8220节点构成搭载了12800颗英特尔至强E5处理器这本身就已经是一个惊人的数字。但真正的重头戏是那超过6000颗的英特尔至强Phi协处理器。官方宣称仅Phi协处理器就能贡献超过7 petaflops的峰值性能加上CPU部分的2 petaflops整机性能逼近10 petaflops在当时的全球超算TOP500榜单上直接空降第七名。想象一下182个机柜总重超过50万磅占地1.1万平方英尺消耗5兆瓦的电力以及内部超过75英里的网络线缆——这完全是一个由钢铁、硅和电力构成的数字怪兽。然而它的核心价值不在于这些冰冷的数字而在于它试图解决的一个核心矛盾如何让科学家们已有的、庞大的科学计算代码能够相对轻松地利用起新兴的众核加速硬件而不必经历伤筋动骨的重写。2. 核心架构解析为何是“Xeon Xeon Phi”2.1 性能与通用性的平衡术TACC主任Jay Boisseau当时有一句很经典的话“没有一台系统能成为所有人的一切但我们把Stampede配置成了一台对大多数人来说都‘棒极了’的系统。”这句话精准地概括了Stampede的设计哲学。在那个时代超级计算机的设计开始出现分野一类是像日本的“京”那样为特定应用高度定制化追求极致的能效和峰值性能另一类则是像Stampede这样面向更广泛的科学计算社区追求架构的通用性和编程的便捷性。美国国家科学基金会的资助背景决定了Stampede必须服务于天文、物理、生物、气象、工程等众多学科的上百个研究项目预计每年要支持近700个课题。这种“通才”定位是选择“Xeon Xeon Phi”组合的根本原因。至强E5处理器是当时服务器市场的绝对主力其x86架构和成熟的软件生态确保了几乎所有科学计算软件都能开箱即用。而新加入的至强Phi内部代号“Knights Corner”采用的是英特尔Many Integrated Core架构。从本质上讲它不是一个传统的协处理器而更像是一个简化的、拥有数十个x86核心的独立计算卡。它的最大卖点正是与至强E5共享指令集和编程模型。这意味着科学家们用C、C或Fortran写的代码理论上只需要重新编译加上一些针对并行化和向量化的优化指导就能在Phi上运行。这极大地降低了从纯CPU平台迁移到异构平台的门槛和风险。2.2 与GPU加速路线的正面较量要理解Stampede选择Phi的意义就必须把它放在与NVIDIA Tesla GPU加速方案的竞争背景下来看。在Stampede上线时TOP500榜单上使用协处理器的62个系统中有50个使用的是NVIDIA GPU而Phi仅有7个。NVIDIA凭借其CUDA生态在高性能计算加速领域建立了巨大的先发优势。GPU的众核架构在诸如分子动力学、气候模拟等高度并行、计算密集型的应用上表现出了惊人的性能。然而GPU路线有一个显著的痛点编程模型。CUDA虽然强大但它是一套相对独立的编程环境。将传统的CPU科学代码移植到GPU上往往意味着代码的重构甚至重写开发人员需要学习新的编程范式如CUDA C这个过程被许多科学家视为畏途可能耗时数周、数月甚至更久。Boisseau对此直言不讳“当你把代码移植到GPU时你必须投入大量的工作。”相比之下英特尔为Phi描绘的蓝图是“平滑迁移”。TACC的研究人员Lars Koesterke解释道“MICXeon Phi的架构名称对标准编程语言和工具的支持使得几乎任何代码都能为MIC编译并在MIC上原生执行。” 开发者甚至可以直接登录到协处理器上进行调试和优化。这种“同构编程”的便利性是英特尔对抗NVIDIA生态壁垒的核心武器。Stampede作为Phi的首次大规模部署就是检验这一武器成色的最佳试验场。注意这里需要澄清一个常见的误解。“平滑迁移”不等于“无痛优化”。将现有代码编译后能在Phi上运行这只是第一步。要想充分发挥Phi上数十个核心的威力必须对代码进行深度的并行化和向量化优化这可能涉及算法重构、内存访问模式调整等复杂工作。但无论如何起步的门槛确实降低了。2.3 系统配置的细节与考量让我们拆解一下Stampede的硬件配置这能帮助我们理解当时工程决策的细节计算节点6400个戴尔C8220X节点。每个节点标配2颗英特尔至强E5-2680处理器共16个物理核心以及至少1颗英特尔至强Phi 5110P协处理器。Phi 5110P拥有60个核心主频1.053 GHz配备8GB GDDR5内存。网络采用 Mellanox InfiniBand FDR56 Gb/s网络进行节点间互联。这是确保数千个节点能高效协同工作的“神经系统”其低延迟和高带宽对超算整体性能至关重要。存储配备了一套高性能的Lustre并行文件系统总容量达14 PB峰值读写带宽超过200 GB/s。海量的数据吞吐能力是支撑大规模模拟和数据分析的基础。大型内存节点除了标准节点Stampede还包含了16个“大型内存节点”每个节点配备了1TB内存和NVIDIA Kepler架构的GPUK20。这个设计非常巧妙它承认了GPU在某些特定的大内存、高带宽计算任务上的优势体现了TACC“多供应商商店”的务实态度。作为公立机构他们需要为研究人员提供多样化的技术选择。这种混合架构CPU Phi 少量GPU使得Stampede成为一个灵活的“计算工坊”。传统的、并行化程度不高的代码可以在至强E5上舒适地运行经过一定并行化改造的代码可以尝试在Phi上获得加速而对于那些早已用CUDA优化好的、或特别适合GPU架构的应用大型内存节点提供了另一个选择。3. Xeon Phi协处理器的深入技术剖析3.1 MIC架构x86的众核远征英特尔至强Phi协处理器本质上是一次将x86架构推向极致并行化的尝试。传统的至强处理器核心数量有限当时主流是6-8核但每个核心功能完整、性能强大适合处理复杂的、分支预测多的串行任务。而MIC架构反其道而行之它在一个芯片上集成了多达60个以上的简化版x86核心基于古老的Pentium P54C设计顺序执行流水线每个核心通过超线程技术支持4个线程。这样设计的逻辑是对于科学计算中大量存在的、高度规则化的浮点运算如矩阵乘法、流体力学网格计算我们不需要那么复杂的核心。用大量简单的核心同时处理海量相似的计算任务反而能获得更高的能效和吞吐量。每个Phi核心都配备了一个宽达512位的向量处理单元可以一次性处理16个单精度或8个双精度浮点数这是其性能的关键来源。编程模型是Phi与GPU最大的不同。GPU采用“主机-设备”模型CPU是主机GPU是设备数据需要在主机内存和设备显存之间显式拷贝。而Phi可以被视为一个独立的、拥有自己Linux操作系统的“协处理节点”。程序可以通过多种模式运行原生模式程序直接加载到Phi上运行完全独立于主机CPU。卸载模式程序主线程在CPU上运行通过编译指导语句如OpenMP 4.0的target指令将特定的并行循环区域“卸载”到Phi上执行。数据移动由编译器和运行时系统自动管理。对称模式将Phi和CPU视为对等的计算资源使用MPI进行通信共同参与一个大规模并行计算。这种灵活性特别是与CPU共享源代码和工具链的特性是Phi吸引像TACC这样面向广泛科研用户机构的核心魅力。3.2 实际部署与挑战根据报道到2012年10月已有超过2000颗Phi协处理器安装到Stampede中预计到2013年1月正式上线时会超过6000颗。这种分批部署是大型超算项目建设的常态。TACC甚至预期在2015年左右会进行一轮升级再增加约1600颗更新型号的Phi。然而在实际应用中Phi的优势和挑战都很快显现出来。优势正如宣传所言对于许多已有良好OpenMP或MPI并行基础的代码移植到Phi上确实相对快速。研究人员不需要完全重写代码逻辑只需关注如何更好地利用其众多的核心和宽向量单元。但挑战也同样严峻内存带宽瓶颈虽然Phi拥有8GB的GDDR5内存带宽高于当时的主流CPU但与同时期的高端GPU如NVIDIA K20X相比仍有差距。对于内存带宽敏感型应用Phi的性能提升可能不如GPU显著。双精度性能早期的Phi 5110P更侧重于单精度浮点性能其双精度性能相对较弱。而许多科学计算应用尤其是涉及数值稳定性的模拟严格要求双精度。这限制了一部分应用对Phi的采用。能效比在追求每瓦特性能的超级计算领域Phi的能效比并未展现出对GPU的明显优势。5兆瓦的总功耗对于一台峰值10 petaflops的机器来说在当时并非顶尖水平。生态系统的滞后尽管编程模型友好但围绕Phi的第三方库、调试工具和性能分析工具生态远不如已经发展多年的CUDA生态成熟。这给深度优化带来了困难。4. Stampede的历史意义与行业影响4.1 作为技术试验场的价值Stampede的成功部署和稳定运行其意义远超一台排名第七的超算本身。它成为了英特尔MIC架构在大规模生产环境中的“试金石”。成千上万来自不同领域的科研人员将他们形形色色的代码运行在这套新架构上为英特尔提供了无比宝贵的真实世界反馈。哪些应用在Phi上表现出色哪些遇到了难以克服的障碍编程模型在实际使用中到底有多“平滑”这些问题的答案直接影响了英特尔后续产品如代号Knights Landing的第二代至强Phi甚至最终转向GPU架构的研发方向。对于TACC和美国国家科学基金会而言Stampede是一次成功的投资。它为数以千计的研究项目提供了前所未有的计算能力推动了从新材料发现、基因组测序到宇宙演化模拟等一系列前沿科学的进展。它证明了基于商用组件戴尔服务器、英特尔处理器和部分新兴加速技术构建顶级超算的可行性这种模式后来被广泛借鉴。4.2 异构计算时代的预演Stampede所处的时代正是高性能计算从单纯比拼CPU核心数量向CPU与各种加速器GPU、FPGA、专用ASIC等协同工作的异构计算时代转型的关键期。Stampede的“CPU为主Phi为辅GPU补充”的架构是那个过渡期一个非常典型的样本。它揭示了异构计算的两个核心命题性能易得性如何让现有的、庞大的软件资产以最小的代价享受到新硬件架构带来的性能红利Phi的x86兼容路线是一种答案而NVIDIA后来推出的CUDA移植工具如CUDA Fortran、对标准并行编程模型的支持加强则是另一种回应。这场竞争推动了整个行业在编程便利性上的进步。架构多样性没有一种架构能通吃所有负载。Stampede中保留GPU节点正说明了这一点。未来的超算必然是混合架构需要智能的运行时系统和调度器能够自动将计算任务匹配到最适合的硬件单元上执行。4.3 遗产与启示Stampede在服役多年后最终退役但它的遗产仍在。它标志着英特尔在数据中心加速市场的一次重大战略进攻虽然Xeon Phi产品线最终未能战胜GPU而逐渐淡出但这场竞争加速了英特尔在并行计算、高带宽内存等方面的技术积累并最终促使其以更新的姿态如独立GPU产品线重返竞技场。对于超算中心的设计者和科研用户来说Stampede项目留下了宝贵的经验务实的技术选型选择技术不能只看峰值性能指标必须综合考虑编程模型、软件生态、维护成本和对现有工作流的支持。TACC选择Phi很大程度上是基于其用户社区代码的现状。供应商多元化的必要性正如Boisseau所说TACC是一个多供应商商店。避免被单一供应商锁定保持技术路线的灵活性和议价能力对大型科研基础设施的长期健康发展至关重要。用户支持是关键部署一台新架构的超算硬件上线只是开始。配套的用户培训、代码移植支持、优化咨询和文档建设才是决定其最终产出科研成果多少的关键。TACC在支持用户使用Phi方面投入了大量资源。回望Stampede的崛起它更像是一个时代的缩影见证了x86架构向众核高并发的极限探索也见证了异构计算在争论与实践中逐渐成为主流。它的故事提醒我们在追求极致算力的道路上硬件性能的纸面数字固然激动人心但让软件和算法能够高效、便捷地驾驭这些硬件才是真正释放计算潜力的钥匙。今天当我们看到基于GPU、AI加速芯片的百亿亿次超算时不应忘记像Stampede这样的先驱在技术路线十字路口所做的探索与尝试它们为后来的道路点亮了灯火也标出了需要绕行的沟壑。