機器學習系統與基礎設施
異質加速器(heterogeneous accelerators)
機器學習的晶片不只一種。工作負載跑在 NVIDIA 與 AMD 的 GPU 上、跑在 Google 的 TPU 上、也跑在一群越來越多的自製 ASIC 與推論加速器上,每一種都有自己的指令集、記憶體系統與軟體堆疊。支援異質加速器,就是要讓同一個模型在這片多樣性上都跑得好,而不是被焊死在單一廠商上。
這份多樣性在每一層都是真實的——不同的數值格式與張量核心形狀、不同的晶片上記憶體大小、不同的互連與集合通訊函式庫、以及彼此不相容的底層程式設計模型(CUDA 對上 ROCm、對上 TPU 與 XLA 堆疊、再對上各家廠商的 SDK)。標準答案是一層「編譯器加中介表示」的抽象:框架把模型降階到與硬體無關的中介表示(HLO、StableHLO、MLIR,或 ONNX 式的圖),再靠各後端專屬的編譯器替每個目標生成調好的程式碼。MLIR 與 Triton 這類可攜層想做到「核心寫一次、可重新對應到不同目標」,但要在每個地方都追平各廠手調的效能仍然很難,峰值利用率也往往還是得靠針對裝置的調優。
異質性的推力來自成本、供給、以及對更佳每瓦效能的追逐,但它向軟體堆疊課稅,因為每一項最佳化都可能需要一個各後端專屬的變體。一個模型能瞄準哪些加速器、瞄得多好,正越來越形塑著訓練的經濟學,也形塑著誰有能力大規模部署。
又稱
另見