對話AMD首席架構師_風聞
半导体产业纵横-半导体产业纵横官方账号-赋能中国半导体产业,我们一直在路上。1小时前
本文由半導體產業縱橫(ID:ICVIEWS)編譯自chipsandcheese
MI350系列加速器幕後的故事。
在AMD的“推進AI2025”大會上,記者採訪了AMD高級研究員兼Instinct架構首席設計師艾倫·史密斯(AlanSmith),並圍繞MI350系列加速器中搭載的CDNA4架構展開探討。以下是經過精簡和優化的文字實錄。
聊聊MI350吧,它仍然基於GFX9架構,也就是Vega架構或其衍生版本。為什麼MI350依然採用GFX9,而客户端產品如RDNA 3/4已分別升級至GFX11/GFX12?
艾倫:這個問題問得很好。正如大家都知道的,CDNA架構源自之前幾代的InstinctGPU,從MI100及更早的產品開始,都採用的是GraphicsCoreNext(GCN)架構。經過幾代的發展,CDNA已經針對高性能計算和AI領域的分佈式計算算法進行了高度優化。因此,我們認為以GFX9為基礎來打造MI350,能夠為我們提供實現MI350系列性能目標所需的關鍵要素。
關於GCN架構,我們知道它有獨立的L1緩存和LDS(本地數據存儲)。為什麼MI350仍然保留了這一設計,而沒有將它們合併呢?
艾倫:這是GCN架構的一個傳統設計,也是計算單元基本構建方式的核心所在。我們覺得在這一代產品中,還不是進行這種規模微架構變革的合適時機。所以我們採取了另一種方式,增加了LDS的容量。之前的MI300系列中,LDS容量為64KB,而在MI350系列中,我們將其提升到了160KB。此外,我們還提高了帶寬。我們將LDS到寄存器文件的帶寬翻倍,以便能夠滿足MI350系列中TensorCore的運算速率需求。
説到TensorCore,你們在MI350x中引入了支持FP8、FP6和FP4數據類型的微縮放格式。有趣的是,MI350的一個主要優勢在於FP6的運算速率與FP4相同。你能談談這是如何實現的,以及為什麼要這樣設計嗎?
艾倫:當然可以。我們認為,在MI350進入市場的這個時期,考慮到當前AI領域的發展狀況,FP6格式不僅有潛力用於推理,還有可能用於訓練。因此,我們希望確保FP6的性能在同類產品中處於領先地位,超越其他廠商可能已經實現或正在實現的水平。由於硬件設計需要很長的前置時間,我們在幾年前就開始考慮這個問題,希望確保MI350在FP6性能上佔據領先地位。所以我們決定讓FP6數據路徑的吞吐量與FP4數據路徑相同。當然,為了實現這一點,我們需要在硬件上做一些額外的投入。顯然,FP6比FP4多了幾個比特,這也是它被稱為FP6的原因。但我們成功地在矩陣引擎的面積限制內實現了這一點,並且以一種非常節能和省面積的方式做到了。
談到數據類型,在硬件級加速的操作列表中沒有看到TF32。為什麼要從MI350中移除這個功能,或者説為什麼它不是MI350的主要考慮因素呢?
艾倫:其實我們是考慮過的,但最終決定移除它。我們認為在這個時期,腦浮點16(BF16)格式可以被大多數模型用來替代TF32。而且我們在BF16上的吞吐量比TF32高得多,所以我們覺得對於這個產品實現來説,這是一個正確的權衡。
如果使用TF32,速度會是多少呢?會和FP32的速度一樣嗎?
艾倫:使用TF32會有兩種選擇。我們提供了一些仿真功能,雖然我不能立刻説出確切的吞吐量細節,但我們確實提供了基於軟件的仿真,使用BF16來仿真TF32,或者你也可以將其轉換為FP32,以FP32的速率使用。
從計算單元(CU)談到XCD(計算裸片),新的計算裸片現在採用了N3P工藝,但物理上裸片上的CU數量從40個減少到了36個,每個着色器引擎禁用了4個CU。為什麼現在是32個啓用的CU,為什麼要減少數量呢?
艾倫:在 MI300 上,我們協同設計了 MI300X 和 MI300A 兩個版本,一個用於 HPC(高性能計算),一個用於 AI。在 MI300A 中,我們只有六個 XCD。因此,當我們只有六個加速器小芯片時,我們需要確保有足夠的計算單元來支撐 HPC 或高性能計算(即傳統的 FP64 雙精度浮點模擬)的性能水平,以達到我們為目標市場(領導級超級計算機)設定的性能目標。
我們做到了這一點,並與勞倫斯利弗莫爾國家實驗室 (Lawrence Livermore) 一起,通過 El Capitan 超級計算機交付了世界上最快的(HPC)系統。但作為當時的考量,我們希望每個 XCD 擁有更多的計算單元,以便在 MI300A 中總共達到 224 個 CU。
而在MI350上,它是專門設計為純加速器、獨立加速器的,我們在那裏有更大的靈活性。因此我們決定讓每個芯片上啓用的計算單元數量是2 的冪——物理上是 36 個,但我們啓用 32 個。其中四個(每個着色器引擎一個)用於良率冗餘(harvesting),我們在台積電 N3(一項領先技術)的高產量製造過程中將它們熔斷禁用,最終保證我們啓用的數量是 32 個。
32 是個很好的 2 的冪數,如果你有 2 的冪數的計算單元,張量填充(tiling)會更容易。所以你處理的大多數張量,或者説很多張量,都是基於 2 的冪數的矩陣。這樣就能輕鬆地將它們填充(tile)到計算單元的數量中,並減少可能出現的“尾部效應”(tail effect)。因為如果你的計算單元數量不是 2 的冪數,那麼張量的某部分可能無法很好地直接映射,你可能需要在最後只使用一部分計算單元來完成剩餘的工作。因此我們發現,擁有 2 的冪數的計算單元數量可以帶來一些優化。
雖然新的計算單元採用了N3P工藝,但I/O裸片採用的是N6工藝,為什麼繼續使用N6呢?
艾倫:首先,在我們的小芯片技術中,我們是有選擇的,採用小芯片設計讓我們能夠在合適的情況下選擇不同的工藝。而I/O裸片中的部件,往往不太適合採用先進工藝進行縮放。比如HBM物理層(PHYs)、高速串行器/解串器(SERDES)、我們配備的InfinityCache緩存以及靜態隨機存取存儲器(SRAMs)等,這些部件不太容易隨着工藝的進步而很好地縮放。因此,在大尺寸裸片上採用成熟良率的舊工藝,可以為我們的客户提供具有成本效益和總擁有成本(TCO)優勢的產品。然後,我們能夠將最先進的工藝,如N3P,用於計算部分,因為在計算單元的實現上,我們可以從功耗和麪積縮放中獲得顯著的好處。
除LDS外,緩存層級架構是否有變化?
艾倫:因為,MI300的設計是為了在高性能計算中實現最高性能,要做到這一點,我們需要為計算單元提供足夠的全局帶寬,以支持雙精度浮點運算。所以我們已經設計了InfinityFabric和XCC(加速計算核心)內部的結構,以提供足夠的帶寬來滿足MI300中高雙精度矩陣運算的需求,以及與之相關的所有緩存層級結構。因此,我們能夠利用已經內置在MI300中的這些互連能力,所以不需要對它們進行任何修改。
對於 MI350,你們現在從四個基礎裸片減少到了兩個基礎裸片。這一變化在頂部裸片的佈局方面實現了哪些優化?
艾倫:在MI350中,I/O裸片只有兩個。每個I/O裸片承載四個加速器小芯片,而在MI300中,我們有四個I/O裸片,每個承載兩個加速器小芯片。
我們這樣做的原因是,我們希望增加來自全局HBM的帶寬。MI300是為HBM3設計的,而MI350則是專門為HBM3E設計的。所以我們希望從5.2或5.6Gb/s提升到完整的8Gb/s。但我們也希望以儘可能低的功耗來實現這一點,因為在固定的GPU功耗水平下,以最低的每比特能耗將數據從HBM傳輸到計算核心,就能在同一時間為計算部分提供更多的功耗。對於受帶寬限制的內核,通過減少數據傳輸所消耗的功率,我們可以將更多的功率用於計算,從而為這些內核提供更高的性能。
因此,我們通過將兩個芯片合併為一個,能夠拓寬這些芯片內部的總線,這樣每個時鐘週期可以傳輸更多的數據,因此我們可以以更低的頻率和更低的電壓運行它們,這使得傳輸這些數據所需的功率隨着電壓的平方而降低。這就是我們這樣做的原因。
説到功耗,MI350x的功耗為1000瓦,MI355x為1400瓦。當考慮到功耗增加40%時,除了系統冷卻,在保持各個小芯片在公差範圍內方面,有哪些不同的散熱考慮呢?
艾倫:當我們對這些芯片進行整體功耗和散熱架構設計時,我們會從主板一直考慮到子板,在這種情況下是UBB(通用基板)、OAM(OCP加速器模塊),然後到CoWoS(芯片在晶圓在基板上)的堆疊,中間層的I/O裸片,以及上面的計算部分。我們會考慮整個堆疊的總熱密度,以及堆疊內部的熱傳輸或熱阻,還有為了進行散熱而需要在上面構建的熱界面材料。
因此,我們為MI350系列提供了兩種不同的散熱解決方案。一種是風冷,如你所説;另一種是直接附着液冷。在液冷情況下,冷板會直接附着在芯片頂部的熱界面材料上。我們對整個堆疊進行熱建模,並直接與所有技術合作夥伴合作,確保我們在芯片中構建的功率密度能夠被整個散熱堆疊所處理。
*聲明:本文系原作者創作。文章內容系其個人觀點,我方轉載僅為分享與討論,不代表我方贊成或認同,如有異議,請聯繫後台。