ARM-GPU将在高性能计算中脱颖而出

ARM-GPU将在高性能计算中脱颖而出,第1张

GPU已经成为加速高性能计算工作负载的标准平台,至少对于那些已经对其代码进行了调整以完全支持加速的工作而言。但是直到最近,大部分加速还是发生在使用Intel Xeon或IBM Power处理器的主机系统上。但是随着Nvidia兑现了支持Arm作为X86和Power的对等产品的承诺,由Arm-GPU组合提供支持的HPC的前景已大大增加。

从Nvidia的角度来看,考虑到Arm将在未来的HPC部署中取代X86,特别是在欧盟和英国,这当然很有意义。在美国和其它地方,Arm被视为向高性能计算生态系统注入更多多样性和竞争的一种方式。此外,Arm在超大规模、云计算和企业设置方面还具有更广泛的地理可能性。

三大知名超级计算中心正在帮助Nvidia将这种Arm-GPU计算模型实现为HPC:日本的RIKEN,英国的布里斯托大学和美国的橡树岭国家实验室。

以橡树岭为例,实验室已通过为基于ThunderX2的Wombat测试平台群集配备NvidiaV100 GPU并使用该设置移植和基准化一系列加速的HPC代码来着手这项工作。Wombat由16个预制的HPE Apollo70节点组成,每个节点都配备了一对28核的ThunderX2CPU,256 GB RAM和100 Gb / sec EDRInfiniBand网络接口。其中四个节点已配备Nvidia V100 GPU,每个节点两个,每个GPU都挂接到32 GB的HBM2内存中。与橡树岭的“ Summit”超级计算机上设置的V100 GPU相比,Wombat的HBM2内存是其两倍,但接口要慢得多,因为这些GPU使用PCI-Express 30链接而不是Nvidia专门构建的NVLink2互连。

在软件方面,为Wombat用户提供了Arm增强的CUDA 101(预发行版)以及一系列Arm支持的编译器,包括gcc v82,gcc v92,用于HPC v19的Arm编译器。 3,以及具有CUDAFortran支持的PGI开发人员版本。支持库由OpenMPIv31和v40,以及UCX 170以及ArmPerformance Libraries提供的优化的BLAS,LAPACK,FFT等数学例程组成。

在测试的应用程序中有用于比较基因组学的组合度量(CoMet)代码、格罗宁根化学模拟机(GROMACS)、用于分子动力学模拟、量子多体系统的动态簇近似++(DCA ++)代码、大规模原子/分子大规模并行模拟器(LAMMPS)代码以及材料科学的局部自洽多重散射(LSMS)代码等。

橡树岭科学计算小组的计算科学家Wayne Joubert表示,移植是非常简单的,主要是需要更改应用程序构建脚本。例如,CoMet主要方法的移植,测试和基准测试不到两天。其他代码只需几个小时即可移植。

Joubert告诉我们:“这种体验非常类似于将代码从X86转移到Power架构。事实上,移植过程中最大的挑战是确保所有需要的系统软件都安装在系统上。”

ORNL技术集成小组的HPC系统程序员RossMiller表示,移植代码的不同团队在SC19移植代码之前仅几周,因此在大多数情况下,他们只有时间来启动应用程序并进行移植。在Wombat上运行,而不是花费更多的劳动强度来优化其性能。例如,尽管GPU的HBM2容量是Summit上的GPU的两倍,但开发人员没有机会为额外的内存调整问题大小。

“至少在一种情况下(VMD),开发人员已经为X86代码编写了手动调整的SSE,AVX和AVX-512例程,” Miller指出。“ Arm端口必须完全依赖编译器生成的代码,而效率却不那么高。如果开发人员花时间为NEON指令集编写类似的优化例程,那么性能将更加接近。”

通常,GPU性能差不多是Summit的20%,差异归因于功能较弱的主机处理器(ThunderX2与Power9)以及缺乏优化。一些应用受到较低PCIe带宽的影响,而对于另一些应用,差异并不明显。考虑到所有这些因素,再加上Wombat使用的是预制硬件,在某些情况下还使用了预制软件,现在就对这种Arm-GPU产品的相对性能做出确切的决定还为时过早。

同样,评估此特定系统的能源效率也为时过早。他们打算在将来考虑这一点。

每个参与者Arm、Nvidia和HPC用户社区都在打持久战,没有人指望Arm能够像1990年代初X86接管HPC并成为未来三十年的主导架构那样,席卷整个HPC市场。但是Arm可以一点一点地在竞争中脱颖而出。 (EETOP翻译自nextplatform)

广告:创芯大讲堂春节送福利喽!

全场7折(最后一天),祝大家扫货愉快!

从ARM V8到ARM V92,ARM指令集的演进历史以及ARM最重要的Cortex-A系列处理器(CPU Core)的演进过程如下:

ARM V8/V9架构演进

ARMv8架构在2011年10月份推出,至今已经有12年的时间,目前ARM架构已经演进到了v92,今年6月份ARM 官方release了ARMv92指令集对应的移动端(手机/笔记本)CPU核,分别是超大核Cortex-X4,大核A720,以及小核A520。从V8推出到今天,ARM架构的演进过程如下:

ARMv8

发布于2010年10月,主要升级包括:ARMv8引入了全新的架构AArch64以及对应的指令集A64。A64指令集采用32bit定长指令,31个64bit通用寄存器。

相对V7,AArch64架构和A64指令集的引入一方面提升了计算性能,另一方面扩展了寻址能力,支持原生的64bit寻址。当然在实际的使用中,64bit的寻址能力存在浪费,为了减少地址管理的硬件开销,ARM定义了多种虚拟地址位宽,包括36/39/42/47/48/49/52bit。

为了兼容之前的V7架构,除了新引入的AArch64架构以及A64指令集,V8中还把V7兼容架构被定义为AArch32,对应的指令集称为A32和T32,其中T32是对V7时代的Thumb指令的简称,关于Thumb指令请参考ARM官网:ARM7TDMI Technical Reference Manual r4p1

从今天回看历史,ARMv8架构具有划时代的意义,在引入64位架构后,ARM架构具备进入高性能计算领域的基础。伴随着智能手机的快速发展,ARMv8架构不断演进,产生了多个小版本(v81~v85),每个小版本都引入了一些重要的feature,不断完善着ARM架构,随着近些年来云计算的高速发展,ARM的应用领域也从移动端延伸到服务器领域,让ARM变得无处不在(ARM is Everywhere)。

ARMv81

发布于2015年,v81架构引入的主要更新如下:

ISA的更新,包括:

引入了新的原子指令(atomic instruction),增强多核共享数据的操作性能;

引入了新的SIMD指令,即SIMD Instructions for Rounding Double Multiply Add/Substract;

引入LOR(Limited Ordering Regions)特性和新的load、store指令,这些指令基于LOR特性可以减小在大系统中维护Memory Ordering的代价;

改进了MRS,MSR指令,增加PSTATEPAN state bit;

规定CRC32指令是v81必须实现的指令;

Memory Model更新,包括:

支持disable translation table中的APTable,PXNTable,UXNTable属性位;

支持硬件维护 translation table中的Access flag和 Dirty bit;

PSTATE引入了新的state bit,即PAN(Privileged Access Never);

支持LOR(Limited Ordering Region),新引入的Load-Acquire,Store-Release指令在维护memory ordering时可以限定observer,不需要所有的observers都可见,降低维护的开销;

虚拟化更新,包括:

支持16bit-VMID,增加系统虚拟化的扩展能力;

虚拟化主机相关扩展,支持运行在Non-Secure State的Type 2 Hypervisor;

PMU(Performance Monitor Extension)更新,包括:

新增STALL_FRONTEND and STALL_BACKEND events ;

Event number位宽扩展到16 bits;

在MDCR_EL2寄存器中新增HPMD bit,用于disable PMU event counting in EL2;

ARMv82

发布于2017年4月,v82重点针对企业级市场引入了较多的特性更新,一方面改善CPU机器学习和数据处理的性能,另一方面提升大型系统的可靠性和可分析性,v82引入的主要更新如下:

引入对RAS(Reliability, Availability and Serviceability)和SPE(Statistical Profiling Extension)的支持;

增强了memory model,例如:对于64KB页面支持以及最大支持52bit地址位宽,更多详情请参考:Armv8-A Architecture Evolution

支持半精度浮点(half precision floating,float16),提升机器学习性能;

引入SVE(Scalable Vector Extension),提升机器学习性能;

ARMv83

发布于2017年7月,皆在改善安全性,完善虚拟化,增加对不同数据类型的支持,增强memory model等等,v83引入的主要更新如下:

引入Pointer Authentication,防范JOP(Jump-Orientated-Programming)和ROP(Return-Orientated-Programming)攻击;

引入了Nested Virtualization,让Guest Hypervisor可以透明的运行在Non-Secure EL1状态,改善用户基于租赁的云虚拟机(IaaS)运行用户虚拟机(Guest Hypervisor)的性能;

引入新的指令支持浮点复数乘累加;

引入新的指令支持双精度浮点到32bit有符号整型的转换,提升Javascript 性能;

改善memory model,提升原子操作性能;

增大表征cache sets和ways的ID的位宽,支持更大的cache;

ARMv84

发布于2017年底,ARM v84是ARM v8架构以来的重要一次更新,新引入的特性包括:

支持Secure Virtualization;

增强了Nested Virtualization;

支持small translation table;

放松对对齐的限制;

支持memory partition and monitoring(MPAM),实现共享缓存(L3、LLC)QoS管理;

额外的加解密支持;

支持generic counter scaling,通过设置scaling的倍数N,实现1个clock tick计数增加N,以降低功耗;

增加指令加速SHA运算;

ARMv85~v87

ARM官方并没有正式发布过ARMv85及之后的v8版本,ARM将从v85~88引入的更新合并到ARMv9。对应关系为:v85对应v9 v86对应v91 v87对应v92,具体参考:Armv8-x-and-Armv9-x-extensions-and-features

ARMv9

在2021年3月,ARM发布了最新一代的ARMv9架构和对应的CPU IP(X2,A715,A510),标志着ARM架构进了V9时代。实际上V9相对V8的更新并不像V8之于V7那么大,因为从V8第一个版本开始到V9正式发布的10年间ARM通过小版本演进的方式不断完善ARM架构的性能,安全,虚拟化和可靠性。不过有一点需要注意,从ARM V9开始,ARM A系列逐渐抛弃了对32位架构支持,这是一个比较显著的变化。

ARMv9架构的更新主要概括为以下几点:

改进安全性,包括:支持MTE(Memory Tagging Extension),支持CCA(Confidential Computing Architecture)并引入了realm概念;

改进机器学习性能,重点引入了SVE2(Scalable Vector Extensions);

v9引入的具体更新包括:

支持MTE(Memory Tagging Extension),改善关键数据在内存中的存取安全性;

支持Branch Target Identification;

支持Random Number Generator指令;

支持新的CMO(Cache Maintenance Operation)指令即Cache Clean to Point of Deep Persistence;

ARMv91

v91引入的具体更新包括:

General Matrix Multiply (GEMM) instructions

Fine grained traps for virtualization

High precision Generic Timer

Data Gathering Hint

ARMv92

v92引入的具体更新包括:

Enhanced support for PCIe hot plug

Atomic 64-byte load and stores to accelerators

Wait For Instruction (WFI) and Wait For Event (WFE) with timeout

Branch-Record recording

ARM移动端CPU演进

ARM架构演进的载体是ARM几乎每年一代的Cortex-A系列CPU IP,下面列出了ARM发布过的Cortex-A系列处理器。注:ARM后续又开辟了X系列,这里一并列出。

bigLITTLE是ARM经典的核心组织架构,可以有效平衡功耗、面积、性能3个因素,曾应用于主流的手机芯片,而在2017年,ARM再一次升级了bigLITTLE架构,推出了DynamIQ架构,其差异主要在于:原先的bigLITTLE架构典型是两个cluster,每个cluster里面典型配置4个CPU核,这4个CPU核心必须运行在同一时钟源下,也就是说这4个CPU核必须工作在相同的电压和频率下。

而DynamIQ架构将每个CPU核都独立出来,可以运行在独立的电压和频率下,给芯片设计提供最大灵活度。不过实际系统设计上,考虑到芯片供电的复杂度和成本,一般不会给每个CPU核独立供电,而是根据任务等级划分成2~3个group。

每个group工作在相同的电压和频率下,例如:2big+2big+4little架构,1ultra+3big+4little架构,以及最新的高通骁龙8Gen2采用的1ultra(X3)+4big(A715)+3little(A510)的组合。下表展示了ARM的bigLITTLE以及DynamIQ bigLITTLE架构的经典CPU组合。

ARM数据中心CPU演进

得益于最近10年移动计算领域对于PPA的需求不断提升,ARM不断推出新的CPU核,同时不断演进核心的组织架构,从Cortex-A73到X4/A720,从A53到A520,从bigLITTLE到DynamIQ等等一系列的新产品,不断推动着移动计算设备性能快速增长。

移动计算的快速增长不断拓展ARM的性能边界,不断完善ARM架构,近些年,ARM携移动计算时代的累累硕果强势进军数据中心领域,希望能为数据中心提供更高能效比和更高性价比的通用算力,以此扩大ARM架构的市场占有率。

ARM从2019年开始正式发布面向数据中心的Neoverse系列CPU核,实际上Neoverse系列CPU核和移动端的CPU核是高度相似的,只是针对服务器端做了少量更新。

AMBA总线标准演进

ARM能成为移动计算领域的霸主,除了得益于ARM架构和ARM CPU核的不断演进外,另一个重要的推手就是ARM总线标准的不断演进,即AMBA总线标准。

总线标准是SoC的神经系统,所有模块之间的数据交互都需要通过总线来完成。ARM推出的AMBA总线标准充满活力,从AMBA到AMBA5已经演进到了第5代,ARM构建了ARM架构+ARM CPU核+AMBA总线为核心的ARM芯片生态系统。

所有的IP vendor以及SoC芯片设计者都以AMBA总线标准为规范,来构建自己的IP或SoC芯片,这使得AMBA总线成了最成功的总线标准。

ARM互联IP演进

如果说ARM架构落地的载体是CPU核,那么AMBA总线标准落地的载体就是ARM推出的一些列互联IP,即ARM的CoreLink Interconnect。ARM的Corelink Interconnect分为两大系列,即coherent和non-Coherent Interconnect。

Coherent Interconnect实现ARM CPU cluster之间的互联,实现cluster之间的fully-coherency,此外还可以支持IO Device和CPU cluster之间的IO Coherency;non-Coherent实现DMA/Ethernet/Multimedia/CPU等Master到DRAM以及模块配置寄存器等Slave的访问。

fpga主要以下几个方向

1在项目型单位,使用fpga做项目,一年干2-4个项目,基本连轴转,优点是学的多学的快,缺点是比较累

2在产品型单位,使用fpga做产品,一、二年出1、2个产品,大部分时间是维护及升级,优点是比较轻松,缺点是经验少的话积累比较慢(纯逻辑技术角度讲,产品相关的其他方面也很多,例如emc,结构设计等等)

3去一些大公司做asic,先用fpga验证,然后流片,这个也挺好的,现在国内做芯片的单位也不错的

另外提一些个人意见,建议你先精学一门,例如fpga(我最开始就是做逻辑的),到能够掌握逻辑技术了,然后再扩展一些其他的,例如arm或者powerpc。如果你fpga学精了,理解这些处理器是比较容易的,对处理器比较了解后,让你出个方案就非常容易了,这时候你就可以做项目经理了。

另:逻辑人才这两年比较抢手,尤其是高端一点的逻辑人才,如果对这个感兴趣,可以先学一点然后找一份工作

国产芯片为何暴跌?最近,华芯通召开了公司内部交流大会,经过股东大会的决定,宣布公司将于4月30日关闭,所有员工也将于4月30日前离开

到目前为止,这家曾经宣传过的牛气哄哄的国产芯片企业已经成为历史的尘埃

什么是华芯通?

2016年,贵州与高通达成一致,共同成立了合资企业华芯通

该公司成立之初,专注于开发设计,为中国国内提供先进的服务器芯片销售这是我国芯片产业内的一枝独秀,由于强有力的技术支持和充分的资金背景,华芯通受到很多中国人的关注,注册资金只有18亿美元,但在今后的发展中接受了数十亿美元的投资

2018年,华芯通宣布批量生产可供应商用的ARM结构国产服务器芯片:升龙4800,这个消息当时不知道鼓励了多少中国人的芯

据华芯通介绍,该芯片性能和稳定性都达到了国产服务器的顶级水平但是,时隔半年,这个新产品还没有正式登场,华芯通宣布关门

国产芯片为何暴跌?华芯通为什么会破产?

网上铺天盖地的文章分析了华芯通死亡的原因,但在小编看来,华芯通从一开始就不能成功

多年前,ARM服务器确实在业界被炒鱿鱼,受到很多业内人士的关注,认为可以代替X86,整个CPU市场

但从实践来看,ARM服务器的表现相当惨淡

目前,AMD和许多芯片制造商放弃了ARM服务器CPU,转战了X86特别是博通把自己投入巨资开发的ARM服务器CPU卖给了凯位

各种迹象表明ARM正在逐渐退潮

有些中国人喜欢把外国人放屁作为天雷滚滚,亚马逊收购AnnapurnaLabs作为ARM服务器CPU作为论据

但是,稍微看一下资料,Graviton处理器真的很普通,一般来说不一定比现在的手机CPU强多少(最高主频只有23GHz)

苹果公司和高吞吐量公司有多聪明,大家都知道,这两者也败退,难道不能说明问题吗?

由于篇幅的限制,小编也不打算为大家列举更多的实例,但是到目前为止,ARM已经显示出疲劳状态的人很少

国产芯片还能发展吗?

其实这个问题完全是胡说八道,中国芯片产业连续受挫,有步伐困难的情况但是,我国刚开始,芯片产业有很大的上升空间,华为也在5G方面取得了自己的成绩,这个问题完全是反问

国产芯片能否发展?当然可以

从这个角度来看,这样的发展道路只会成为殖民地

不能一口气吃胖子我们现在需要的是完全适合我国的产品,华芯通这样的殖民地不能承担中华民族的复兴责任你觉得怎么样?

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » ARM-GPU将在高性能计算中脱颖而出

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情