硬體加速是指使用專用電腦硬體,提升 AI 模型的執行速度和效率。就 LiteRT 而言,這主要是指使用圖形處理器 (GPU) 或神經處理單元 (NPU) 進行 AI 推論,以及使用通用中央處理器 (CPU) 向量指令。
LiteRT 編譯模型 API 會分兩個步驟處理加速作業:
- 編譯:準備好在特定硬體上執行的模型。
- 派遣:在相關硬體上執行選取的作業。
編譯階段會使用新介面修改 LiteRT 模型,透過編譯器外掛程式提供更多彈性。模型編譯會在圖形執行前提前 (AOT) 進行,並調整特定圖形,以便在裝置上執行。
加速器類型
LiteRT 提供三種加速器:NPU、GPU 和 CPU。
- NPU:目前是 Qualcomm AI Engine Direct 和 MediaTek NeuroPilot 的統一介面。
- GPU:OpenCL 後端,以及使用已編譯模型 API 的 WebGPU 和 Metal 後端。
- CPU:系統預設會執行 XNNPACK 最佳化作業,且隨時可用。
如果特定硬體無法執行某些複雜作業,您可以結合這些加速器,盡可能提升效能。當加速器爭奪作業時,LiteRT 會依下列優先順序執行作業:NPU、GPU、CPU。
GPU 加速
透過 LiteRT GPU 加速功能,您可以建立 GPU 友善的輸入和輸出緩衝區、在 GPU 記憶體中以零複製方式處理資料,以及非同步執行工作,盡可能提高平行處理能力。不需要任何委派管道,只要在編譯時指定加速器即可:
// Create a compiled model targeting GPU
LITERT_ASSIGN_OR_RETURN(auto compiled_model,
CompiledModel::Create(env, model, kLiteRtHwAcceleratorGpu));
如要進一步瞭解 GPU 加速功能,請參閱「使用 LiteRT 進行 GPU 加速」
NPU 加速
LiteRT 提供統一介面來運用 NPU,不必個別瀏覽廠商專屬的編譯器、執行階段或程式庫依附元件。無論是 AOT 或裝置端編譯路徑,都支援 Qualcomm 和 MediaTek NPU。
搭配使用 NPU 與 LiteRT 通常需要透過 Play for On-device AI (PODAI) 轉換及編譯模型,並透過 Play AI Pack 和功能模組部署模型。