国产信创服务器是近些年信创突破的重点,面对技术封锁和卡脖子限制,如何实现真正的芯片自主可控也是业界发力的方向。近期华为鲲鹏9000s系列芯片的发布让大家眼前一亮,似乎面对芯片的技术封锁打了一场漂亮的翻身仗。那么在服务器市场国产CPU发展如何,主流的信创服务器有哪些产品,性能表现如何,本文将简单介绍,并结合信创服务器的性能对比测试进行分析。
1、国产CPU发展情况
1.1 CPU架构及指令集介绍
1.1.1 CPU架构
CPU(中央处理器)作为计算机系统的运算和控制核心,是信息处理、程序执行的最终执行单元,主要功能包括指令控制、操作控制、时间控制和数据加工。CPU内部通常由三个主要部分组成:运算器、控制器和寄存器。
- 运算器:主要负责进行算术运算和逻辑运算,包括加减乘除等基本算术操作,以及与、或、非等逻辑操作。
- 控制器:作为CPU的指挥中心,负责调度程序、指令并执行指令,以及管理协调各个部件的运作。它通过读取内存中的指令,并指挥运算器进行运算,同时负责与内存、输入/输出设备进行通信,控制信息的流动。
- 寄存器:用于存储CPU内部的临时数据或状态信息,包括指令寄存器(IR)、数据寄存器(DR)、状态寄存器等。
此外,CPU内部还有高速缓冲存储器(Cache)等组件,用于提高数据和指令的访问速度,降低内存访问延迟。
1.1.2 指令集架构
CPU指令集是计算机中计算和控制计算机系统的所有指令的集合,包含了基本数据类型,指令集,寄存器,寻址模式,存储体系,中断,异常处理以及外部 I/O。简单地来说,指令集一般被整合在操作系统内核最底层的硬件抽象层中,属于计算机中硬件与软件的接口,它向操作系统定义了CPU的基本功能。
现阶段CPU指令集分为CISC(复杂指令集)和RISC(简单指令集)两种。
- CISC指令集是早期的指令集架构,它的指令数目较少,但每条指令的操作步骤较多,因此指令较为复杂和庞大。CISC架构的CPU中,对于指令的执行需要依赖CPU中设计的逻辑来实现,这会增加CPU结构的复杂性和对CPU工艺的要求。
- RISC指令集则是一种精简指令集,是在CISC指令集的基础上发展起来的。它的指令数量较多,但每条指令的操作步骤较少,因此每条指令都较短,指令格式种类少,寻址方式种类也较少。RISC只要求硬件执行很有限且最常用的那部分执令,大部分复杂的操作则使用成熟的编译技术,由简单指令合成。
CISC和RISC指令集对比如下表所示:
CISC和RISC发展到现在无论哪一方都没有绝对的优势和劣势,在阵营上CISC以Intel、AMD的X86架构为代表,RISC则以ARM、MIPS、PowerPC等架构为代表。从硬件和性能角度分析,有以下不同:
- 从硬件角度:CISC采用的是不定长的指令集,更加适用于特定专业领域的应用;RISC执行的是等长的精简指令集,在并行处理方面明显优于CISC。另外RISC执行的精简指令集在硬件层面实现工艺上更为简单廉价。
- 从性能角度:在发展过程中,以Intel、AMD为代表的CISC阵营对芯片性能的提升做了很多优化,以Intel奔腾系列为代表的CPU处理器在PC机市场占有绝对的优势;而RISC由于起步晚了十年,本身在市场占有以及软件生态上不具备先天优势,专注于以低功耗为前提的高性能芯片。
随着后续技术和生态的发展,CISC和RISC也逐渐走向融合,以X86架构CISC处理器占据了个人PC市场,以ARM架构RISC处理器占据了移动端市场,并随着云计算市场的发展,ARM架构RISC处理器也向服务器市场扩张。
1.2 国内主流CPU厂商对比
国产CPU发展一路坎坷,尤其是最近十年来国外的技术封锁以及芯片工艺上的限制,形成了代差。但随着近期华为鲲鹏9000s系列的发布,这种芯片上的技术封锁被打破,芯片上的自主可控带来了惊喜。国产CPU的飞速发展自十五期间的泰山计划开始,到2018年前后的国外芯片技术限制后的政策支持,形成了以海光、兆芯、飞腾、鲲鹏、龙芯、申威为代表的国产六大CPU厂商。
1.2.1 国产CPU发展三大路线
当前主流的芯片架构为X86和ARM,均为国外主导。对指令集的掌控程度决定了国产化的程度,国产CPU通常通过授权或者自研的方式,有以下三种模式:
- 以龙芯为代表的MIPS 指令集架构和以申威为代表的 Alpha 架构。申威已基本实现完全自主可控(申威64已经完全形成了自己的架构),龙芯是我国最早的自主研发国产芯片,基于已经获得永久授权的MIPS架构,并在这一架构基础上重新开发出完全自主化的指令集LongARCH。
- 以飞腾和华为鲲鹏为代表基于ARM指令集授权的国产芯片,可基于指令集架构进行核心CPU设计,安全可控程度较高。
- 以海光、兆芯为代表的获得X86的IP内核授权,不过海光后来获得X86指令集(AMD)授权。
可以看出,在自主可控程度上是龙芯和申威>飞腾和鲲鹏>海光和兆芯。
1.2.2 六大主流CPU厂商对比
经过多年发展,国产CPU初步形成六大厂商齐头并进的格局,以鲲鹏、飞腾、龙芯、兆芯、海光、申威为代表,一批优质国产CPU企业快速崛起。
- 龙芯:起步于中科院计算所,最早是基于国外的MIPS指令集来研发的,后来又研发出了一个真正自主可控的LoongArch指令集,所以目前龙芯在指令集上已经实现了自主可控。龙芯中科着力构建自己的软硬件生态,龙芯CPU已实现工控类和信息类的全方位覆盖,公司信息化业务已经转向基于龙芯自主指令系统LoongArch的3A5000系列处理器,工控业务开始转向基于龙芯自主指令系统LoongArch的系列处理器。
- 鲲鹏:华为鲲鹏基于ARM架构开发,聚焦于服务器应用。华为自研了一系列芯片矩阵,围绕“鲲鹏+昇腾”双引擎形成两大计算产业,其中鲲鹏计算产业是基于鲲鹏处理器的基础软硬件设施。鲲鹏920基于ARM V8架构,是首款国产的7nmARM服务器,其处理器核、微架构和芯片均由华为自主研发设计,相比X86异构最高能够提升3倍性能。
- 飞腾:飞腾专注于ARM芯片研发,致力于国产高性能、低功耗集成电路芯片的设计与服务。飞腾CPU是PK体系(即飞腾Phytium CPU+麒麟Kylin操作系统)信息系统的核心,芯片架构上与ARM指令集接轨、内核自主研发保障了芯片的自主性和可控性。飞腾系列在生态上有巨大的优势,与国内1000余家软硬件厂商构建起了国内最完善最庞大的生态体系。
- 海光:海光信息通过AMD获得了ZEN1架构和X86指令集的永久使用权。海光CPU兼容x86指令集,处理器性能参数与国际同类型主流处理器产品相当,支持国内外主流操作系统、数据库、虚拟化平台或云计算平台,能够有效兼容目前存在的数百万款基于x86指令集的系统软件和应用软件,具有优异的生态系统优势。
- 兆芯:上海兆芯是合资创建,同时掌握CPU、GPU和芯片三大核心技术,基于X86架构和生态优势,在党政和商用领域应用广泛,尤其在PC产业上使用wintel生态,优势明显。由于兆芯获得的是源自威盛电子相对老旧的x86 CPU架构,其版权已于2018年到期,导致兆芯过去的产品性能相较同期竞品仍有所差距;但随着后续获得X86架构所需的授权技术,在性能和自主可控上也在努力追赶。
- 申威:申威CPU主要用于超级计算机领域,早期基于Alpha指令集,后期拓展了自己的SW-64指令集,主要面向军用等对安全性要求极高的特种领域提供CPU处理器及其相关解决方案。在生态建设上,秉持着自主可控自主研发的理念,积极建设申威信息安全产业联盟,形成了覆盖芯片设计、硬件平台、系统软件、支持平台、数据库、中间件、应用软件的全链条自主生态。
综合比较六大国产CPU厂商:1)在性能方面海光系列的X86架构和鲲鹏系列的ARM架构占据优势;2)在生态方面,海光和兆芯基于X86指令集具备生态优势、飞腾和鲲鹏为代表的ARM架构正在构建自己的生态、申威和龙芯由于自研指令集生态扩展上不具备优势;3)在指令集自主可控上,申威和龙芯自研指令集>鲲鹏和飞腾基于ARM的指令集授权>海光和兆芯基于X86的IP授权。
1.3 X86架构与ARM架构对比
在国内信创服务器领域,以海光为代表的X86架构和以鲲鹏为代表的ARM架构占据了绝对的份额。鲲鹏和海光占据性能优势,在电信、金融等行业已经广泛采用,比如中国移动在2022年上半年发布了服务器补充采购的招标公告,本次补采鲲鹏服务器占比43.30%,海光服务器占比56.70%。X86架构和ARM架构对比,有以下不同之处:
- 指令集:X86采用CISC复杂指令集,而ARM是采用RISC精简指令集,这也是二者底层设计架构上根本不同之处。
- 功耗与性能:X86追求高性能,导致功耗大,不节能,而ARM则是追求节能,低功耗,但与X86相比性能较差,因此X86架构在性能上有明显优势。
- 应用领域:X86架构垄断PC操作系统近30年,在软硬件开发上已经形成统一标准;ARM架构主要应用在移动终端,尤其在Android系统下形成开源生态,在国产化过程中以鲲鹏为代表的ARM架构开始向服务器领域发展。
- 64位计算:X86最初是32位指令集,后来采用AMD开发的64位指令集;ARM则基于原有的原则和架构开发了简明的64位架构,ARMV8就采用两种执行模式AArch32和AArch64,处理器在运行中可以无缝地在两种模式间切换。
- 相互兼容性:X86系列的软件在ARM系列上几乎无法运行,反之亦然。
从目前CPU的发展来看,无论是ARM还是X86,都在努力巩固自己的优势,同时积极吸取对方产品的特色,取长补短,期望有所突破。无论如何,未来的CPU肯定在朝着高性能、低功耗的方向发展。
2、国产CPU性能测试对比情况
2.1 测试环境配置情况
国产CPU服务器主流产品包括海光和鲲鹏服务器,因此在信创服务器的性能对比过程中以海光处理器和鲲鹏处理器为主,并和Intel处理器进行对比。具体的测试服务器配置如下:
测试服务器都是采用虚拟化主机的形式,没有使用物理机,CPU和内存为16c32G。其中操作系统Intel使用Redhat 8.5、海光和鲲鹏使用的是信创Kylin V10版本;CPU型号海光是C86 7285、鲲鹏为Kunpeng-920、Intel是C5281R,CPU主频鲲鹏服务器稍高为2600。其它配置具体见表格。
2.2 服务器基本性能测试
2.2.1 CPU性能
使用sysbench压测工具测试服务器的CPU性能,命令如下:
#sysbench cpu –threads=`grep “processor” /proc/cpuinfo |wc -l ` --cpu-max-prime=200000 run
以上命令计算200000以内所有素数所需的时间,测试结果如下:
从CPU性能对比来看,Intel和海光的avg时间为鲲鹏ARM架构的3倍;95%占比Intel为鲲鹏的2.9倍、海光为鲲鹏的3.2倍。总体CPU性能上鲲鹏表现更优,和ARM架构的精简指令集RISC有关系。
2.2.2 内存性能
使用sysbench压测工具测试服务器的内存性能,命令如下:
#sysbench memory --memory-block-size=8k --memory-total-size=8G run
以上命令测试内存中传输8G的数据量所需时间,测试结果如下:
从测试结果上看,三类服务器差别不大,鲲鹏表现更优。
2.2.3 磁盘IO性能
使用fio命令测试服务器磁盘IO性能情况,命令如下:
#fio -direct=1 -iodepth=64 -rw=randrw -ioengine=libaio -bs=16k -size=10G -numjobs=8 -runtime=600 -group_reporting -filename=fiotest.txt -name=test
"-direct=1": "以直接I/O模式运行测试,绕过系统缓存。",
"-iodepth=64": "设置队列深度为64。",
"-rw=randrw": "随机读写模式。",
"-ioengine=libaio": "使用libaio作为I/O引擎。",
"-bs=16k": "设置块大小为16KB。",
"-size=10G": "设置测试文件大小为10GB。",
"-numjobs=8": "设置并发作业数为8。",
"-runtime=600": "设置测试运行时间为600秒。",
"-group_reporting": "汇总报告结果。",
"-filename=fiotest.txt": "设置测试文件名为fiotest.txt。",
"-name=test": "设置测试名称为test。"
以上命令读写10G文件测试磁盘的IO性能,测试结果如下:
从测试结果看,Intel服务器的磁盘IO性能最优、鲲鹏读写性能次之、海光表现相对差些,不排除虚拟机的影响。但整体上信创服务器的IO性能相较Intel_x86架构表现要差些。
2.3 混合业务压力测试
混合业务压力测试使用sysbench脚本测试主键select、单insert和混合读写三种场景下在不同并发情况下的性能表现。
2.3.1 主键select性能对比
使用sysbench的oltp_read_only.lua进行主键查询性能测试,结果如下:
从TPS和时延指标来看,Intel服务器表现更优、海光次之、鲲鹏较差,但是海光和鲲鹏服务器在TPS表现上总体较Intel服务器还是有差距,性能上差40%。鲲鹏服务器的CPU表现更好,但是在高并发情况下CPU使用率上不去。
2.3.2 单insert性能对比
使用sysbench的oltp_insert.lua进行单insert性能测试,结果如下:
从TPS和时延指标来看,Intel服务器表现更优、海光次之、鲲鹏较差,在单insert插入场景下海光和鲲鹏服务器在TPS表现上总体较Intel服务器性能上差15%~25%。
2.3.3 混合读写性能对比
使用sysbench的oltp_read_write.lua进行混合读写性能测试,结果如下:
从TPS和时延指标来看,Intel服务器表现更优、海光次之、鲲鹏较差,在混合读写压力场景下海光服务器在TPS表现上总体较Intel服务器性能上差40%、鲲鹏服务器较Intel服务器差50%。鲲鹏服务器在高并发情况下CPU使用率上不去,业务TPS也上不去。
2.3.4 性能比对总结
通过对Intel_x86处理器、海光X86处理器以及鲲鹏ARM处理器三种服务器在主键select、单insert和混合读写测试场景下的性能对比,总体表现如下:
- CPU:鲲鹏表现稍好、Intel次之、海光稍差,但是鲲鹏服务器在高并发下CPU使用率上不去,影响TPS表现;
- 内存:受限于测试场景,不好对比
- TPS:Intel表现最好、海光次之、鲲鹏稍差,海光和鲲鹏处理器在TPS性能上相较Intel处理器有40%~50%性能差距
- 时延:和TPS一样,Intel表现最好、海光次之、鲲鹏稍差
总结下来,国产服务器不论是海光X86还是鲲鹏ARM,和Intel处理器性能对比,存在明显的代差,国产信创之路道阻且长。以上数据受限于测试服务器和测试场景,仅供参考。
参考资料:
- CPU研究架构行业深度报告,方正证券,2021年1月
- 国产CPU产业格局分析
- 中流击水:六大国产CPU厂商分析