部署與效率
推論延遲
延遲是取得單一輸入結果所需的實際時間:你給模型一張影像,要多久才有答案?這是使用者真正感受到的——臉部解鎖手機前的卡頓,或自駕車辨識到行人前的時差。越低越好,而許多即時系統會設下硬性預算,例如每張影格 33 毫秒才能維持每秒 30 影格。
延遲應以分布而非單一數字回報。中位數(p50)說明典型情況,但尾端百分位數(p95、p99)對即時與服務水準協議(SLA)最為關鍵,因為偶發的慢回應才是錯過截止時間的元兇。要誠實量測:端到端計時整條流水線(前處理、主機到裝置傳輸、運算、後處理);先暖身,讓快取、自動調校與時脈爬升穩定下來;同步裝置,因為 GPU 是非同步執行,天真計時只量到核心啟動;並對多次執行取平均。請把批次為 1 的延遲,與以吞吐為導向的批次計時分開看待。
真正的主導因素常出人意料:推論常受記憶體頻寬限制(串流權重與激活值)而非受運算限制,這正是 FLOPs 會誤導的原因。其他主要成本還有:模型有許多細小運算子時的核心啟動額外開銷、資料傳輸(主機↔裝置複製、影像解碼),以及同步停頓。你可透過融合運算子、用量化削減頻寬、最佳化批次為 1 的路徑,以及移除主機端停頓來降低延遲。
在 30 FPS 下,每張影格有 33 毫秒預算。一個 p50 為 25 毫秒的偵測器平均看來沒問題,但 p99 為 60 毫秒代表它在最差約 1% 的影格上會錯過截止時間——表現為週期性的卡頓。
平均延遲會掩蓋尾端。一個平均很快但 p99 很糟的模型,在最差的輸入上仍會掉影格或錯過截止時間——對即時視覺而言,要最佳化並回報尾端,而非只看平均。
又称