Tăng tốc phần cứng bằng LiteRT

Tăng tốc phần cứng là việc sử dụng phần cứng máy tính chuyên dụng để cải thiện tốc độ thực thi và hiệu quả của một mô hình AI. Đối với LiteRT, điều này chủ yếu liên quan đến việc sử dụng Đơn vị xử lý đồ hoạ (GPU) hoặc Đơn vị xử lý thần kinh (NPU) để suy luận AI, cũng như các chỉ dẫn vectơ của Đơn vị xử lý trung tâm (CPU) cho mục đích chung.

Compiled Model API của LiteRT xử lý việc tăng tốc theo 2 bước:

  1. Biên dịch: chuẩn bị một mô hình để chạy với một phần cứng cụ thể.
  2. Dispatch (Gửi): chạy các thao tác đã chọn trên phần cứng có liên quan.

Giai đoạn biên dịch sửa đổi một mô hình LiteRT bằng một giao diện mới mang lại tính linh hoạt cao hơn thông qua các trình bổ trợ trình biên dịch. Quá trình biên dịch mô hình diễn ra trước thời gian (AOT), trước khi biểu đồ được thực thi và điều chỉnh một biểu đồ cụ thể để chạy trên thiết bị.

Các loại bộ tăng tốc

LiteRT cung cấp 3 loại trình tăng tốc: NPU, GPU và CPU.

  • NPU: giao diện hợp nhất cho Qualcomm AI Engine Direct và MediaTek NeuroPilot hiện tại.
  • GPU: Phần phụ trợ OpenCL cùng với phần phụ trợ WebGPU và Metal bằng cách sử dụng Compiled Model API.
  • CPU: Hoạt động thực thi được tối ưu hoá XNNPACK là hoạt động mặc định và luôn có sẵn.

Bạn có thể kết hợp các bộ tăng tốc này để đạt được hiệu suất cao nhất có thể khi một số thao tác phức tạp không có trên một phần cứng nhất định. Khi các trình tăng tốc cạnh tranh trong một hoạt động, LiteRT sẽ sử dụng thứ tự ưu tiên sau: NPU, GPU, CPU.

Tăng tốc bằng GPU

Với tính năng tăng tốc GPU LiteRT, bạn có thể tạo các vùng đệm đầu vào và đầu ra thân thiện với GPU, đạt được khả năng sao chép bằng 0 với dữ liệu trong bộ nhớ GPU và thực thi các tác vụ không đồng bộ để tối đa hoá khả năng xử lý song song. Không cần có cơ chế chuyển tiếp uỷ quyền – bạn chỉ cần chỉ định trình tăng tốc tại thời gian biên dịch:

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

Để biết thêm thông tin về tính năng tăng tốc GPU, hãy xem bài viết Tăng tốc GPU bằng LiteRT

Tăng tốc NPU

LiteRT cung cấp một giao diện hợp nhất để khai thác NPU mà không buộc bạn phải điều hướng riêng lẻ các trình biên dịch, thời gian chạy hoặc các phần phụ thuộc thư viện dành riêng cho nhà cung cấp. Nền tảng này hỗ trợ NPU Qualcomm và MediaTek cho cả đường dẫn biên dịch AOT và Trên thiết bị.

Việc sử dụng NPU với LiteRT thường liên quan đến việc chuyển đổi và biên dịch một mô hình bằng Play for On-device AI (PODAI), đồng thời triển khai mô hình đó bằng Play AI Pack và Mô-đun tính năng.