14 / 20 · 概念
頻寬與有效利用率
區分峰值 MAC 容量,以及填入、排空、填補與記憶體成本。
單元可免費閱讀,註冊課程即可儲存學習進度。
定義區間與單位
N×N 網格的峰值為每個 advance 邊緣 N² 次 MAC。填入與排空降低獨立工作的利用率。在無停頓、完整分塊、一邊緣轉送模型中,有效工作為 N²K,可用槽為 N²(K+2N−2),運算區間利用率為 K/(K+2N−2)。
N=4、K=16 時,網格在二十二個 advance 邊緣執行 256 次 MAC。利用率為 256/352=8/11,約 72.73%。假設 100MHz,峰值容量為 1.6 GMAC/s,獨立運算區間吞吐量約為 1.164 GMAC/s。分別計算乘法與加法,操作數會加倍。這是使用假設頻率的估計,並非量測的合成結果。
計算各邊界流量
注入 A 與 B 需要 2NK 個值:八位元運算元共 128 位元組。PE 消費 512 個運算元值,顯示每個邊界輸入重用四次。注入重疊區間可能需要每邊緣八位元組,100MHz 下為 0.8GB/s。峰值供應需求不同於填入與排空期間的平均需求。
假設十六個結果使用三十二位元儲存槽,雖然累加器只有二十位元寬。結果寫入增加六十四位元組,因此外部流量共 192 位元組,不含跨分塊重用、命令額外成本或對齊浪費。算術強度為 256/192=4/3 MAC/位元組。
0.4GB/s 下,只有傳輸就至少需 480ns;運算需 220ns。即使完美重疊,也無法短於較長區間,因此吞吐量上界約為 0.533 GMAC/s。這是上界,不保證效能。沒有重疊時,載入需三十二邊緣、運算二十二、寫出十六,共七十個,初始化或其他等待之前約為 0.366 GMAC/s。
N=2 上的含填補 3×3 範例,在八十個 PE 槽執行二十七次有效 MAC:有效利用率 33.75%。若計入填補零 MAC,則為 60%,是不同量測。Jouppi 等人的 TPU 論文 可作為區分加速器峰值容量與工作負載效能的研究參考;此處數值範例由我們的排程推導。
自己試試看
完整 N=2、K=8 分塊,求 MAC 次數、運算邊緣數、利用率與八位元邊界輸入位元組數。
查看解說
共有 32 次 MAC、十個運算邊緣與四十個 PE 槽,因此利用率為 80%。邊界輸入為 2×2×8=32 位元組。運算利用率不含載入與結果寫入。