???最近ARM指令集相容處理器占據不少新聞版面,除了千呼萬喚始出來、預定兩年內完全取代英特爾處理器的Apple Silicon,再來就是引起不少討論、先后在Green500和Top500奪下榜首的日本理化學研究所超級電腦「富岳」(富士山的別稱)的關鍵技術核心:Fujitsu A64FX處理器。
整體來看,無論從哪個角度觀察,這應該是目前最高端的ARM 指令集兼容處理器了。
其實Fujitsu 早在2018 年夏天的處理器業界盛事IEEE HotChips 30,就公開A64FX 的技術細節(其中部分內容更在4 月就先行披露),本質算是「電腦的語言」指令集架構從SPARC-v9 轉換成ARM-v8.2-A 的SPARC64fx 處理器(因衍生于高端服務器專用的SPARC64,也繼承了諸多類似特色,如大型主機等級的數據可用性),采用臺積電7 納米制程生產,主存儲器使用近來因高端圖形芯片逐漸普及的HBM2,和運算核心由臺積電的2.5D 封裝CoWos 技術封裝成一顆,毋需外部的存儲器顆粒。
講更精確點,Fujitsu A64FX 是「針對超級電腦量身訂做的ARM 指令集系統單芯片 SoC」(System-on-Chip,SoC),其概念更可追溯于2004 年11月,一舉趕下雄踞「世界最強超級電腦王座」超過兩年半(2002 年3 月到2004 年11 月)地球模擬器(Earth Simulator)的IBM BlueGene/L,體積僅有容納1,024 個運算節點和8TB 主存儲器的16座機柜,反觀地球模擬器動用640 個運算節點,總共5,120 顆NEC SX-6 向量處理器和10TB 主存儲器,多達320 座運算機柜,彰顯了追求建造速度的獨到思維與異質功能融合的潛在威力。
后來勞倫斯利佛摩國家實驗室(LawrenceLivermore National Laboratory,LLNL)的BlueGene/L 持續擴充到104 座機柜(478TeraFlops,峰值596TeraFlops),2008 年6 月被同樣出自IBM 的洛斯阿拉莫斯國家實驗室( Los Alamos National Laboratory,LANL)的Roadrunner 超越,穩占Top500 首位長達3 年半之久。后者是人類史上第一臺效能達1PetaFlops 的超級電腦。
那年剛好微處理器論壇(MicroprocessorForum)首次在臺灣舉辦(新竹煙波大飯店),IBM 也在活動議程里,充分闡述BlueGene/L 的技術細節與設計理念,筆者有幸坐在臺下躬逢其盛,富岳和FujitsuA64FX 則讓筆者回憶起歷歷在目的往事。
「世界最快的超級電腦」不但是國家科技能力的重大象征,更是科技強權之間的國力較量,根據國家的Top500 進榜數與總效能「圓餅圖」,比重與趨勢或多或少反映了國家的影響力。前述的富岳超級電腦,相關費用總計1,300 億日圓,其中1,100 億日圓由日本納稅人買單,日本政府「宣揚國威」的強烈動機,不言可喻。
自從個人電腦與集群運算環境(Cluster)普及后,超級電腦業界逐漸從特別客制化且量少價高向量處理器、系統控制與存儲器芯片,朝向采用市售的「日用品」(Commodity)或系出同源的衍生產品(如nVidia 的高階運算用GPU),除了降低購置與維護成本,亦可進一步提高超級電腦的可靠性與可用性。
也因此,Top500 清單早是滿滿一整排英特爾處理器與nVidia 加速卡(與很少的AMD 產品,以及根本沒有未來的英特爾Xeon Phi),偶見IBM 的高端Power 處理器與Fujitsu 的SPARC64fx。
畢竟不計成本導入特制化零件與特殊半導體制程(甚至像Cray-3和Fujitsu VPP500 還用到砷化鎵這么獨特的材料)的「高階試作品」,自然遠不如消費性市場隨手可得的「成熟量產品」可靠。過于特殊的專屬規格處理器,也限制了應用軟體和開發平臺的選擇性,提高開發軟體的時間與成本。反之,投奔「開放規格」,即可享受到更多樣化的開源社群資源,并因更頻繁的技術交流,而加速技術演進。
但超級電腦市場較量的重點,并不只限于帳面效能和耗電,「研發時程」和「建造速度」也同樣舉足輕重。這也是IBM BlueGene/L 在十多年前可在超級電腦領域獨領風騷的秘密:延續現有Power處理器的研發成果,打造高度系統單芯片化的運算節點,實現更高的空間利用密度和更快的系統組裝速度。FujitsuA64FX 更承襲相同的思維,并藉由臺積電被眾多客戶千錘百煉后的成熟制程、研發資源豐富的ARM 生態圈、拜顯示芯片市場之所賜而便宜可靠的HBM 存儲器,青出于藍勝于藍,相隔近16 年,重現系統單芯片一次奪下Top500 榜首的榮景。
大處著眼,小處著手
相信熟悉超級電腦的讀者或許會想起,當時那臺IBM 與Livermore 實驗室合作的BlueGene/L 測試機,并非徹底施工完畢的超級電腦(這讓日本人頗不以為然),但在Livermore 國家實驗室,確實有部分應用程式跑在上頭,并打敗了地球模擬器保持的紀錄。問題來了,為何IBM 可以用這么快的速度(當時可是震驚世人),建好一臺世上最快的超級電腦?
2004 年,BlueGene/L 可謂世界最大的嵌入式微處理器集合,揭示了「大處著眼,小處著手」觀念,將系統單芯片的價值,從微型系統帶到極大規模的超級電腦,技術核心為重新設計后的雙核PowerPC 440,具低耗電量和低發熱量等特點。利用諸多今日我們耳熟能詳的系統單芯片特色的BlueGene/L,有以下特點:
超級省電:相同的運算量,這臺BlueGene/L耗電量僅NEC地球模擬器的二十八分之一,自然也降低了發熱量。
簡單清楚的系統架構:BlueGene/L不再有一大堆糾纏如「新竹米粉」的五顏六色線路和多如牛毛的網絡匯流排控制器,易于安裝與維護。
快速完成產品設計:利用現有研發成果,透過系統單芯片整合額外功能,不必重新設計每個元件,可迅速兜成產品。即使這算是「專屬規格芯片」,但意義卻和過去不惜血本的燒錢做法截然不同。
BlueGene/L 的架構相當單純:
每顆時鐘頻率700MHz 的處理器芯片,包含兩個倍增浮點運算器的修改版PowerPC440 ? ? 核心與時脈350MHz 的4MB L3 快取存儲器(可設定為系統存儲器)。
兩顆處理器芯片組成一張運算卡(Compute ? ? Card),上面附有512MB 容量DDR 存儲器,耗電量只有20W。
16 片計算卡構成一片節點卡(Node Board),32 個處理器芯片(64 核心),提供180GigaFlops 理論計算能力,8GB 存儲器。
32 片節點卡裝在同一臺機箱,提供5.7TeraFlops ? ? 與256GB 存儲器。
整個系統最大組態為65,536 個節點卡(64 個機箱),當全部處理器都設定成計算模式時,有高達360TFlops 的峰值運算量(2004 年底那臺是70.72TeraFlops)和16TB 存儲器。
所謂的超級電腦,就是指具巨大平行運算量的系統(有別于追求頂級可靠性和極致軟體相容性的商用大型主機),大多數并行處理程序,都必須在執行每個小單元,參考之前的單元計算結果,或是傳送結果到其他執行單元,帶來巨大的資料傳輸量。超級電腦的開發者幾乎都將一半精力耗費在資料傳輸網絡的設計。
BlueGene/L 系統組成極端干凈,處理器芯片內建5 種功能相異的網絡控制器,讓不同類型的工作分而治之,只需要板子上的連接點組成整個系統,你也看不到拉來拉去的排線和到處安插的匯流排網絡控制器:
3D Torus網絡:每顆芯片有6個方向傳送資料到整個系統,具流量監控、計算最佳傳送路徑的功能。
Collective網絡:用來管理控制。
處理中斷與系統問題的低延遲高速網絡(Global ? ? Barriers and Interrupts)。
用來進行一般I/O和檔案存取的Gigabit乙太網絡。
用來控制開機與設定的控制網絡(Control ? ? Network)。
為何IBM 要讓BlueGene/L 同時用5 種網絡架構?起因于IBM 并未為了這臺「速食」超級電腦設計專用作業系統,直接修改Linux 來用,并BlueGene/L 是每顆運算節點(一顆處理器)都是獨立電腦的「Multicomputer」型態,單靠3D Torus 網絡不足以保證在最短時間內即時傳送所有資料,特別是和計算無關的控制管理訊號,所以動用多種拓樸網絡以保證面面俱到,是很正確的手段。
同場加映更夸張的設計:Sun 曾競標美國國防部先進研究計劃署(Defense Advance Research Projects Agency,DARPA)于2002 年初開始的High Productivity Computing System,日后更名為PetaFLOPS 的超級電腦計劃(略早于NEC 發表地球模擬器),提出驚世駭俗的「Hero」計劃,引進「Proximity Communication」研究成果,透過芯片彼此相鄰的「超高速無線傳輸」(別懷疑),一舉解決頻寬延遲的瓶頸和系統組裝的麻煩。很可惜這案子由IBM 和Cray 擊敗Sun 共同得標,無緣讓世人目睹這令人嘖嘖稱奇的世界奇觀。
雖然超級電腦的可靠性要求不如商業大型主機嚴謹,但看在巨大資料傳輸量的份上,假若自己的家用個人電腦可能一年內因一次訊號錯誤當機,套在超級電腦就可能變成一小時一次了。
也因此,IBM 在BlueGene/L 引入許多除錯技術,由小到大,從芯片(所有存儲器皆受到ECC 保護以修正單位元錯誤)到系統(所有節點和網絡都有自我錯誤監測,而最重要的3D Torus 網絡則動用超過4 種數學除錯方式以保障資料傳輸的正確性)。當然,低發熱量的系統單芯片,也降低超級電腦因過熱而不穩的可能性。
承繼IBM BlueGene/L 精神的Fujitsu A64FX
這些年來,服務器大廠紛紛放棄開發自家處理器,改投向「開放系統」的懷抱,但Fujitsu 仍持之以恒研發高端處理器,如GS 系列大型主機、Unix 服務器的SPARC64、因2011年「京」 (K-Computer)超級電腦專案誕生的SPARC64fx。
讓SPARC64fx 轉戰ARM 指令集的A64FX,堪稱三者集大成,也讓ARM 指令集兼容處理器,一步登天,擁有商用大型主機(Mainframe)的高可靠度、高端服務器的高效能,與超級電腦最需要的低能耗比,身為「后京」(Post-K)時代的日系超級電腦心臟,性能目標是達到2011 年「京」的100 倍。富岳搶下Top500 榜首就是成果,且計劃進度還比表訂的2021 年量產出貨提前甚多。
A64FX 主要特性如下:
臺積電7 納米FinFET 制程,87.86 億晶體管,臺積電CoWos 2.5D 封裝包4 顆8GB 容量HBM2 存儲器,兼顧縮減面積與提升存儲器頻寬。
基本上是替換指令集的SPARC64 XIfx,從核心微架構到基礎結構皆大同小異,但系統存儲器改用包在一起的32GB HBM2,卻能大幅精簡空間。
48 個計算核心和4 個處理I/O 作業的輔助核心,切成4 塊CMG(Core Memory Group),每個CMG 有13 個核心(12 運算+1 輔助I/O)、8MB L2 ? ? Cache、8MB HBM2 存儲器。CMG g規劃也與SPARC64 XIfx 大同小異,僅核心數略有差異。
SIMD 浮點運算「順勢」使用ARM 官方制定的SVE(Scalable Vector Extension)指令集,理論浮點運算性能達到2.7TeraFlops,是前代SPARC64 XIfx 的2.5 倍,數據格式也支持人工智能需要的FP16 與INT16 /8。
ARM 的SVE 不僅「比英特爾AVX-512 更富有向量電腦的傳統風味」,也有個有趣的MOVPRFX 指令,用來彌補ARM 邁進64 位元后,為了提供32 個暫存器(需要5 位元指定一個暫存器,4 個就是20 位元)犧牲掉的FMA4 四運算元浮點乘積和(A×B+C=D)。一旦執行三運算元的FMA(A×B+C=C),會覆蓋掉一個暫存器的原始內容。
MOVPRFX 指令可預先經由前置碼(Prefix),「更名」運算目標暫存器,以保留其內容。而A64FX 的內部執行單元則會將接連的MOVPRFX 和FMA3 兩個指令合而為一,變相實作FMA4,掩蓋執行兩個指令的額外延遲。
高可靠度則比照SPARC64fx 辦理,大型主機等級的資料可用性,讓整顆芯片大部分都受到ECC 單位元錯誤修正和Parity 糾錯機制保護。
多處理器總線采用演進于「京」超級電腦的第三代「Tofu」(豆腐),6D Mesh/Torus 結構。
和BlueGene/L一樣高度模組化設計,一個機柜框體(Rack)可置入384 顆A64FX,18432 個運算核心,單機柜理論效能超過1PetaFlops。
富岳由396 個機柜框體組成,152,064 顆A64FX,Top500 ? ? 測定性能為415PetaFlops。
「熱情擁抱現成資源」的弦外之音
Fujitsu 和理化學研究所在2019 年4 月15 日簽訂制造出貨安裝合約,11月富岳試作機拿下Green500 第一名,12 月2 日就開始出貨6 個機柜框體,全數396個在2020 年5 月13 日全部搬入理化學研究所,速度真的很快,當年IBM BlueGene/L 的「速食」風格,在Fujitsu A64FX 也一覽無遺。
況且,Fujitsu 還享用那時IBM 還體驗不到的「完整IP 授權、最佳化電子輔助設計工具與相關函式庫、專業晶圓代工」三位一體的成熟產業生態體系,大量引用「現成資源」加速產品研發與驗證,降低成本,不限硬體,一并擁抱蓬勃發展中的ARM 軟體資源,在「沿用市售標準品」和「拼死硬干特規貨」中取得平衡點。這是Fujitsu在高效能運算處理器的「語言」,放棄SPARC 轉向ARM 背后最重要的弦外之音。
最后,順帶一提,如果臺積電繼續維持制程優勢,英特爾真的還有機會追上來嗎(官方預定2021 年7 納米、2023 年5 納米、2025 年3 納米、2027 年2 納米、2029年1.4 納米)?還是昔日傲視世界的半導體制造能力,將就此遭到毀滅性的打擊?值得拭目以待。
編輯:黃飛
?
評論
查看更多