Khám phá và chỉ định thiết bị

Trong Android 10, API mạng thần kinh (NNAPI) giới thiệu các chức năng cho phép các ứng dụng và thư viện khung máy học lấy thông tin về các thiết bị có sẵn và chỉ định thiết bị nào sẽ thực thi mô hình trên đó. Việc cung cấp thông tin về các thiết bị có sẵn cho phép ứng dụng có được phiên bản chính xác của trình điều khiển được tìm thấy trên thiết bị để tránh những trường hợp không tương thích đã biết. Bằng cách cung cấp cho ứng dụng khả năng chỉ định thiết bị nào sẽ thực thi các phần khác nhau của mô hình, ứng dụng có thể được tối ưu hóa cho sản phẩm mà chúng được triển khai trên đó.

Cần có hỗ trợ phát hiện và gán thiết bị khi triển khai NN HAL 1.2.

Thực hiện

Để hỗ trợ các tính năng phát hiện và gán thiết bị trong NNAPI, hãy triển khai getTypegetVersionString trong IDevice.hal để cho phép khung lấy loại thiết bị và phiên bản trình điều khiển.

Đối với mỗi thiết bị, hãy chỉ định loại là một trong các danh mục sau như được chỉ định trong DeviceType trong types.hal .

  • OTHER : Một thiết bị không thuộc bất kỳ danh mục nào khác, bao gồm giao diện không đồng nhất, là một giao diện IDevice duy nhất quản lý nhiều thiết bị, có thể thuộc các loại khác nhau. Trình điều khiển có giao diện không đồng nhất cũng phải hiển thị các giao diện IDevice riêng biệt tương ứng với từng thiết bị để cho phép ứng dụng chọn từ các thiết bị đó.
  • CPU : CPU đơn lõi hoặc đa lõi.
  • GPU : GPU có thể chạy các mô hình NNAPI và tăng tốc các API đồ họa như OpenGL ES và Vulkan.
  • ACCELERATOR : Một đơn vị xử lý thần kinh chuyên dụng (NPU).

Triển khai getVersionString trong IDevice.hal để nhận chuỗi phiên bản triển khai thiết bị. Phương thức này phải trả về một chuỗi mà con người có thể đọc được. Định dạng của chuỗi là dành riêng cho nhà cung cấp. Chuỗi phiên bản phải khác nhau đối với mỗi phiên bản trình điều khiển mới.

Tên của giao diện IDevice phải tuân theo định dạng {VENDOR}-{DEVICE_NAME} .