7.11. NPUs¶
H7 และ RT1062 ทำการอนุมานบน Cortex-M CPU ผ่าน TFLM และ CMSIS-NN AE3 และ N6 เพิ่ม NPU เฉพาะทางบนชิปเดียวกัน -- ไปป์ไลน์เทนเซอร์ในซิลิกอนแบบตายตัวที่รันตัวดำเนินการหลักโดยไม่ต้องใช้ CPU NPU ทั้งสองในไลน์อัพของ OpenMV มาจากผู้จำหน่ายที่แตกต่างกันและมีเครื่องมือสร้างที่แตกต่างกัน แต่กล้องเปิดเผยทั้งสองผ่าน API ml.Model เดียวกัน สิ่งที่แตกต่างกันคือไฟล์บนดิสก์และรันไทม์ที่ประมวลผลมัน
7.11.1. AE3 -- Arm Ethos-U55¶
AE3 มี Arm Ethos-U55 NPU บนชิปเดียวกับ Cortex-M55 application core Vela คือคอมไพเลอร์ออฟไลน์ที่เตรียมโมเดลสำหรับมัน: Vela รับไฟล์ .tflite มาตรฐานเป็นอินพุตและส่งออก .tflite ที่ subgraph ที่รองรับ NPU ถูกพับรวมเข้าเป็น operator Ethos-U แบบกำหนดเองซึ่งบรรจุคำสั่งไบต์ที่ NPU รัน ในเวลาการอนุมาน TFLM ประมวลผลไฟล์ตามปกติ operator Ethos-U ส่งคำสั่งไบต์ผ่าน Ethos-U driver และ operator ที่ Vela ไม่ได้พับรวมจะ fallback ไปใช้ CMSIS-NN บน M55
7.11.2. N6 -- ST Neural-ART¶
N6 มี Neural-ART NPU ของ ST และรัน STAI -- รันไทม์ของ ST สำหรับมัน -- แทน TFLM STEdgeAI คือคอมไพเลอร์ออฟไลน์: รับโมเดลมาและส่งออก network blob แบบ relocatable ที่จัดวางสำหรับฮาร์ดแวร์ Neural-ART STAI โหลด blob จาก ROMFS และประมวลผลโดยตรงบน NPU การรองรับ operator คือสิ่งที่ STEdgeAI รองรับสำหรับชิ้นส่วนนั้น
7.11.3. สคริปต์เดียวกัน กล้องต่างกัน¶
NPU ทั้งสองเปิดเผยเทนเซอร์อินพุตและเอาต์พุตเดียวกันพร้อมพารามิเตอร์การควอนไทซ์เดียวกันกับโมเดลที่รันบน CPU สคริปต์ที่เขียนสำหรับกล้องหนึ่งสามารถรันบนอีกกล้องได้โดยโหลดไฟล์โมเดลที่เตรียมสำหรับ NPU ของกล้องนั้น ค่าขีดแบ่งการตรวจจับ การจัดการ ROI และการเชื่อมต่อ post-processor -- การตัดสินใจระดับสคริปต์ -- ไม่เปลี่ยนแปลง