Các phương pháp hay nhất khi triển khai trình điều khiển NNAPI

Trang này mô tả các phương pháp hay nhất để triển khai Neural Networks API (NNAPI) các trình điều khiển để các nhà phát triển ứng dụng chấp nhận rộng rãi NNAPI.

Giữ cho thời gian khởi động ngắn

Nếu người lái xe của bạn biến đổi trọng số của mô hình trong lần sử dụng đầu tiên, hãy đảm bảo trình điều khiển hỗ trợ lưu biên dịch vào bộ nhớ đệm, giúp giảm thời gian biên dịch khi một ứng dụng khởi động. Điều này rất quan trọng vì ứng dụng có thể tránh sử dụng phần cứng nếu thời gian khởi động quá dài. Ví dụ: một số ứng dụng có hơn 100 MB trọng lượng và chuyển đổi các trọng lượng này mỗi lần ứng dụng là một việc lãng phí.

Giảm độ trễ tối thiểu

Để đảm bảo 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 và nếu độ trễ tối thiểu để thực thi khối lượng công việc quá cao, chẳng hạn như vài mili giây, các mô hình có thể chạy khối lượng công việc trên CPU, vốn chỉ mất một hoặc hai mili giây, thay vì bằng cách sử dụng tính năng tăng tốc phần cứng. Thận trọng về 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 tuỳ chọn Lớp trừu tượng phần cứng (HAL) cho NN SchedTune nhóm cho phép các quy trình NN HAL liên quy trình sử dụng tương tự như cách triển khai cùng một quy trình trong Nhóm top-app. Đang dùng Nhóm SchedTune giúp giảm mức hao tổn của người lái xe, đặ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