人工智慧處理器效能 MAC , TOPS

人工智慧處理器的效能常以 TOPS 表示,而神經網路模型的計算需求則常以 MAC 統計。兩者都涉及乘法與累加,但分別描述硬體能力與模型工作量:MAC 表示模型需要完成多少乘加運算,TOPS 則表示處理器在特定數值精度與計數方式下,每秒最多可執行多少次基本運算。因此,TOPS 是峰值吞吐量指標,不能直接等同於實際推理速度。
TOPS、FLOPS 與 MAC
TOPS(Tera Operations Per Second)是每秒兆次運算,通常用於描述人工智慧加速器的峰值運算能力。規格表中的 TOPS 應同時搭配數值精度閱讀,例如 INT8 TOPS、FP16 TOPS 或 INT4 TOPS。若缺少精度資訊,不同處理器之間便難以公平比較。
FLOPS(Floating-Point Operations Per Second)則專門表示每秒可完成的浮點運算,常見形式包括 FP32、FP16 與 BF16。TOPS 可以涵蓋整數或浮點運算,FLOPS 的範圍則限於浮點運算。兩者都是吞吐量指標,不能直接表示記憶體頻寬、單次推理延遲、功耗或特定模型的實測表現。
MAC(Multiply-Accumulate)是一次乘法與累加的組合:
卷積層、全連接層與矩陣乘法都大量使用 MAC。以矩陣運算
為例,若某一輸出元素由長度為 的向量內積得到,便約需要 次乘法與相應的累加。因此,模型通常以 MAC 數量估計一次推理所需的計算工作量。MAC 適合描述模型需求,但不是處理器每秒運算能力的單位。[1]
MAC 與 operation 的換算
MAC 與 operation 的換算取決於計數慣例。若將一次乘法與一次加法分別視為一個 operation,則:
然而,部分硬體規格會將融合乘加(fused multiply-add, FMA)視為一次 MAC,或以不同方式計算 operation。因此,模型的 MAC 數不能在未確認定義的情況下直接除以 TOPS。比較不同處理器時,至少應確認其數值精度、MAC 與 operation 的換算方式,以及峰值是否能被實際工作負載利用。
從模型 MAC 理想估算
假設模型一次推理需要 個 MAC,處理器的峰值能力為 TOPS,且規格將一個 MAC 計為兩個 operation。在模型完全使用相同精度、硬體達到峰值的理想條件下,最低計算時間可估計為:
實際推理通常低於此理想值。若以硬體利用率 表示實際運算單元的利用程度,則:
利用率會受到記憶體頻寬、資料搬移、算子支援、張量形狀、批次大小、核心頻率、溫度與軟體最佳化等因素影響。當模型受限於記憶體存取或資料搬移時,提高 TOPS 不一定能等比例降低延遲。這也是實際部署評測需要同時觀察吞吐量與延遲的原因。[2]
精度對 TOPS 與推理效能的影響
數值精度會影響模型大小、記憶體流量、量化誤差,以及處理器可使用的計算單元。較低的位元數通常能減少資料搬移並提高特定硬體上的吞吐量,但可能降低模型準確率,仍須透過實際模型與資料集驗證。
| 精度 | 常見用途 | 主要考量 |
|---|---|---|
| FP32 | 訓練、基準與高精度計算 | 精度較高,但計算與記憶體成本較大 |
| FP16/BF16 | 加速器推理、混合精度訓練 | 在精度與吞吐量之間取得平衡 |
| INT8 | 量化推理、邊緣裝置 | 需評估量化誤差與算子支援 |
| INT4 | 受限資源裝置與部分大型模型推理 | 資料量較小,但精度與硬體支援更敏感 |
因此,INT8 TOPS 與 FP16 TOPS 不是可以直接互換的數值。即使兩者標示相同數字,也不代表它們對同一模型具有相同的推理能力。正確的比較方式,是確認模型所使用的精度與算子是否能由該處理器有效支援,再搭配實際延遲、吞吐量、功耗與準確率判斷。
參考文獻
[1] V. Sze, Y.-H. Chen, T.-J. Yang, and J. S. Emer, “Efficient Processing of Deep Neural Networks: A Tutorial and Survey,” Proceedings of the IEEE, vol. 105, no. 12, pp. 2295–2329, 2017. https://doi.org/10.1109/JPROC.2017.2761740
[2] MLCommons, “MLPerf Inference,” MLCommons. https://mlcommons.org/working-groups/benchmarks/inference/


