在負責邊緣AI垂直解決方案的PM期間,QA環節最常遇到客戶詢問:
「該如何評估AI模型要訓練多久時間?」
想要估算訓練時間,可以從最簡單的公式展開:訓練時間=算力需求÷算力供給。
算力需求取決於客戶的AI應用類別、AI模型與資料/數據規模而定,難以給出一個標準答案,必須個案探討。
但是在算力供給上,從GPU型號做展開,有著簡易的計算框架進行試算。不過筆者非本科出身,若有錯誤,煩請專家不吝出面糾正,謝謝。
GPU算力
我們以輝達GPU型號GeForce RTX 4090為例,Tensor 核心 (AI)達到1321 AI TOPS(浮點),這個1321 TOPS就是我們所謂的GPU基礎算力。
TOPS是Trillions of Operations Per Second的縮寫,中文為「每秒兆次運算」,是一種用來衡量AI硬體運算能力的單位,1 TOPS代表處理器每秒可進行1兆次運作。
有了基本的單位概念,就能知道RTX 4090每秒達1321 TOPS。
不過隨著客戶對算力需求的不同,要求的數值精度也不同,而輝達在GPU規格以AI TOPS所呈現的,只是INT8的8位整數運算單位。
在AI模型所要求的訓練精度,整數單位的精度不夠,往往需要到小數點後面好幾位,因此以TFLOPS為單位的要求就順勢而生。
TFLOPS浮點精度數值格式
TFLOPS(Tera Floating-point Operations Per Second),中文為「每秒兆次浮點運算」,指每秒進行1兆次的浮點運算,能夠處理帶有小數的數值計算。
不同的AI模型與應用,有著不同的精度與算力要求,繁衍出各種數值格式:
INT8(8位整數運算)
- 多數整數浮點採用的數值格式,單位為TOPS,其餘轉換為小數的單位為TFLOPS。
- 每個數值佔用8位記憶體,常用於機器學習推理階段,特別是在深度學習中,能夠顯著提升計算效率和降低能耗。
- 通過量化技術將浮點數轉換為整數,從而在保持一定精度的同時提高性能。
FP16(半精度浮點運算)
- 每個數值佔用16位記憶體,適用於對精度要求不高的計算場景,如圖像處理、視訊編解碼等 。
- 由於其較小的記憶體佔用和頻寬需求,FP16 在移動裝置和嵌入式系統中特別有用 。
FP32(單精度浮點運算)
- 每個數值佔用32位記憶體,廣泛應用於科學計算、圖形渲染等需要較高精度的場景。
- 提供了良好的精度和動態範圍,適用於大多數高性能計算任務。
TF32(TensorFloat-32)
- 由輝達引入的一種新型浮點格式,結合了FP32的精度優勢和FP16的效率特點,主要用於深度學習模型訓練。
- 某些情況下,TF32 可以提供比FP32更好的性能且不會顯著損失精度,同時減少了記憶體頻寬的需求。
FP64(雙精度浮點運算)
- 每個數值佔用64位記憶體,提供極高的精度和更大的動態範圍,廣泛應用於需要極高精度的科學計算、工程模擬、金融建模等領域。
- 確保了在複雜計算中的精準性,尤其是在涉及高精度資料或累積誤差敏感的任務中。
FP8(8位浮點運算)
- 一種新興的浮點格式,旨在進一步壓縮記憶體使用,同時保持一定的精度 ,這種格式正在成為AI加速器中的一個重要選擇。
- 通常用於深度學習推理和訓練,特別是當硬體支援時,可以在不影響性能的情況下顯著減少記憶體佔用和頻寬需求。
隨著AI領域發展迅速,不同精度的數值格式仍蓬勃發展中,像是BF16、INT4、INT32等等,有些是標準,有些則是企業自身需求而生,像是輝達的TF混合精度系列,就是希望精度提升的同時,算力消耗不要同步上升太多所催生的數值格式(主要是為了減少記憶體消耗)。
有了GPU型號規格的AI TOPS,也有了不同精度的數值格式,就能轉換不同精度下能提供多少算力FLOPS。同樣以NVIDIA GeForce RTX 4090為例:

RTX 4090不同精度下所提供算力
上述的試算只是GPU在「理論峰值」下的假設,現實遠比想像中殘酷,實際上的算力供給,並沒有上述這麼簡單。
理論峰值 vs 實際效能
理論峰值指的是假設GPU在完全飽和、沒有任何記憶體瓶頸、IO 延遲、程式碼效率損耗等「理想狀況」下,GPU能完全發揮100%效能下所能提供的算力。以RTX 4090來說,理論峰值就是1321 TOPS。
實際做AI訓練時,會因為不同因素導致無法達到理論峰值:
- 記憶體頻寬限制。
- 資料載入與計算之間存在瓶頸。
- 網路結構與 batch size 對 Tensor Core 使用率影響大。
- GPU 使用率、framework效率(如 PyTorch、TensorFlow)等都會吃掉效能。
講點通俗的,通常GPU不太能夠發揮100%效能,光是維持電腦運作、韌體、操作OS與基礎軟體運行,就會消耗所謂的基本效能。
更不論進行AI訓練的前置作業,包括設置環境、驅動程式、AI框架、資料庫、演算法、前後端架構、程式碼等等。不僅如此,還要考量壓榨效能下所產生的熱能該如何進行散熱處理,必免造成熱當、熱衰竭,甚至造成物理上不可恢復的損壞。
因此實際上算力供應,實際利用率僅有理論峰值的30%~60%,唯有持續不斷精進與優化軟硬體配置、前後端架構、AI框架、AI模型等,才能達到大於60%的水準。
一機多卡的效能評估,並不是倍數成長
與客戶討論完AI應用可能需要的算力需求後,往往又會回頭問到關於算力供給的問題上:為了有效縮短AI上線時間,該如何提升算力?
假設原先一台工作站配置1張GPU,為了提升每台工作站的算力,因此多插1~3張GPU,讓一台工作站來到2~4張GPU,那麼效能是否就能直接X2~4的算呢?
理論效能同樣能直接X2、X3的計算,軟體上實際上取決於「資料與模型的切割策略」與「GPU 間的通訊開銷與同步開銷 」,硬體上則受限於功耗、冷卻、通訊瓶頸等等。
因此在計算多卡的加速比上,2~4張GPU的實際加速比約莫落在1.6~3倍。意謂著2張卡的理論算力應該為200%,實際上效能只有160%;4張GPU的理論效能400%,實際只有300%,意謂著4張GPU實際上只有3張卡的效能。
為了省預算,與其一卡一機,不如多卡一機的採購決策,看似省下額外設備的錢,落實將錢花在刀口上,實際上仍是要多個方案評估後決定,以避免工作站不堪負荷,用沒多久就整台報銷。
多卡一機的硬體配置又與一卡一機有所差異。GPU算力基本公式:理論峰值×實際效能×加速比
對GPU算力試算的公式探討至此,總算是有一個雛形框架出來。根據上述公式,我們同樣以RTX 4090為例,就能得出以下表格:

RTX 4090 實際利用率40%下的1/2/4卡算力FLOPS
從上表可以發現,FP32、FP64的效能小於100 TFLOPS,這時候就衡量消費等級的GPU是否能滿足特定的AI需求,像是5080、5090是否可行?抑或是要用到伺服器水準的GPU做使用(如 A100、H100)。
大家可以照同樣的思維脈絡,得出各個型號GPU於不同精度數值格式下的算力供給,並搭配AI應用的算力需求,得出AI模型訓練所需時間。
結語:GPU算力供給,配置從硬體開始
GPU該如何提升算力實際利用率,從硬體規格就開始。至於硬體規格要如何圍繞著GPU做配置?仍要回到使用者需求上,根據使用情境與AI應用,推估出所需算力,才能知道有哪些等級的GPU可滿足AI用途,最終根據終端AI運用情境、所需算力與GPU型號決定硬體配置。
至於硬體規格如何與GPU做搭配?考量哪些關鍵因素?如何縮小理論峰值與實際效能差異、提高加速比?這些都是Know-How了,也超過本篇討論範疇,上述議題容筆者就此打住。
關於AI應用類型與所需算力估算框架,未來有機會在分享給大家。
















