鲲鹏开发重点4--ARM 性能优化,简要对标X86 Skylake

网友投稿 3467 2022-05-29

鲲鹏开发重点4--ARM 性能优化,简要对标X86 Skylake

一、鲲鹏芯片和X86芯片对应关系

二、鲲鹏920  ARM服务器的型号与整体架构图

三、鲲鹏920的组成和结构

四、TaishanV110指令处理的流程

五、内存、存储、网络等其他配置

六、对性能优化的基础建议:(针对芯片、流水线等)

七、各种指令执行的时延,和吞吐,以及占用的pipeline情况

八、鲲鹏和泰山的命名

鲲鹏开发重点4--ARM 性能优化,简要对标X86 Skylake

(这是一篇比较早期的文章,供参考。)

一个应用或计算机系统的性能,通常关注两点,延时和吞吐。影响程序的性能有很多方面,越靠近工作执行的地方能得到优化,带来的整体效果越显著。

鲲鹏开发重点4--ARM 性能优化,简要对标X86 Skylake

先简单看下鲲鹏ARM服务器的情况,以及对标X86的哪款芯片。各自的优劣点有哪些?

一、鲲鹏芯片和X86芯片对应关系

鲲鹏 920 实现 ARM 架构业界性能最强,集成四大结构于单一封装。华为 2019 年 1 月对 外发布鲲鹏 920 处理器,鲲鹏 920 采用最先进的 7nm 工艺,集成 64 个核心。主频也提升到了2.6GHz。通过优化分支预 测算法,增加 OP 单元数量并进一步改进内存子系统架构,整合 8 通道的内存控制器,提升处 理器性能,使得带宽增加幅度达 48%。在 SPECint 基准测试中,鲲鹏服务器测试得分超过 930, 超行业基准 25%,同时电力效率高同业 30%,实现更强性能的同时降低功耗。此外,鲲鹏芯 片中集成了传统计算芯片的四大结构,包括网络、存储、主控芯片和 CPU 于单一封装中。

对标 Intel 服务器级芯片 XEON-8180,48 核数据跑平,功耗低 20%。鲲鹏 920 处理器是 专为大数据处理和分布式存储等应用场景设计,因而应用场景与 INTEL“至强”(XEON)类似。鲲鹏 920(Hi1620)包括 32、48 和 64 核。在 SPEC 测试中,48 核的鲲鹏 920 与 IntelXEON8180 的性能相当,而 64 核的测试性能要优于 XEON8180。且 48 核的鲲鹏功耗为 150W 低于 XEON8180 的 205W。此外,进一步对比内存等指标和集成网卡等特点,鲲鹏 920 在海量存储 的应用场景中更有优势。

二、鲲鹏920  ARM服务器的型号与整体架构图

以下图Hi1620v100为例,CPU型号kunpeng920,(ARMv8.2-A,TaishanCoreV110)。一颗鲲鹏920(4826)包含:2个SCCL,一个SICL。每个SCCL 包含:6个CCL, 4 DDR controller。每个CCL 包含:4个Taishan核。

三、鲲鹏920的组成和结构

每个Taishan核包含:CPU core部分、64KB L1I、64KB L1D、512KB L2、一个L3 Tag Partition、(L3 Data Partition 在CCL之外),具体如下图所示。

其中可以看到,每个taishanV110都拥有自己的L1和L2 cache,同时都支持VFP和NEON指令。L3的Tag Partion是4个核共享的。

L3_DATA与L3_TAG配合,共同组成L3 Cache;每个CCL 有一个L3_DATA 的partition;

每个CPU partitioned L3的最大可用容量为3.75M(DATA Cache)+256K(EXTEND DATA Cache,固定有256K用作SRAM空间访问)。

所有的partition 共同组成了L3。 L3_DATA作为L3 Cache的数据存储部分,负责L3 Cache相关的数据处理工作;L3 大小为 48MB。

四、TaishanV110指令处理的流程

下图描述了高级TaishanV110指令处理Pipeline。 首先获取指令fetch,然后将其解码decode为内部微操作(微指令)。 从那里开始,微指令进入寄存器重命名和dispatch阶段。 在dispatch后,微指令会等待其操作数,然后OOO无序地向八个执行管道PipeLine之一发出指令。 每个执行管道可以每个周期接受并完成一个微指令(uop)。

其中,ALU1:Integer ALU uops, 整数ALU运算

ALU2/3/BRU1/2 (ALU/BRU) : Integer ALU uops, Branch uops ,整数ALU微指令,分支微指令

Multi-cycle (MDU) :Integer shift-ALU, multiply, divide, CRC, 整数移位-ALU,乘法,除法,CRC

FP/ASIMD 1 (FSU1) :ASIMD ALU, ASIMD misc, ASIMD integer multiply, FP convert, FP misc, FP add, FP multiply, FP divide, crypto uops, Hivector

即ASIMD ALU,ASIMD misc,ASIMD整数乘法,FP转换,FP misc,FP加,FP乘法,FP除法,密码运算,Hivector

FP/ASIMD 2 (FSU2) :ASIMD ALU, ASIMD misc, FP convert, FP misc, FP add, FP multiply, FP sqrt, ASIMD shift uops, Hivector

即 ASIMD ALU,ASIMD杂项,FP转换,FP杂项,FP加,FP乘,FP sqrt,ASIMD移位,Hivector

LoadStore 0/1 (LS): Load, store, special memory uops, 加载,存储特殊存储器

五、内存、存储、网络等其他配置

内存:

内存通道数(8 vs 6)

内存频率 (2933Mhz/2666Mhz)

内存刷新频率(32ms->64ms)

内存交织

内存时序参数

存储:

文件系统(xfs/ext4)

固态硬盘/机械硬盘

RAID级别(raid0,raid1,raid5)

读写策略(写穿,回写)

调度算法(noop/deadline/cfg)

磁盘预读(readahead)

网络:

10GE/GE

光纤/普通网线

网卡bond

中断聚合/绑定

六、对性能优化的基础建议:(针对芯片、流水线等)

七、各种指令执行的时延,和吞吐,以及占用的pipeline情况

在分析性能时,要清楚各种指令大概的时延情况,如除法较耗时,能否采用移位或乘,或者更换算法来避免使用等等。

在分析CPU流水并行时,需要关注pipeline的占用情况,如占用相同pipeline的指令会引起CPU等待,可考虑插入一些其他指令来提升吞吐。

各种指令的说明过多,这里截图下大概的情况,具体见附件。

八、鲲鹏和泰山的命名

ARM SOC Hi1610(16核)、Hi1616(32核、正式命名鲲鹏916)、Hi1620(64核、正式命名鲲鹏920)、Hi1630(鲲鹏930)

泰山系列服务器

1. TaiShan 200(早期命名TaiShan V2)服务器:鲲鹏920处理器,包含2280E边缘型、1280高密型、2280均衡型、2480高性能型、5280存储型和X6000高密型等产品型号

2. TaiShan 100(早期命名TaiShan V1)服务器:鲲鹏916处理器,包含2280均衡型和5280存储型等产品型号

鲲鹏云

使用鲲鹏916和鲲鹏920,以后倾向更多使用鲲鹏920[1616 1620],具体服务器是泰山系列。

ARM 鲲鹏

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:化鲲为鹏,我有话说*基于鲲鹏弹性云服务器搭建telegraf
下一篇:用Python全自动筛选抖音高颜值小姐姐视频!
相关文章