1. 從鯤鵬920聊聊自研核
華為自研處理器已經有很多年了,但是直到鯤鵬920面世才廣為人知。鯤鵬920處理器採用ARM指令集架構,自主研發處理器微架構(類似Apple A15處理器和ARM架構的關系)。
包含自研核的處理器——鯤鵬920,其性能可以對標intel高性能伺服器(xeon-8180),雖然單核性能還是略低於skylake,但是得益於更優秀的能效比和更多的核心,伺服器整機性能比intel對標產品要好。
鯤鵬920的處理器核 是超標量亂序多發射處理器,其發射帶寬、執行單元數量、亂序深度這些硬指標都是業界第一梯隊的(不得不提依然落後於Apple,但是遠超ARM公版)。
參考:鯤鵬開發重點4--ARM 性能優化
參考:華為鯤鵬920與英特爾至強8180對比
鯤鵬920 SoC框圖
這里可以簡單講講 亂序超標量處理器的核心性能衡量方法:
提升(或者說限制)性能的地方有很多,這里只是略微講講。(如 發射帶寬可能受制於取指帶寬、執行帶寬、提交帶寬;亂序深度受制於寄存器數量、執行隊列深度、Cache的MSHR數量等)
對於以上描述一頭霧水但是又感興趣的朋友,可以找找大話處理器或者超標量哪兄處理器設計之類的書籍學習學習。
Apple A14 微架構框圖
要提升性能首先要選擇目標,就是要提升什麼程序的性能。可以像DSP一樣就是提升某種數據處理場景的性能,但是CPU的性能提升一般選擇有代表性的BenchMark,如 GeekBench 和 SPEC2000 這樣的遲孫測試基準程序。
然後,就是分析這些程序的指令模式,找出處理器的短板,並進行改良。例如,處理器在運行SPEC程序時,發現大部分時間都沒法做到每cycle執行6條指令,原因是SPEC程序cache命中率低,處理器等待數據從RAM送過來,所以我們可以加大Cache容量來保存更多的數據以提升性能,或者提高cache利用率(將更有用的數據保存在cache),或者想辦法提前把要用的數據搬運到cache中去,等等。
提升性能就是反復的分析現狀、找到問題、給出改善方法,如此一步步、一點點提升處理器的性能。這里講的都很簡單籠統,真實情況往往要復雜的多。(此外,提升性能的一個重要方法就是提升頻率,這又是另一個故事了)
如上所示的過程中,提升性能需要用到很多工具,其中一個重要工具就是處理器的模型。
因為現實中不可能做到等CPU都生產出來了,再去分析程序行為找出短板,然後再生產一個處理器,然後分析短板。這種代價沒有哪個公司能夠承受得了。(設計生產一個處理器需要至少一年的時間和至少幾億元的金錢,當然量產之後會攤平這個成本)
於是能夠在處理器設計生產之前就進行性能分析改善非常有必要,但是這時候沒有產品怎麼進行分析呢?於是就做一個處理器的模型,這個模型要能夠足夠精確的反映最終產品的性能,然後分析程序行為、處理器短板的過程就在這個模型上進行。等到這個模型所反映的性能達到目標了,就按照這個模型來設計處理器,並最終生產出性能達標的產品。
學術界常用的處理器性能模型有Gem5,是開源的,感興趣的朋友可以找來玩一玩,探索探索現代處理器的性能。
這種模型不光有反映性能的模型,也有反映功耗的,反映成本的,等等。
不過也別忘了:「All models are wrong, but some are useful.」
這里從鯤鵬920開始,聊到自李旦襲研處理器,聊到處理器性能,又聊了聊怎麼提升處理器的性能,以及提升性能用到的重要工具。
2. 阿里自研處理器商用-倚天
在自研ARM處理器上,不只是蘋果的M1系列取得了突破,中國廠商在這方面同樣也有驕人的成績,阿里雲去年推出了倚天710處理器,這是全球首個5nm ARM架構伺服器處理器,最高128核,現在已經開始商用了。
阿里雲最近推出了ECS g8m 實例,是阿里雲第一款使用自研倚天710 CPU的實例,主要針對通用計算、雲原生以及Android in Cloud等場景,號稱是阿里雲算力性價比最高規格族。
此外,阿里還對比了上代使用第三代Intel Xeon可擴展處理器(Ice Lake)的情況,後者基頻2.7 GHz,全核睿頻3.5 GHz,倚天710是2.7GHz頻率,ECS g8m 實例算力性價比提升100%,並且網路、存儲性能指標對比上一代ARM實例提升100%。
2021年10月份,阿里巴巴旗下半導體公司平頭哥發布自研雲晶元倚天710。
該晶元是業界性能最強的ARM伺服器晶元,性能超過業界標桿20%,能效比提升50%以上。倚天710是阿里雲推進「一雲多芯」策略的重要一步,也是阿里第一顆為雲而生的CPU晶元,將在阿里雲數據中心部署應用。
倚天710採用業界最先進的5nm工藝,單晶元容納高達600億晶體管;在晶元架構上,基於最新的ARMv9架構,內含128核CPU,主頻最高達到3.2GHz,能同時兼顧性能和功耗。在內存和介面方面,集成業界最領先的DDR5、PCIe5.0等技術,能有效提升晶元的傳輸速率,並且可適配雲的不同應用場景。