เมื่อปี 2024 เราเคยรายงานว่าไดรเวอร์โอเพนซอร์สสำหรับ NPU ของ RK3588 ที่พัฒนาโดย Tomeu Vizoso สามารถให้ประสิทธิภาพที่น่าพอใจสำหรับงานตรวจจับวัตถุ หลังจากนั้นโครงการได้พัฒนาอย่างต่อเนื่อง และปัจจุบันเป็นที่รู้จักในชื่อ Rocket driver ซึ่งถูกรวมอยู่ในเคอร์เนล mainline Linux แล้ว
แต่ชิป SoC Rockchip RK3576 ยังไม่ได้รับการรองรับจาก Rocket driver ใน mainline Linux แม้ว่าจะใช้ NPU ที่มีสถาปัตยกรรมใกล้เคียงกันก็ตาม ข่าวดีคือ Ga Hing Woo กำลังพัฒนาการรองรับ NPU ของ Rockchip RK3576 บน mainline Linux โดยใช้สแตกของ Rocket driver และได้ทดสอบการอัปเดตดังกล่าวบนบอร์ด Radxa ROCK 4D ที่รัน Linux 7.1-rc5 แล้ว
Ga Hing Woo (หรือที่ใช้ชื่อว่า Jiaxing Hu) ได้ส่งอีเมลถึงเราเพื่ออธิบายถึงความท้าทายบางประการที่พบระหว่างการพัฒนา ดังนี้:
ปัจจุบันการประมวลผล Convolution แบบ INT8 ชั้นเดียว บนสแตกโอเพนซอร์สให้ผลลัพธ์ตรงกับ CPU แบบ Byte-Exact โดยต้องอาศัยการทำ Reverse Engineering รีจิสเตอร์ที่เกี่ยวข้อง เนื่องจากเอกสาร TRM ไม่ได้กล่าวถึงรีจิสเตอร์เหล่านี้เลย
อย่างไรก็ตาม การประมวลผลแบบ Chained Layers ยังเกิดอาการค้าง (Stall) เพราะบิตที่ 16 ของ CNA/CORE/DPU Executer ไม่ถูกเปิดใช้งาน ซึ่งมีสาเหตุมาจากสถานะของ Sub-MMIO Sequencer ที่ไดรเวอร์ไม่สามารถเข้าถึงได้ จึงเป็นการระบุสาเหตุของปัญหา ไม่ใช่การแก้ไขปัญหา
นอกจากนี้ MidG971 ยังพบปัญหาเดียวกันบน RK3568 จากการพัฒนาโดยอิสระ ทำให้ผู้พัฒนาตัดสินใจเผยแพร่ผลการวิเคราะห์แทนการเก็บไว้เพียงคนเดียว
บทความดังกล่าวเป็นงานวิจัยเชิงเทคนิคระดับลึก ในหัวข้อ “Bringing Up the RK3576 NPU on Mainline Linux: A Byte-Exact Single-Task Path and a Falsification-First Negative Result on Chained-Task Compute” โดยข้อมูลและตัวเลขทั้งหมดในเอกสารเป็นผลการวัดจริง (Measured) ไม่ใช่ค่าที่คาดการณ์หรือประมาณการ ดังนั้นเนื้อหาจึงน่าจะเข้าใจได้เฉพาะผู้ที่เคยพัฒนาหรือทำงานกับ NPU ประเภทนี้มาก่อน
ซอร์สโค้ดและคำแนะนำสำหรับการนำ RK3576 NPU มาใช้งานบน mainline kernel สำหรับบอร์ด Radxa ROCK 4D สามารถดูได้บน GitHub นอกจากนี้ผู้พัฒนายังได้จัดแพ็กเกจ RKNPU/RKLLM Runtime สำหรับรันโมเดล LLM และงานด้าน Computer Vision แบบ local บน mainline kernel (Kiln) เพื่อแสดงให้เห็นว่าแพตช์ของเคอร์เนลสามารถทำให้ ไดรเวอร์จากผู้ผลิต (Vendor Driver) ทำงานได้สำเร็จ แม้ว่า Rocket Driver ซึ่งเป็นโอเพนซอร์สจะยังไม่รองรับ RK3576 อย่างสมบูรณ์ก็ตาม ผลการทดสอบบนบอร์ด ROCK 4D มีดังนี้ Llama-3.2-1B ทำงานได้ประมาณ 13 โทเค็น/วินาที (tok/s), Qwen2.5-1.5B ทำงานได้ประมาณ 9 โทเค็น/วินาที (tok/s) และ MobileNet ประมวลผลได้ประมาณ 169 เฟรม/วินาที (fps)
แปลจากบทความ : Reverse-engineering brings RK3576 NPU support to open-source Rocket driver for mainline Linux

บรรณาธิการข่าวและบทความภาษาไทย CNX Software ได้มีความสนใจในด้านเทคโนโลยี โดยเฉพาะ Smart Home และ IoT

