7.11. NPU

H7와 RT1062는 TFLMCMSIS-NN을 통해 Cortex-M CPU에서 추론을 실행합니다. AE3와 N6은 같은 다이에 전용 NPU를 추가합니다. 이는 CPU를 점유하지 않고 무거운 연산자를 실행하는 고정 실리콘 내의 텐서 파이프라인입니다. OpenMV 제품군의 두 NPU는 서로 다른 공급업체에서 나왔고 툴체인도 다르지만, 카메라는 둘 다 동일한 ml.Model API를 통해 노출합니다. 다른 점은 디스크에 저장되는 파일과 그것을 순회하는 런타임입니다.

7.11.1. AE3 – Arm Ethos-U55

AE3은 Cortex-M55 애플리케이션 코어와 같은 다이에 Arm Ethos-U55 NPU를 탑재합니다. Vela는 이를 위해 모델을 준비하는 오프라인 컴파일러입니다. Vela는 표준 .tflite를 입력으로 받아, NPU에 적합한 서브그래프가 NPU가 실행하는 바이트 명령을 담은 사용자 정의 Ethos-U 연산자로 접혀 들어간 .tflite를 출력합니다. 추론 시점에 TFLM은 파일을 정상적으로 순회합니다. Ethos-U 연산자는 자신의 바이트 명령을 Ethos-U 드라이버를 통해 디스패치하고, Vela가 접지 않은 연산자는 M55의 CMSIS-NN으로 폴백합니다.

7.11.2. N6 – ST Neural-ART

N6은 ST의 Neural-ART NPU를 탑재하며 TFLM 대신 STAI(이를 위한 ST의 런타임)를 실행합니다. STEdgeAI는 오프라인 컴파일러입니다. 모델을 입력으로 받아 Neural-ART 하드웨어에 맞게 배치된 재배치 가능한 네트워크 블롭을 출력합니다. STAI는 ROMFS에서 블롭을 로드하여 NPU에서 직접 순회합니다. 연산자 지원 범위는 STEdgeAI가 해당 부품에 대해 지원하는 것이라면 무엇이든 해당됩니다.

7.11.3. 동일한 스크립트, 다른 카메라

두 NPU 모두 CPU에서 실행되는 모델과 동일한 양자화 매개변수를 가진 동일한 입력 및 출력 텐서를 노출합니다. 한 카메라를 대상으로 작성된 스크립트는 해당 카메라의 NPU용으로 준비된 모델 파일을 로드함으로써 다른 카메라에서도 실행됩니다. 검출 임계값, ROI 처리, 후처리기 연결 등 스크립트 수준의 결정 사항은 바뀌지 않습니다.