3 คะแนน โดย GN⁺ 2024-06-26 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

การทำคอมพิวเตอร์วิทัศน์แบบเร่งความเร็วด้วย SIMD บนไมโครคอนโทรลเลอร์ราคา $2

ประสิทธิภาพของ ESP32-S3

  • ESP32-S3 เป็นไมโครคอนโทรลเลอร์ราคาประหยัดที่มี CPU แบบดูอัลคอร์ 240MHz พร้อมอุปกรณ์ต่อพ่วงหลากหลาย รวมถึงวิทยุ WiFi และ Bluetooth Low Energy
  • ชิปนี้รองรับคำสั่ง SIMD แบบ 128 บิต ซึ่งสามารถนำมาใช้เพื่อเพิ่มประสิทธิภาพได้อย่างมาก

การทำ FAST corner detector แบบเร่งความเร็วด้วย SIMD

  • มีการเร่งความเร็ว FAST corner detector ด้วยคำสั่ง SIMD จนสามารถประมวลผลเฟรม QVGA (320x240) ได้ในเวลาประมาณ 6ms
  • ทำให้ได้ประสิทธิภาพราวสองเท่าเมื่อเทียบกับ implementation อ้างอิง

ภาษาแอสเซมบลีและตัวจัดสรรรีจิสเตอร์

  • ผู้เขียนได้เรียนรู้ภาษาแอสเซมบลีบน ESP32-S3 และเขียนตัวจัดสรรรีจิสเตอร์พื้นฐาน (basm) เพื่อก้าวข้ามข้อจำกัดของชิป
  • มีการสร้างฟังก์ชันที่ใช้คำสั่ง SIMD เพื่อประมวลผลพิกเซล 16 จุดพร้อมกัน

การประมวลผลข้อมูลพิกเซล

  • ในการประมวลผลข้อมูลพิกเซล มีการเปรียบเทียบความต่างระหว่างพิกเซลศูนย์กลางกับพิกเซลรอบข้าง
  • มีการคิดวิธีแปลงข้อมูลพิกเซลอย่างเหมาะสมเพื่อก้าวข้ามข้อจำกัดของ ESP32-S3

การปรับปรุงประสิทธิภาพ

  • FAST corner detector ที่เร่งความเร็วด้วย SIMD ช่วยเพิ่มความเร็วในการประมวลผลได้ประมาณ 220%
  • ทำให้ ESP32-S3 สามารถประมวลผลสตรีม VGA 30fps แบบเรียลไทม์ได้

ความเห็นของ GN⁺

  • ความอเนกประสงค์ของ ESP32-S3: ESP32-S3 ให้ประสิทธิภาพที่ทรงพลังเมื่อเทียบกับราคาที่ต่ำ จึงเหมาะกับโปรเจ็กต์ IoT และระบบฝังตัวที่หลากหลาย
  • ความสำคัญของคำสั่ง SIMD: การใช้คำสั่ง SIMD ช่วยให้ฮาร์ดแวร์สเปกไม่สูงมากก็ยังทำงานได้ประสิทธิภาพสูง
  • การเรียนรู้ภาษาแอสเซมบลี: การเรียนรู้ภาษาแอสเซมบลีช่วยให้เข้าใจการทำงานเชิงลึกของฮาร์ดแวร์และสามารถปรับแต่งประสิทธิภาพได้
  • การก้าวข้ามข้อจำกัด: กระบวนการแก้ข้อจำกัดของฮาร์ดแวร์ช่วยพัฒนาทักษะการแก้ปัญหาอย่างสร้างสรรค์
  • คอมพิวเตอร์วิทัศน์แบบเรียลไทม์: แสดงให้เห็นว่าไมโครคอนโทรลเลอร์ต้นทุนต่ำก็สามารถทำงานคอมพิวเตอร์วิทัศน์แบบเรียลไทม์ได้

1 ความคิดเห็น

 
GN⁺ 2024-06-26
ความคิดเห็นจาก Hacker News
  • เป็นเรื่องเจ๋งที่ซิลิคอนมีราคาถูกกว่ากาแฟทั่วไป บางทีอาจไม่ใช่ว่าชิปราคาถูกเกินไป แต่กาแฟแพงเกินไปก็ได้
  • บอร์ด ESP32-CAM รองรับโปรเจกต์คอมพิวเตอร์วิทัศน์ที่ใช้งานได้จริง
  • ถ้าสนใจ แนะนำให้ลองดูผลิตภัณฑ์ของ Edge Impulse
  • Edge Impulse ปรับแต่งงานด้านดีปเลิร์นนิง คอมพิวเตอร์วิทัศน์ และ DSP ให้มีประสิทธิภาพยิ่งขึ้น
  • อัปโหลดโมเดล TensorFlow, PyTorch, JAX แล้วจะได้รับไลบรารี C++ ที่ผ่านการปรับแต่งแล้ว
  • Edge Impulse มีสตูดิโอฝึกโมเดลที่ออกแบบมาสำหรับฮาร์ดแวร์ฝังตัวหลากหลายประเภท
  • บทความสั้น ๆ เกี่ยวกับ SIMD บน ESP32-S3 ก็น่าอ่านเช่นกัน
  • สงสัยว่าการใช้ ESP32 หลายตัวแบบขนานกันจะทำให้รองรับความละเอียดและอัตราเฟรมที่สูงขึ้นได้หรือไม่
  • ได้เร่งความเร็วตัวตรวจจับคุณลักษณะ FAST ด้วย SIMD จนประสิทธิภาพเพิ่มขึ้น 220%
  • ARMv7 และ ARMv8 มีส่วนขยายชุดคำสั่ง SIMD แบบเลือกใช้ได้
  • Orrin Nano ให้ประสิทธิภาพ 40 TOPS ซึ่งเพียงพอสำหรับ Copilot+
  • มีการวิจัยวิธีแปลงแสงอินฟราเรดให้เป็นแสงที่มองเห็นได้
  • มีไลบรารี PicoVGA สำหรับใช้งานจอแสดงผล VGA/TV บน Raspberry Pi Pico
  • สงสัยว่าสามารถใช้ Rust กับคอนโทรลเลอร์ ESP32 ได้หรือไม่
  • สงสัยว่า ESP32 มีสล็อต VLIW หรือไม่ และสามารถจัดแพ็กคำสั่งแบบแน่นขึ้นได้หรือไม่
  • SIMD เหนือกว่า SMT สำหรับงานประมวลผลประเภทนี้
  • ชอบของที่แพงกว่าและดีกว่า มี Intel UpSquared อยู่