ARM架构未来发展走向:国产处理器能否把握机遇

薪科技快评 2024-02-02 09:08:23
国产处理器及ARM发展策略建议

复杂指令集(x86)凭借其多年来构建的完善生态体系,占据了超过99.5%的市场份额,代表厂商是Intel和AMD。精简指令集主要用于智能手机和嵌入式市场,长期以来由ARM占据着绝大多数的市场份额。ARM v8推出后,其市场不再局限于嵌入式和移动领域,高性能计算、服务器和桌面也都成为其重要拓展方向。

国产CPU研发绝大多数都是采用与国外合作的方式,主要途径包括购买指令集授权、技术合作等。x86阵营的海光和兆芯,通过技术合作获得架构授权。海光第一代CPU采用14nm工艺,支持32核,性能和AMD的Naples相当,目前海光第二代CPU已量产,第三代CPU也即将于2021年中量产。兆芯通过威盛获得x86授权,产品线有面向桌面/嵌入式的“开先”和面向服务器的“开胜”两大产品系列。

ARM阵营的华为和飞腾,购买ARM指令集架构授权,自行编写代码并设计芯片,掌握了完整的知识产权和技术。其中,飞腾于2020年7月发布的面向服务器的腾云S2500,基于16nm工艺,具有64个自主核,主频2.1GHz。华为服务器芯片鲲鹏920,支持64核,主频2.6GHz,采用了先进的7nm工艺,在服务器CPU市场上具备较强的竞争力。

从整体上看,国产CPU芯片产品线相对丰富,不同架构齐头并进,处于百花齐放状态,但也意味着国产CPU的生态体系需要持续完善。

同构计算与异构计算

* 同构计算:由CPU提供算力的通用服务器,如采用x86架构的CPU。

* 异构计算:将不同架构的计算单元组合在一起,如CPU与GPU的组合。

CPU指令集类型:

* 复杂指令集(CISC):以x86架构为主,通过复杂指令和灵活编码提高程序运行速度。

* 精简指令集(RISC):主要有ARM、MIPS和Alpha架构,采用等长指令,并行处理效率高,工艺简单、成本低。

* 同构计算具有较高的兼容性和稳定性,异构计算则更强调性能和能效。

* CISC指令集复杂灵活,RISC指令集精简高效。

* 在不同的应用场景中,选择合适的计算方式和指令集至关重要。CPU提供算力的通用服务器为同构计算。CPU作为通用服务器中最核心的部件,负责指令读取、译码和执行。CPU指令集可以分为两类:复杂指令集(CISC)和精简指令集(RISC)。复杂指令集以x86架构为主,通过可实现复杂功能的指令和灵活多样的编码方式来提高程序的运行速度;精简指令集出现在复杂指令集之后,主要有ARM架构、MIPS架构和Alpha架构等,精简指令集采用等长的指令,将一条指令分割成若干个进程或者线程,交给不同的处理器并行处理,效率较高,工艺相对简单且成本低。

相较于同构计算,得益于人工智能、大数据、VR/AR等新兴应用的快速涌现,以GPU、FPGA等为代表的异构计算模式也在快速发展。异构计算是CPU、ASIC、GPU、FPGA等各种使用不同指令集、不同体系架构的计算单元,在一个混合系统下执行计算的特殊方式。在这种组合下,CPU扮演着指挥统筹和核心控制的角色,与GPU、FPGA等协处理器相互配合实现高效的并行处理。

异构计算协处理器主要包括:

* GPU(Graphics Processing Unit):主要适用于人工智能和图像处理相关场景。目前,全球GPU市场主要由Nvidia、AMD和Intel三家厂商占据。

* NPU(Neural-network Processing Unit):主要适用于推理、训练场景。目前,全球主要独立NPU卡生产厂家有华为和寒武纪等。

* FPGA(Field Programming Gate Array):主要应用在数据中心、通信、航空、国防等有较高并行计算需求的领域。美国厂家Xilinx和Intel占据了90%左右的市场份额,国内厂家主要有紫光同创、广东高云和复旦微电子等。

电信行业ARM架构CPU指令集、操作系统和编译器的统一标准建议:

1. ARM指令集:

* ARM v8.0为基准,推荐ARM v8.2。

* 每年审视,综合考虑各个厂家产品的实际研发进度,以及ARM指令集新的版本是否针对电信行业实际需求做过优化等因素,再决定是否升级指令集版本标准。

2. 编译器:

* GCC9为推荐版本。

* 以后每年审视编译器版本,遵循版本渐进的原则,同时考虑电信行业对编译器稳定的要求,原则上只采用发布一年以上的GCC新版本。

3. 操作系统:

* Ubuntu、SUSE、openEuler等主流Linux操作系统均可。

* 基于当前行业应用情况,建议将电信行业ARM架构操作系统版本基线定义为Ubuntu 20.04 LTS。x86)凭借其多年来构建的完善的生态体系,占据了超过99.5%的市场份额,其代表厂商是Intel和AMD。分析机构Mercury Research公布的2019年全球x86架构处理器市场数据显示 ,Intel份额为95.5%,AMD依靠霄龙(EPYC)处理器的上市,市场份额逐年增加,达到了4.5%。x86架构的国内厂商主要有海光和兆芯。精简指令集主要用于智能手机和嵌入式市场,长期以来由ARM占据着绝大多数的市场份额。在ARM v8推出后,其市场不再局限于嵌入式和移动领域,高性能计算、服务器和桌面也都成为其重要拓展方向。精简指令集国外代表厂商有Ampere(ARM)和Marvell(ARM),国内厂商则有华为鲲鹏(ARM)、飞腾(ARM)、龙芯(MIPS)和申威(Alpha)。国产CPU研发绝大多数都是采用同国外合作的方式,主要途径包括购买指令集授权、技术合作等。

x86阵营的海光和兆芯,通过技术合作获得架构授权。

海光通过和AMD合作,获得x86指令集架构的授权和AMDNaples的IP授权,以及CPU设计的全部接近2000万行源代码。基于AMD的Zen1核心架构开发了海光第一代CPU,采用14nm工艺,支持32核,支持超线程技术,主频最高3.2GHz,性能和AMD的Naples相当,同时具备与x86生态的良好兼容性,目前基于海光自研全新微架构设计的海光第二代CPU已量产,第三代CPU也即将于2021年中量产。目前海光CPU已经大量应用于电信、金融、能源、交通、教育等关键信息基础设施领域。

兆芯通过威盛获得x86授权,产品线有面向桌面/嵌入式的“开先”和面向服务器的“开胜”两大产品系列,其中最新的桌面处理器KX-6000系列,基于16nm工艺,支持8核,主频3GHz,但是与国外高端CPU存在一定差距。

ARM阵营的华为和飞腾,购买ARM指令集架构授权,自行编写代码并设计芯片,掌握了完整的知识产权和技术。其中,飞腾于2020年7月发布的面向服务器的腾云S2500,基于16nm工艺,具有64个自主核,支持2-8路CPU互联,主频 2.1GHz。

华为服务器芯片鲲鹏920,支持64核,主频2.6GHz,采用了先进的7nm工艺,在服务器CPU市场上具备较强的竞争力,目前已有12家整机厂商基于鲲鹏主板推出自由品牌的服务器。

除此以外,龙芯采用MIPS架构,推出的3A/3B 3000产品,主要面向桌面应用。

申威采用Alpha架构,开发了大量自主知识产权的指令集,处理器芯片也不断更新演进,帮助中国的超级计算机拿下多次世界第一。

从整体上看,国产CPU芯片产品线相对丰富,不同架构齐头并进,处于百花齐放状态,但也意味着国产CPU的生态体系需要持续完善。

相较于同构计算,得益于人工智能、大数据、VR/AR等新兴应用的快速涌现,以GPU、FPGA等为代表的异构计算模式也在快速发展。异构计算是CPU、ASIC、GPU、FPGA等各种使用不同指令集、不同体系架构的计算单元,在一个混合系统下执行计算的特殊方式。在这种组合下,CPU扮演着指挥统筹和核心控制的角色,与GPU、FPGA等协处理器相互配合实现高效的并行处理。当前,协处理器的通用性较低,针对不同场景,主要有以下几种类型:GPU(Graphics Processing Unit)主要适用于人工智能和图像处理相关场景。典型的人工智能类应用有高性能计算、训练、推理等,图像处理类应用有视频图像渲染、云AR/VR、云游戏等。

目前,全球主要独立GPU显卡生产厂家有Nvidia、AMD和Intel。其中,Nvidia在人工智能及图像处理领域产品布局全面,性能、生态良好,占有全球70-90%的市场份额(数据来源:前瞻产业研究院);AMD拥有较丰富产品,性能和生态略差;Intel的独立显卡产品处于起步阶段。

NPU(Neural-network Processing Unit)主要适用于推理、训练场景。目前,全球主要独立NPU卡生产厂家有华为和寒武纪等。华为NPU卡在智慧钢铁(如钢铁表面质检)、工业视觉(如缺陷检测)等领域有一定量的应用。寒武纪NPU卡主要应用在机器视觉(如图像分类、检测)、语音识别、自然语言(如智能客服)、搜索推荐等场景。

FPGA(Field Programming Gate Array,现场可编程逻辑门阵列)是由逻辑门电路组合成的可重复编程器件,在数据中心、通信、航空、国防等有较高并行计算需求的领域有广泛应用。FPGA应用对开发人员要求较高,需要了解底层硬件知识,目前FPGA厂家为了降低开发门槛,在不断优化开发平台,以期使FPGA开发更加快速、便捷。美国厂家Xilinx和Intel占据了90%左右的市场份额,国内厂家主要有紫光同创、广东高云和复旦微电子等。

本文将分析目前ARM架构CPU采用的指令集,操作系统和编译器的版本,并给出电信行业ARM架构CPU指令集、操作系统和编译器的统一标准建议。

1、ARM指令集 ARM架构是不断演进的,基于功能、性能和安全性的考虑, ARM公司每年都会推出不同的架构扩展并进行指令集的版本演进,同时ARM和生态伙伴会在Linux Kernel中持续增加功能来来支持这些最新的ARM架构扩展,从而对绝大部分上层应用屏蔽底层硬件系统架构的区别。考虑到电信行业高可靠性的要求,并基于当前电信应用以及主流ARM架构CPU的现状, 建议今年将电信行业数据中心领域ARM指令集版本起点标准定义为ARM v8.0,推荐标准为ARM v8.2。以后每年审视,综合考虑各个厂家产品的实际研发进度,以及ARM指令集新的版本是否针对电信行业实际需求做过优化等因素,再决定是否升级指令集版本标准。

2、编译器 不同应用对编译器更新频度以及稳定等有不同要求。具体到电信行业,网络云场景偏重业务稳定性,因此稳定的GCC版本是其基本诉求;而对于IT云和公有云等场景,则要求最新的GCC版本充分释放算力。 GCC各个版本的升级都带来新的功能特性和性能收益,但考虑ARM服务器厂商的应用现状和遵循渐进的原则,建议今年电信行业ARM架构下编译器推荐版本为GCC9。相比较GCC7/8, 性能方面GCC9具有更强大的自动矢量化、循环展开等优化特性。前端语言方面,GCC9全面支持C++17,同时在后端架构适配方面,支持ARM Cortex-A76、ARM Neoverse N1等CPU核心,能够充分发挥ARM架构优势。此外,GCC9提供了最新的编译告警提示信息,可以更方便地帮助开发者进行开发调试。 以后每年审视编译器版本,遵循版本渐进的原则,同时考虑电信行业对编译器稳定的要求,原则上只采用发布一年以上的GCC新版本。例如2021年可推动各个CPU厂家采用2020年已发布的最新版GCC10。GCC10不仅包含许多新的体系结构功能,而且还是迄今为止性能最高的GCC版本。采用GCC10编译应用程序可以充分利用最新ARM架构的优势,例如GCC10完全支持SVE的ARM C语言扩展,这使得开发者可以访问4000多种内部函数,并在内核中使用SVE的许多高级功能。此外,GCC10在自动向量化、循环展开等方面做了更多优化。以ARM Neoverse N1为例,采用GCC10进行编译相较于之前的版本,性能有极大的提升。

3、操作系统 当前主流的Linux操作系统包括Ubuntu,SUSE,openEuler等。Ubuntu的开发由英国Canonical有限公司主导,基于Debian发行版和GNOME桌面环境,每2年发布一个LTS长期支持版本, 服务器版可以获得为期5年的技术支持。SUSE是Linux操作系统的发行版之一,源自德国。现时SUSE属于Novell旗下的业务,同时亦是桌面 Linux 联盟(Desktop Linux Consortium)的发起成员之一。openEuler 是一个开源、免费的 Linux 发行版,将通过开放的社区形式与全球的开发者共同构建一个开放、多元和架构包容的软件生态体系。 电信行业本身对操作系统的性能、可靠性和有效性有着专门的高标准和要求。

软件技术栈:

现代应用软件功能日益丰富,代码规模大,多采用组件化分工协作,不同组件可能由不同组织提供和维护,相互依赖关系复杂。因此需要从IT技术全栈视角审视支持多样性算力适配和迁移的条件。典型的软件技术栈具体包括操作系统、虚拟化、数据库、中间件、应用软件等层次。Linux Kernel 4.18 或以上版本,更新的内核版本将带来更多功能增强和更多的设备支持。以Ubuntu Kylin 20.04 LTS采用的Linux 5.4内核为例,该内核的重要更新包括升级exFAT 文件系统驱动程序、优化 Nouveau 开源显卡驱动的显示颜色管理、以及RTL8125 网络设备和RK3288 VP8 解码支持等。 现代应用软件功能日益丰富,代码规模大,多采用组件化分工协作,不同组件还可能由不同组织提供和维护,相互依赖关系复杂。因此需要从IT技术全栈视角审视支持多样性算力适配和迁移的条件。典型的软件技术栈具体包括操作系统、虚拟化、数据库、中间件、应用软件等层次。

-对此,您有什么看法见解?-

-欢迎在评论区留言探讨和分享。-

0 阅读:2

薪科技快评

简介:薪科技评说,发现技术的点滴,记录科学的飞跃!