為了超級電腦而生的系統單晶片:從 IBM BlueGene_L 到 Fujitsu A64FX
2020 年 07 月 03 日
最近 ARM 指令集相容處理器占據不少新聞版面,除了千呼萬喚始出來、預定兩年內完全取代英特爾處理器的 Apple Silicon,再來就是引起不少討論、先後在 2019 年 11 月 Green500 和 2020 年 6 月 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 指令集系統單晶片」(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 座運算機櫃,彰顯了追求建造速度的獨到思維與異質功能融合的潛在威力。
後來勞倫斯利佛摩國家實驗室(Lawrence Livermore National Laboratory,LLNL)的 BlueGene/L 持續擴充到 104 座機櫃(478TeraFlops,峰值 596TeraFlops),2008 年 6 月被同樣出自 IBM 的洛斯阿拉莫斯國家實驗室(Los Alamos National Laboratory,LANL)的 Roadrunner 超越,穩占 Top500 首位長達 3 年半之久。後者是人類史上第一台效能達 1PetaFlops 的超級電腦。
那年剛好微處理器論壇(Microprocessor Forum)首次在台灣舉辦(新竹煙波大飯店),IBM 也在活動議程裡,充分闡述 BlueGene/L 的技術細節與設計理念,筆者有幸坐在台下躬逢其盛,富岳和 Fujitsu A64FX 則讓筆者回憶起歷歷在目的往事。
於「日用品」堆砌超級電腦以外的另類系統單晶片路線
「世界最快的超級電腦」不但是國家科技能力的重大象徵,更是科技強權之間的國力較量,根據國家的 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 處理器的研發成果,打造高度系統單晶片化的運算節點,實現更高的空間利用密度和更快的系統組裝速度。Fujitsu A64FX 更承襲相同的思維,並藉由台積電被眾多客戶千錘百鍊後的成熟製程、研發資源豐富的 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 快取記憶體、8MB HBM2 記憶體。CMG 規畫也與 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 奈米)?還是昔日傲視世界的半導體製造能力,將就此遭到毀滅性的打擊?值得拭目以待。