鯤鵬開發重點4--ARM 性能優化,簡要對標X86 Skylake
鯤鵬開發重點4--ARM 性能優化,簡要對標X86 Skylake
一、鯤鵬芯片和X86芯片對應關系
二、鯤鵬920? ARM服務器的型號與整體架構圖
三、鯤鵬920的組成和結構
四、TaishanV110指令處理的流程
五、內存、存儲、網絡等其他配置
六、對性能優化的基礎建議:(針對芯片、流水線等)
七、各種指令執行的時延,和吞吐,以及占用的pipeline情況
八、鯤鵬和泰山的命名
鯤鵬開發重點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小時內刪除侵權內容。