使用 LiteRT Next 進行硬體加速

硬體加速功能是指使用專用電腦硬體,提升 AI 模型的執行速度和效率。就 LiteRT 而言,這主要是指使用圖形處理器 (GPU) 或神經處理器 (NPU) 進行 AI 推論,以及使用通用中央處理器 (CPU) 的向量指令。

LiteRT 透過使用 TFLite 委派作業支援硬體加速功能,這項作業會在圖表中替換自身的運算,接管 LiteRT 圖表的部分內容。LiteRT Next 會透過兩個步驟處理硬體加速功能,進而改善這個程序:

  1. 編譯:準備模型,以便在特定硬體上執行。
  2. 調度:在相關硬體上執行所選操作。

編譯階段會使用新的介面修改 LiteRT 模型,透過編譯器外掛程式提供更大的彈性。模型編譯會在圖表執行前提前進行 (AOT),並針對裝置執行特定圖表。

加速器類型

LiteRT 提供三種加速器:NPU、GPU 和 CPU。

  • NPU 加速功能可支援在單一介面後方整合的專屬硬體。您可以透過搶先體驗計畫取得 NPU 支援。
  • GPU 加速功能支援支援 WebGL 和 OpenCL 的裝置。
  • CPU 加速功能透過使用 XNNPack 程式庫,支援各種處理器。這是預設的加速程度,一律可用。

當特定硬體無法執行某些複雜作業時,您可以結合這些加速器,盡可能獲得最佳效能。當加速器競爭作業時,LiteRT 會使用以下優先順序:NPU、GPU、CPU。

GPU 加速

透過 LiteRT Next 的 GPU 加速功能,您可以建立 GPU 友善的輸入和輸出緩衝區,在 GPU 記憶體中實現零複製資料,並以非同步方式執行工作,以便盡可能提高平行處理能力。LiteRT Next 使用 LiteRT 未提供的新版 GPU 委派作業。

使用 LiteRT 在 GPU 上執行模型時,需要明確的委派程式建立、函式呼叫和圖表修改。使用 LiteRT Next 時,只要指定加速器即可:

// Create a compiled model targeting GPU
LITERT_ASSIGN_OR_RETURN(auto compiled_model,
    CompiledModel::Create(env, model, kLiteRtHwAcceleratorGpu));

如要進一步瞭解 GPU 加速功能,請參閱「使用 LiteRT 加速功能進行 GPU 加速

NPU 加速

LiteRT Next 提供統一的介面,可運用 NPU,而不需要強制您個別瀏覽特定供應商的編譯器、執行階段或程式庫依附元件。使用 LiteRT Next 進行 NPU 加速,可避免許多供應商和裝置專屬的複雜問題,提升即時和大型模型推論的效能,並透過零複製硬體緩衝區使用方式,盡量減少記憶體複製作業。

使用 LiteRT 搭配 NPU 時,您必須使用 Play for On-device AI (PODAI) 轉換及編譯模型,並使用 Play AI Pack 和 Feature Module 部署模型。