TinyGPU v2.0 ผ่านการทดสอบจริงแล้ว! GPU ที่เล็กที่สุดในโลก รันกราฟิก 3D ได้จริง เตรียมอัปเกรด Pixel Shader ในเวอร์ชัน 3.0
วงการฮาร์ดแวร์โอเพนซอร์สมีอีกหนึ่งความสำเร็จที่น่าสนใจ เมื่อ Pongsagon Vichit ผู้พัฒนาโครงการ TinyGPU ประกาศผ่านแพลตฟอร์ม X เมื่อวันที่ 31 กรกฎาคม ว่า TinyGPU v2.0 สามารถทำงานบนชิป ASIC ได้สำเร็จแล้ว หลังผ่านการทดสอบกับฮาร์ดแวร์จริง
"ASIC TinyGPU v2.0 is running successfully!!!"
TinyGPU v2.0 เป็น GPU ขนาดจิ๋วที่ถูกพัฒนาภายใต้โครงการ Tiny Tapeout SKY25b โดยมีจำนวนทรานซิสเตอร์เพียงประมาณ 240,000 ตัว แต่สามารถเรนเดอร์กราฟิก 3 มิติได้ครบทั้งขั้นตอน ตั้งแต่การแปลงตำแหน่งวัตถุ (Transformation) การคำนวณแสง (Lighting) ไปจนถึงการ Rasterization
GPU ขนาดจิ๋ว แต่รองรับ Pipeline 3D ครบ
แม้จะมีขนาดเล็กมากเมื่อเทียบกับ GPU เชิงพาณิชย์ แต่ TinyGPU v2.0 มีความสามารถที่น่าประทับใจ ได้แก่
- รองรับการประมวลผลกราฟิกแบบ 3 มิติ
- รองรับการแปลงตำแหน่งวัตถุ (Transformations)
- รองรับระบบแสง (Lighting)
- Rasterization
- รองรับ Planar Shading
- Backface Culling
- Affine Texture Mapping
- รองรับแสงแบบ Directional Light ได้ 1 แหล่ง
- แสดงผลโมเดลได้สูงสุดประมาณ 1,000 สามเหลี่ยม (Triangles) ต่อฉาก
หน่วยความจำของชิปประกอบด้วย
- 4-bit Double Buffer
- 8-bit Depth Buffer
ซึ่งจัดเก็บอยู่ใน QSPI RAM (Quad SPI RAM)
เดโมแรก ใช้จอยควบคุมโมเดล 3 มิติ
ผู้พัฒนาได้เผยแพร่การสาธิตการทำงานของ TinyGPU v2.0 จำนวน 2 ตัวอย่าง ได้แก่
เดโมแรก
- ควบคุมโมเดล Low Polygon แบบเรียลไทม์ด้วย Gamepad
เดโมที่สอง
- แสดงโมเดลโลกแบบสีเต็มรูปแบบ
- ซูมเข้า-ออก
- หมุนโมเดลได้แบบเรียลไทม์
ถือเป็นการพิสูจน์ว่าชิป ASIC ขนาดเล็กสามารถทำงานด้านกราฟิก 3 มิติได้จริง ไม่ใช่เพียงการจำลองบนซอฟต์แวร์
ทำงานได้ 7.5–15 FPS
TinyGPU v2.0 ถูกทดสอบร่วมกับบอร์ด Basys3 FPGA ซึ่งทำหน้าที่เป็นโฮสต์
ผลการทดสอบพบว่า
- เฟรมเรตอยู่ที่ประมาณ 7.5–15 FPS
ก่อนหน้านี้ผู้พัฒนาเคยระบุว่า เวอร์ชัน ASIC ของ Tiny Tapeout จะไม่สามารถทำงานได้เร็วกว่าระบบ FPGA ที่ใช้ทดสอบ ดังนั้นจึงไม่มีการเพิ่มความลื่นไหลของภาพเมื่อเปลี่ยนจาก FPGA มาเป็น ASIC จริง
รองรับ SIMD และ Shader แบบกำหนดเอง
TinyGPU v2.0 ยังมาพร้อมคุณสมบัติด้านการประมวลผลกราฟิกที่น่าสนใจ ได้แก่
- รองรับ SIMD (Single Instruction Multiple Data) ประมวลผลพร้อมกัน 4 พิกเซล
- Shader แต่ละชุดมีคำสั่งได้สูงสุด 31 คำสั่ง
- ชุดคำสั่งประกอบด้วย 26 Operation
- รองรับ Branching ผ่านระบบ Masked Execution
- มีรีจิสเตอร์ชั่วคราว (Temporary Registers) ขนาด 8 บิต จำนวน 4 ตัว
แม้จะเป็น GPU ขนาดเล็กมาก แต่แนวคิดการออกแบบยังคงอ้างอิงโครงสร้างของ GPU ยุคใหม่อย่างชัดเจน
TinyGPU v3.0 ถูกส่งผลิตแล้ว
ขณะที่ TinyGPU v2.0 เพิ่งผ่านการทดสอบ ผู้พัฒนาได้ส่ง TinyGPU v3.0 เข้าสู่กระบวนการผลิตในโครงการ Tiny Tapeout รอบถัดไปเรียบร้อยแล้ว
ความเปลี่ยนแปลงสำคัญคือ
- เพิ่ม Programmable Pixel Shader
โดยได้รับแรงบันดาลใจจาก
DirectX 8 Pixel Shader 1.1
ซึ่งถือเป็นก้าวสำคัญ เพราะจะทำให้ GPU สามารถประมวลผลเอฟเฟกต์ของแต่ละพิกเซลได้ยืดหยุ่นกว่าระบบ Fixed Function Pipeline แบบเดิม
โครงการเล็ก แต่สะท้อนการออกแบบ GPU ได้ครบวงจร
แม้ TinyGPU จะไม่ใช่ GPU สำหรับเล่นเกมหรือใช้งานเชิงพาณิชย์ แต่โครงการนี้ถือเป็นตัวอย่างที่น่าสนใจของการออกแบบสถาปัตยกรรมกราฟิกบนชิป ASIC ขนาดเล็ก โดยใช้ทรานซิสเตอร์เพียง ประมาณ 240,000 ตัว ก็สามารถสร้าง Pipeline สำหรับเรนเดอร์กราฟิก 3 มิติได้ครบถ้วน
สำหรับนักศึกษา วิศวกรฮาร์ดแวร์ และผู้สนใจการออกแบบ GPU โครงการ TinyGPU ถือเป็นแพลตฟอร์มโอเพนซอร์สที่ช่วยให้เข้าใจการทำงานของกราฟิกโปรเซสเซอร์ในระดับฮาร์ดแวร์ได้อย่างชัดเจน พร้อมปูทางสู่การพัฒนา GPU รุ่นใหม่ที่มีความสามารถเพิ่มขึ้นในอนาคต
ที่มา: IT Home



