热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

论述arm体系对risc的继承(armx86性能比较)

2019年11月12日,惠普公司HPE事业部(即Cray)宣布与日本富士通公司开展合作,推出基于富士通的A64FX超算处理器,目前已经获得美国洛斯阿拉莫斯国家实验室(LosAlam


2019年11月12日,惠普的HPE事业部,也就是Cray宣布将与日本富士通合作,推出基于富士通的A64FX超级计算处理器。 现为美国洛斯阿拉莫斯国立研究所(Los Alamos National Laboratory )、美国橡树岭国立研究所) Oak Ridge National Laboratory )、日本理化研究所) RIKEN )计算科学中心、纽约州立大学石溪分校富士通的A64FX处理器于2018年8月正式发布,2019年4月正式量产,2019年11月进入商用市场。 这是世界上首款采用ARMv-8A SVE扩展指令集的芯片。 并且,在2019年11月19日的世界超级计算机大会上,NVIDIA(NVIDIA )也发表了构建GPU加速ARM服务器的参考设计。 目前,NVIDIA与ARM、致命芹、富士通美满电子、HPE及其旗下的Cray等生态合作伙伴进行了合作,许多高性能计算软件公司使用NVIDIA CUDA-X库为ARM生态提供GPU


目前,全球基于ARM的超级计算芯片制造商主要有Marvell(Cavium )、富士通和Ampere,其中cavium于2017年11月被Marvel以约61亿美元的价格收购。 Cavium的核心产品是ThunderX2处理器,最有名的APP应用是Cray为英国气象局推出的Isambard系统。 Isambard是一台拥有10000个核心的Cray XC50超级计算机,在世界气象局的超级计算系统中排名第二(中国气象局的“派-曙光”世界第三)法国原子能委员会(CEA )是ATOS BullSEQQ, 由于该系统采用ThunderX2ARM处理器的成本太高,法国已经22年没有进行过核试验,所以改用了模拟的形式。 该项目是欧洲委员会资助的Mont-Blanc3项目的一部分,评估基于ARM的集群对exascale高性能计算(HPC )的适用性,是exascale系统所需的软件生态系统同样为了模拟核试验,美国桑迪亚国家实验室(Sandia National Laboratories )采用了惠普提供的ARM超级计算系统,即Astra。 Astra由2592台服务器组成,每台服务器包含2个ThunderX2处理器。 峰值性能达到2.3PFlops,是超算500强排行榜中唯一的ARM系统,2019年排名第156位。 西班牙国家超计算中心也采用基于ThunderX2处理器的系统。




另一个是富士通。 富士通在超级计算领域拥有相当多的gddcb。 2011年,日本理化所和富土通合作超算“京”。 Linpack测试的最大计算性能达到了10.51PFlops,也就是每秒1.051亿次的浮点计算。 这是人类首次跨越1亿次计算大关,是当年最快的超算,但2011年以后的排名急速下降,2016年成为世界首位的2019年2月,日本理化所宣布将于2019年8月取消“京”,并将其撤除。 “京”的继承人是“Post-K”,指令集从SPARC指令集转换为ARM指令集。 为什么要改为ARM指令集? 答案是采用SPARC后,使用哪个操作系统成了现实的问题。 虽然SPARC有采用“Solaris”系统的先例,但将商用Solaris作为大型并行超级计算机系统会增加处理负担。 富士通决定将曾经应用于PC集群型超级计算机的Linux系统移植到SPARC上。 但是,只有富士通使用SPARC版Linux,没有提供商用软件的供应商,也没有支持该平台的“合作伙伴”。 此外,SPARC版Linux也不完全支持Linux原本拥有的所有软件库。 大多数软件库在重新编译后仍可以正常工作,但也有例外。 一句话,生态联系太差了。 除了日本的内部使用外,海外的客户只有一个,就是台湾的“中央气象局”。 2012年,台湾“中央气象局”以14亿日元(约1亿元人民币)购买了日本超级计算机“京”的商用模型,与日本共同进行了地震和海啸的模拟。


从2013年开始,富士通决定放弃SPARC,不选择x86的理由很简单。 如果采用英特尔的x86体系结构,富士通自己无法设计自己的处理器,无法与其他制造商区别开来。 ARM服务器是为了降低功耗吗? 答案是否定的。 决定功耗性能的不是指令集,而是CPU微体系结构,即从软件的角度看,隐形流水线、寄存器配置等CPU内部设计的贡献要大得多,指令集与微体系结构的关系并不密切当然,ARM指令集的功耗比x86稍低。 如果是RISC型等特性相似的指令集,则除解析指令的解码器电路以外的结构基本相同,因此转移到ARM指令集并不困难。


雷决定将富士通的A64FX用于CS500的“storm”产品线。 Cray将继续使用Marvell的ThunderX2和ThunderX3,主要用于“CPU GPU”系统或运算量较少的纯CPU系统

上,而A64FX将用在需要超大规模数学运算的超算系统上。ThunderX2和ThunderX3主打高性价比市场,A64FX主打高性能市场。据说原本使用ThunderX2的美国桑迪亚国家实验室也用A64FX取代ThunderX2,而不是等待ThunderX3。布里斯托大学与英国气象局的二代Isambard系统也将使用A64FX。

富士通A64FX的核心技术之一是与ARM联合开发的可伸缩矢量扩展(Scalable vector Extensions,SVE)指令集ARM的首个64位架构核心Cortex-A57曾一度瞄准服务器市场,但因为各方面的原因无功而返。随后,ARM将重心转回到移动领域,最新ARM处理器的核心Cortex-A73就只字不提服务器应用。2016年8月,ARM又宣布ARMv8-A增加了SVE指令集,专为高性能计算、数据中心而生。

全球首次使用SVE的超算芯片是富士通的A64FX。SVE将作为ARMv8-A指令集的可选扩展,支持SIMD最低128bt、最高2048bit。SVE对应32个寄存器,较低的128bits与ARMv8-ASIMD&FP共用寄存器。预测寄存器有16个,带宽为SVE寄存器的1/8。A64FX不仅支持128、256、512bit三种单指令多数据流(Single Instruction Multiple Data,SIMD),还支持双精度、单精度、半精度、INT8和INT16,同时支持上一代SPARC64。

SVE与英特尔的AVX512非常相似,也是SIMD用的指令集。但不同的是,目前英特尔AVX最高到512位,英特尔顶级的服务器芯片和9代上消费级CPU都支持AVX512。不过在理论上,每以增加1倍的向量数据宽度,将带来2倍的晶体管数量的增加。目前,英特尔的AVX指令集只实现在片上每个核里,作为核中的一个功能部件,若扩展到1024位,将增加4倍的晶体管数量。因此,AVX1024意味着成本极高,SVE也是如此,因此富士通选择了512位。

SVE的另一特点是无须知道矢量的长度(Vector Length Agnostic,VLA),系统可以自动适应任何带宽的矢量,同时也保护了二进制,无须再进行检查。SVE还可以转换循环/中断语法(do- while loops/break syntax)使之适合SIMD。因为在通常情况下,循环/中断受到失效检测(fault detected)介入后就会退出循环。SVE采用首次失效负载(first fault load)指令集和首次失效寄存器(First Fault Register,FFR)解决了这个问题,这个寄存器在16个预测寄存器之中,一旦检测到失效,FFR寄存器就会禁止内存对后续元素的访问,从而避免循环退出。SVE还有搜集/发散(gather/scatter)指令,应对非连续的数据系统。在硬件方面,A64FX这种高性能处理器采用了HBM2内存,使用了台积电的 CoWes(Chip on Wafer on Substrate)封装工艺和7纳米制造工艺。

A64FX处理器内部构造中,CPU与HBM2之间通过Mcro-bump连接,线宽仅为55微米,比传统的PCB板级线宽密度高20倍。A64FX包含4片HBM2,每片HBM2包含8层堆叠,即8个独立的128bits通道带宽,总带宽达1024GB/s,是全球AI芯片中最高的存储带宽,而排名第二的英伟达Tesla V100存储带宽为900GB/s。

A64FX内部有48个运算内核和4个辅助内核。为了提高并行计算效率,减少因为操作系统造成的时基误差(jitter)累积造成的延迟,富士通特别加入了4个辅助核。在存储方面设置了核心存储组(Core Memory Group,CMG)。CMG分为4组,每组包含12个计算核、1个辅助核、1个L2缓存和1个存储控制器。系统软件可以像非统一内存访问架构(Non Uniform Memory Access Architec ture,NUMA)那样处理CMG。A64FX包含87.86亿个晶体管。

A64FX单精度浮点运算可达6.7854Tflops,大约是英特尔至强铂金8180处理器(28核)浮点运算(3.57Tflops)的两倍。“天河二号A”用的加速卡Matrix2000(128核)是4.916Tflops,此性能是在2.2GHz频率下取得的,8180处理器的默认主频是2.5GHz。A64FX也可以运行在1.8GHz或2.0GHz上,此时只需要风冷即可,而2.2GHz则需要水冷。

台积电和ARM曾经推出采用小芯片(chiplet)设计的8核ARM Cortex-A72设计,整个芯片的面积只有27.88平方毫米(4.4×6.2),运行频率高达4GHz(风冷)。ARM芯片一般运行频率都不超过2.2GHz,而小芯片设计突破了这个上限,大大提升了ARM芯片的性能。这样,未来ARM服务器的发展空间就有望得到大发展,ARM就可以不仅主打低功耗,也主打高性能。


推荐阅读
  • RTThread线程间通信
    线程中通信在裸机编程中,经常会使用全局变量进行功能间的通信,如某些功能可能由于一些操作而改变全局变量的值,另一个功能对此全局变量进行读取& ... [详细]
  • 本文总结了近年来在实际项目中使用消息中间件的经验和常见问题,旨在为Java初学者和中级开发者提供实用的参考。文章详细介绍了消息中间件在分布式系统中的作用,以及如何通过消息中间件实现高可用性和可扩展性。 ... [详细]
  • 本文将详细探讨PHP中C的作用,并对比其他编程语言如Java和C的特点及其适用场景。 ... [详细]
  • 为什么多数程序员难以成为架构师?
    探讨80%的程序员为何难以晋升为架构师,涉及技术深度、经验积累和综合能力等方面。本文将详细解析Tomcat的配置和服务组件,帮助读者理解其内部机制。 ... [详细]
  • 函子(Functor)是函数式编程中的一个重要概念,它不仅是一个特殊的容器,还提供了一种优雅的方式来处理值和函数。本文将详细介绍函子的基本概念及其在函数式编程中的应用,包括如何通过函子控制副作用、处理异常以及进行异步操作。 ... [详细]
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • Docker安全策略与管理
    本文探讨了Docker的安全挑战、核心安全特性及其管理策略,旨在帮助读者深入理解Docker安全机制,并提供实用的安全管理建议。 ... [详细]
  • 对于初学者而言,搭建一个高效稳定的 Python 开发环境是入门的关键一步。本文将详细介绍如何利用 Anaconda 和 Jupyter Notebook 来构建一个既易于管理又功能强大的开发环境。 ... [详细]
  • 本文探讨了如何通过优化 DOM 操作来提升 JavaScript 的性能,包括使用 `createElement` 函数、动画元素、理解重绘事件及处理鼠标滚动事件等关键主题。 ... [详细]
  • 本文详细介绍了如何在Oracle VM VirtualBox中实现主机与虚拟机之间的数据交换,包括安装Guest Additions增强功能,以及如何利用这些功能进行文件传输、屏幕调整等操作。 ... [详细]
  • Linux 防火墙与端口管理必备命令
    在使用 Linux 系统进行服务部署和问题排查时,防火墙和端口管理是不可或缺的操作。本文将详细介绍如何查看防火墙状态、端口占用情况,以及如何开放和关闭端口,帮助初学者更好地掌握这些技能。 ... [详细]
  • Ping 命令的高级用法与技巧
    本文详细介绍了 Ping 命令的各种高级用法和技巧,帮助读者更好地理解和利用这一强大的网络诊断工具。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 本文讨论了在进行 MySQL 数据迁移过程中遇到的所有 .frm 文件报错的问题,并提供了详细的解决方案和建议。 ... [详细]
  • 在分析和解决 Keepalived VIP 漂移故障的过程中,我们发现主备节点配置如下:主节点 IP 为 172.16.30.31,备份节点 IP 为 172.16.30.32,虚拟 IP 为 172.16.30.10。故障表现为监控系统显示 Keepalived 主节点状态异常,导致 VIP 漂移到备份节点。通过详细检查配置文件和日志,我们发现主节点上的 Keepalived 进程未能正常运行,最终通过优化配置和重启服务解决了该问题。此外,我们还增加了健康检查机制,以提高系统的稳定性和可靠性。 ... [详细]
author-avatar
吴尧丹_449
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有