Altifigence Academy

20 / 24 · 概念

排程、尾部與雙緩衝

K=10、四個輸出、三個 PE,每個輸出增加一週期,計算模型週期與僅計 MAC 的利用率。

將下界轉成排程

運算下界假設各有效 PE 槽都能填滿。排程必須安置載入、初始化、MAC、轉換、寫入與完成。將歸約軸分配至不同 PE,會產生需要合併的部分和。分割輸出軸可能避免合併,但輸出尾部會讓 PE 閒置。說明哪個軸被平行化。

歸約尾部範例

一個輸出需要 K=9 次 MAC,兩個 PE 每週期執行兩項。需要 ceil(9/2)=5 個 MAC 週期,最後週期有一個無效槽。四個依序處理輸出,使用二十個 MAC 週期與四十個可用槽。三十六次有效 MAC 得到 90% MAC 槽利用率。假設各輸出增加一個合併與寫入週期,沒有重疊:總共 24 週期。

此額外成本是模型假設,不是驗證過的 RTL 延遲。實際歸約樹、相依性與輸出埠可能不同。相對於 24 週期內全部 PE 槽,利用率為 36/(2×24)=75%。此分母不同於僅計 MAC 的 90%。總整實作會標示這些假設。

雙緩衝重疊範例

假設各分塊需要六個載入週期、十個運算週期與兩個寫入週期。三個完全依序分塊需 54 週期。有獨立載入與運算資源、雙緩衝輸入和權重,且寫入不衝突時,先載入第一分塊六週期,再運算三個十週期分塊,同時預取後續分塊。加上最後兩週期寫入:38 週期。假設前面的寫入與後續運算重疊。

若運算需四週期,載入仍需六,載入器便跟不上。兩個緩衝器無法創造頻寬。畫出所有權轉移,避免新載入覆寫正使用的運算緩衝器。若讀寫共用匯流排,重新計算理想排程。

接收最後輸入並不表示操作完成。排空 MAC、轉換、活化、池化,以及最後被接受的結果。指定計數器起迄條件。軟體估計、RTL 模擬、合成頻率與裝置量測是不同證據;本課提供數值執行與明確排程估計。

單一輸出排程
  1. 初始化: 以累加器單位載入偏置一次
  2. 五個 MAC 週期: 兩個 PE 處理九個有效項
  3. 合併與儲存: 每個輸出增加一個模型週期
  4. 排空: 最後結果被接受後才完成

自己試試看

K=10、四個輸出、三個 PE,每個輸出增加一週期,計算模型週期與僅計 MAC 的利用率。

查看解說

各輸出需要四個 MAC 週期。總計 4×(4+1)=20 週期。共有 48 個 MAC 槽與 40 次有效 MAC,利用率為 83.33%。

此選擇適用於本瀏覽器,隨時可從頁尾變更。