LiteRT cung cấp một giao diện hợp nhất để sử dụng Đơn vị xử lý thần kinh (NPU) mà không buộc bạn phải điều hướng các trình biên dịch, thời gian chạy hoặc phần phụ thuộc thư viện dành riêng cho nhà cung cấp. Việc sử dụng LiteRT để tăng tốc NPU giúp tăng hiệu suất cho việc suy luận theo thời gian thực và của mô hình lớn, đồng thời giảm thiểu việc sao chép bộ nhớ thông qua việc sử dụng bộ đệm phần cứng không sao chép.
Bắt đầu
Để bắt đầu, hãy xem hướng dẫn tổng quan về NPU:
- Đối với các mô hình học máy cũ, hãy xem các phần sau để biết các bước chuyển đổi, biên dịch và triển khai.
- Đối với Mô hình ngôn ngữ lớn (LLM), hãy sử dụng khung LiteRT-LM của chúng tôi:
Để biết ví dụ về cách triển khai LiteRT có hỗ trợ NPU, hãy tham khảo các ứng dụng minh hoạ sau:
Nhà cung cấp NPU
LiteRT hỗ trợ tính năng tăng tốc NPU với các nhà cung cấp sau:
Qualcomm AI Engine Direct
- Đường dẫn thực thi biên dịch AOT và Trên thiết bị được hỗ trợ thông qua Compiled Model API.
- Hãy xem phần Qualcomm AI Engine Direct để biết thông tin chi tiết về cách thiết lập.
MediaTek NeuroPilot
- Các đường dẫn thực thi AOT và JIT được hỗ trợ thông qua Compiled Model API.
- Hãy xem phần MediaTek NeuroPilot để biết thông tin chi tiết về cách thiết lập.
Chuyển đổi và biên dịch các mô hình cho NPU
Để sử dụng tính năng tăng tốc NPU, hãy chuyển đổi mô hình của bạn sang định dạng LiteRT và biên dịch cho SoC mục tiêu bằng Trình biên dịch AOT LiteRT. Trình biên dịch tạo ra một Gói AI, trong đó kết hợp mô hình đã biên dịch và cấu hình nhắm mục tiêu theo thiết bị.
Hãy sử dụng Sổ tay biên dịch AOT LiteRT để xem hướng dẫn toàn diện.
Triển khai bằng Gói AI của Play (AOT)
- Sao chép các gói AI đã tạo vào dự án Gradle của bạn trong
ai_packs/. - Thêm gói AI vào
settings.gradle.ktsbằnginclude(":ai_packs:your_pack"). - Thêm các thư viện thời gian chạy NPU (Qualcomm và MediaTek) và các mô-đun chuỗi vào dự án.
- Định cấu hình
bundle.deviceTargetingConfigvà thêm Gói AI vàoassetPackstrongbuild.gradle.kts. - Đặt
minSdk = 31, ABIarm64-v8avà bật tính năng đóng gói JNI cũ cho các thư viện thời gian chạy Qualcomm.
Triển khai theo yêu cầu (AOT)
Khi bạn định cấu hình việc phân phối Gói AI, hãy chọn NPU trên các thiết bị có khả năng và quay lại GPU hoặc CPU khi cần:
val env = Environment.create(BuiltinNpuAcceleratorProvider(context))
val modelProvider = AiPackModelProvider(
context, "my_model", "model/my_model.tflite") {
if (NpuCompatibilityChecker.Qualcomm.isDeviceSupported())
setOf(Accelerator.NPU) else setOf(Accelerator.CPU, Accelerator.GPU)
}
val mtkModelProvider = AiPackModelProvider(
context, "my_model_mtk", "model/my_model.tflite") {
if (NpuCompatibilityChecker.MediaTek.isDeviceSupported())
setOf(Accelerator.NPU) else setOf(Accelerator.CPU, Accelerator.GPU)
}