Trang này mô tả các phương pháp hay nhất để triển khai trình điều khiển Neural Networks API (NNAPI) nhằm cho phép nhà phát triển ứng dụng áp dụng rộng rãi NNAPI.
Giảm thời gian khởi động
Nếu trình điều khiển của bạn chuyển đổi trọng số của một mô hình khi sử dụng lần đầu, hãy đảm bảo trình điều khiển hỗ trợ tính năng lưu vào bộ nhớ đệm khi biên dịch. Tính năng này giúp giảm thời gian dùng để biên dịch khi một ứng dụng khởi động. Điều này rất quan trọng vì các ứng dụng có thể tránh sử dụng tính năng tăng tốc phần cứng nếu thời gian khởi động quá dài. Ví dụ: một số ứng dụng có trọng số lớn hơn 100 MB và việc chuyển đổi các trọng số này mỗi khi ứng dụng khởi chạy là không cần thiết.
Giảm độ trễ tối thiểu
Để đảm bảo rằng các mô hình sử dụng tính năng tăng tốc phần cứng, bạn cần giảm độ trễ tối thiểu trong trình điều khiển. Nhiều ứng dụng sử dụng các mô hình nhỏ được thực thi nhiều lần và nếu độ trễ tối thiểu để thực thi một khối lượng công việc quá cao (chẳng hạn như vài mili giây), thì các mô hình có thể chạy khối lượng công việc trên CPU (chỉ mất 1 hoặc 2 mili giây) thay vì sử dụng các hoạt động tăng tốc phần cứng. Hãy cẩn thận với việc đồng bộ hoá luồng tốn kém.
Sử dụng nhóm NN HAL SchedTune
Từ Android 11 trở lên, AOSP có một nhóm SchedTune NN HAL chuyên dụng cho phép các quy trình NN HAL liên quy trình sử dụng các lõi lớn, tương tự như việc triển khai cùng quy trình trong top-app
cgroup được xác định trước. Việc sử dụng nhóm SchedTune này giúp giảm tải cho trình điều khiển, đặc biệt là đối với các mô hình nhỏ.
Để sử dụng nhóm SchedTune, hãy thêm dòng sau vào tệp init.rc
của quy trình NN HAL:
writepid /dev/stune/nnapi-hal/tasks