7.11. NPUs¶
H7 và RT1062 chạy suy luận trên CPU Cortex-M thông qua TFLM và CMSIS-NN. AE3 và N6 bổ sung thêm NPU chuyên dụng trên cùng die -- một đường ống tensor trong silicon cố định chạy các toán tử nặng mà không chiếm dụng CPU. Hai NPU trong dòng sản phẩm của OpenMV đến từ các nhà cung cấp khác nhau và chuỗi công cụ của chúng khác nhau, nhưng camera hiển thị cả hai qua cùng API ml.Model. Điểm khác biệt là tệp trên đĩa và runtime duyệt qua nó.
7.11.1. AE3 -- Arm Ethos-U55¶
AE3 mang NPU Arm Ethos-U55 trên cùng die với lõi ứng dụng Cortex-M55. Vela là trình biên dịch ngoại tuyến chuẩn bị mô hình cho nó: Vela nhận đầu vào là .tflite tiêu chuẩn và xuất ra .tflite có các subgraph đủ điều kiện cho NPU được gập vào một toán tử Ethos-U tùy chỉnh mang các lệnh byte mà NPU thực thi. Tại thời điểm suy luận, TFLM duyệt qua tệp bình thường; toán tử Ethos-U điều phối các lệnh byte của nó qua driver Ethos-U, và bất kỳ toán tử nào Vela không gập được sẽ chuyển sang CMSIS-NN trên M55.
7.11.2. N6 -- ST Neural-ART¶
N6 mang NPU Neural-ART của ST và chạy STAI -- runtime của ST cho nó -- thay thế cho TFLM. STEdgeAI là trình biên dịch ngoại tuyến: nó nhận mô hình đầu vào và xuất ra một blob mạng có thể tái định vị được bố trí cho phần cứng Neural-ART. STAI tải blob từ ROMFS và duyệt qua nó trực tiếp trên NPU. Phạm vi toán tử là bất cứ thứ gì STEdgeAI hỗ trợ cho linh kiện đó.
7.11.3. Cùng tập lệnh, camera khác nhau¶
Cả hai NPU đều hiển thị cùng tensor đầu vào và đầu ra với cùng tham số lượng tử hóa như mô hình chạy trên CPU. Một tập lệnh viết cho một camera sẽ chạy trên camera khác bằng cách tải tệp mô hình được chuẩn bị cho NPU của camera đó. Các ngưỡng phát hiện, xử lý ROI, và kết nối bộ xử lý hậu kỳ -- các quyết định ở cấp tập lệnh -- không thay đổi.