AMD Tech Day 2024(三):XDNA 2 AI運算架構解析,Block FP16資料類型運算效率倍增

AMD Tech Day 2024(三):XDNA 2 AI運算架構解析,Block FP16資料類型運算效率倍增

ADVERTISEMENT

AMD在Ryzen AI 300系列行動版處理器導入XDNA 2 AI運算架構,透過強化AI運算效能與電力效率,帶來更理想的使用者體驗。

XDNA 2架構提升AIPC體驗

AMD人工智慧事業部資深副總裁Vamsi Boppana則在後續的段落針對XDNA 2 AI運算架構進行說明。首先他提到因為神經處理器(NPU)具有更高的AI運算電力效率,並舉例能在完成相同AI運算負載的條件下,較單純使用處理器(CPU)節省35倍的電力(即NPU的電力效率為CPU的35倍),因此更適合負責如即時視訊會議最佳化、即時語音翻譯等需要常時開啟的AI應用程式。

以Ryzen AI 300系列行動版處理器為例,它具有Zen 5架構處理器、RDNA 3.5架構內建顯示晶片,以及XDNA 2架構NPU,雖然3者都能進行AI運算,但彼此相異的特性讓它們有不同的適用情境。

比較有趣的是,不同於Intel已經公布3種運算單元的AI運算效能,而AMD僅公布NPU在INT8資料類型的AI運算效能為50 TOPS,至於處理器與內建顯示晶片部分則選擇尚不公布。

回到XDNA 2架構,它最大的的特色就是專為AI運算設計與最佳化的彈性運算與記憶體階層結構,除了能夠透過可程式化互連(Programable Interconnect)維持資料傳輸的最佳效率,還能以群播(Multicast,傳輸過成主控端僅送出1份資料,並由節點自行複製,達到一對多傳輸的效果)方式在快速將相同資料複製到各運算節點,進一步提升記憶體運作效率以及整體運算效能。

前代XDNA世代的NPU僅有20組AI引擎模塊(AI Engine Tile),能夠達到10 TOPS的AI運算效能。而XDNA 2世代的NPU將AI引擎數量擴充為32組,而且每組引擎內的MAC運算單元增加1倍,能夠提供50 TOPS的AI運算效能。

XDNA 2也導入2種不同的多工運作模式,其中空間分割(Spatial)為將AI引擎模塊分配給不同的AI應用程式,讓每個程式都能獨佔指定數量的AI引擎模塊,而時域分割(Temporal)則是讓多個AI應用程式共用整體AI引擎模塊,並以時間切割各AI應用程式佔用的資源(概念比較接近單核心處理器的多工運算),系統能夠視運算負載的特性選擇運作模式。

在電力管理部分,XDNA 2導入欄位電源開關(Columm-Base Power Gate),能夠依照負載狀況關閉非運作中的AI引擎模塊,達到節省閒置功耗的效果。

 

根據AMD的分析,理想的大型語言模型至少需要30B(300億)組參數,AI運算的效能則需要每秒輸出100組字詞(Token)。而現在的Ryzen AI 300系列行動版處理僅能滿足7B(70億)組參數的大型語言模型,每秒輸出字詞也僅有20組,還有很大的進步空間。

 

Ryzen AI 300系列行動版處理搭載Zen 5處理器、RDNA 3.5內建顯示晶片、XDNA 2 NPU等架構,搭配統一化的AI Software,能夠滿足多種不同的AI運算負載需求。

目前Ryzen AI 300系列行動版處理器搭載的NPU屬於第3代產品,能夠提供50 TOPS的AI運算效能。

NPU的特色是透過特化運算單元在進行AI運算時節省電力,可帶來35倍於處理器的電力效率,更適合負責如即時視訊會議最佳化、即時語音翻譯等需要常時開啟的AI應用程式。

XDNA與一般多核心處理器的架構差異在於,XDNA由AI引擎模塊(AI Engine Tile)與記憶體模塊(Memory Tile)構成,針對資料流的需求進行傳輸路徑與拓樸的最佳化,並夠透過可程式化互連維持資料傳輸的最佳效率。

XDNA 2導入將AI引擎模塊分配給不同AI應用程式的空間分割,以及讓多個AI應用程式共用整體AI引擎模塊的時域分割等2種多工運作模式。圖片右側的範例為空間分割,將AI引擎模塊依8、8、16組數量切割給2個AI應用程式使用。

Ryzen AI 300系列行動版處理器內建的NPU提升至XDNA 2架構,具有更多AI引擎模塊以及高達50 TOPS的AI運算效能。

與前代產品相比,Ryzen AI 300系列行動版處理器具有5倍的運算效能與2倍電力效率。

Block FP16資料類型又一效能禁藥

XDNA 2的另一大特色就是導入Block FP16資料類型,能夠在提供接近FP16的精確度下,享有接近INT8較低的記憶體佔用量以及更高的效能輸出。由於在AI運算的實際情況中,同一區塊的資料通常在浮點數的指數部分(Exponent)都相當接近,因此Block FP16將指數部分抽出為並標註為共用,以節省佔用的記憶體空間,與運算過程的負載。

舉例來說,BF16資料類型的結構為在16 bit的資料長度中,使用5 bit記錄指數、1 bit記錄正負號、10 bit記錄尾數(Mantissa),8組BF16資料總共就需佔用 16 x 8 =128 bit 記憶體空間。

而Block FP16則是使用8 bit記錄同一區塊中所有資料的指數,而各別資料則是否1 bit記錄正負號、7 bit記錄尾數。8組Block FP16資料加上共用「指數」總共只需佔用 (8+1) x 8 =72 bit 記憶體空間,能在犧牲極小準確度的前提下,大幅降低記憶體用量與運算負載,也能降低模型佔用的儲存空間。

不過受到Block FP16特殊資料結構的影響,目前僅有XDNA 2架構的NPU能夠支援此種資料類型運算,Zen 5架構處理器與RDNA 3.5架構內建顯示晶片無法支援。另一方面,使用者也需事先進行一次性的模型轉換,將FP16資料類型的AI模型轉會為Block FP16格式,這個步驟可以透過專屬程式自動達成,而不需要進行模型重新訓練或調整。

Block FP16資料類型最大的特色就是將8組浮點數的指數部分(Exponent)抽出為並標註為共用,並以8 bit記錄各浮點數的正負號與尾數,發揮節省儲存容量、提高運算效率的效果。(圖片翻攝自研討會之螢幕,畫質較差敬請見諒)

AMD表示Block FP16資料類型能在維持接近INT8的運算效率的前提下,帶來接近FP16的精準度。

Ryzen AI 300系列行動版處理器內建的NPU能提供50 TOPS的INT8資料類型AI運算效能,以及接近50 TOPS的Block FP16資料類型AI運算效能。圖表為使用Block FP16資料類型與競爭對手使用FP16資料類型的效能對比。

整體而言,Block FP16資料類型的運算需求接近8 bit,儲存需求為9 bit,能帶來接近16 bit的精準度。

根據AMD提供的圖像生成範例,Block FP16的精準度大幅領先INT8(生成的圖像更像蛋糕),與FP16效果接近。

Block FP16在多種應用情境的精準度可以達到FP32的99.7%~100%。

▲AMD在研討會中也實際展示Ryzen AI 300系列行動版處理器以GPU執行大型語言模型,並同時透過NPU進行SDXL Turbo圖像生成,可以看到2款應用程式的執行都相當流暢。其中因為軟體尚未最佳化的關係,所以SDXL Turbo圖像生成僅使用一半的AI引擎模塊,在Euler A取樣器、512 x 512解析度、4迭代步數條件下,只需約6.8秒就能完成圖像生成。

此外AMD也預計推出具有RAG功能(Retrieval Augmented Generation,檢索增強生成)的應用程式。與NVIDIA ChatRTX接近,提升大型語言模型的精準度。

AMD也持續開發Ryzen AI Software,以增加基礎模型的相容性並提升運算效能。

Ryzen AI Software能簡化AI模型的部署,透過統一的ONNX框架執行提供者(Execution Provider)將AI運算負載切分為CPU、GPU、NPU執行環境(Runtime),並分配至對應的運算單元。

整體而言,Ryzen AI 300系列行動版處理器內建的NPU能夠提供50 TOPS的INT8資料類型AI運算效能,已經領先Intel、Qualcomm等主要競爭對手同世代的產品,而加上Block FP16資料類型的「效能禁藥」,則可帶來大幅領先對手FP16資料類型的效能,讓人不禁期待它的實際表現以及能傳遞的使用者體驗。

國寶大師 李文恩
作者

電腦王特約作者,專門負責硬派內容,從處理器、主機板到開發板、零組件,尖端科技都一手包辦,最近的研究計畫則包括Windows 98復活與AI圖像生成。

使用 Facebook 留言
發表回應
謹慎發言,尊重彼此。按此展開留言規則