10 คะแนน โดย GN⁺ 2025-03-24 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • GPU มีพลังมากกว่า CPU 10~100 เท่า แต่จัดการงานแบบไดนามิกได้ยาก และ ขาดเครื่องมือสำหรับการเขียนโปรแกรมแบบขนาน ทำให้ ยังดึงประสิทธิภาพออกมาใช้กับงานทั่วไปได้ไม่เต็มที่
  • ในอดีตเคยมีการออกแบบคอมพิวเตอร์แบบขนานอย่าง Connection Machine, Cell, Larrabee แต่ล้มเหลวเพราะความซับซ้อนของโมเดลการเขียนโปรแกรม เป็นต้น
  • GPU สมัยใหม่ปรับแต่งประสิทธิภาพได้ยาก เพราะปัญหาการจัดการหน่วยความจำและโมเดลการทำงานที่ซับซ้อน จึงต้องการโครงสร้างส่งข้อมูลที่มีประสิทธิภาพแบบอิงคิว
  • สถาปัตยกรรมใหม่อย่าง ตัวเร่ง AI และ ชุดคอร์แบบขนาน อาจมีศักยภาพในการก้าวข้ามข้อจำกัดของ GPU
  • การพัฒนาคอมพิวเตอร์แบบขนานยังไม่เสร็จสมบูรณ์ และยังต้องการทั้งโมเดลการทำงานที่เรียบง่ายมีประสิทธิภาพและเครื่องมือเขียนโปรแกรมที่ดีขึ้น

พลังและข้อจำกัดของ GPU

  • GPU มีพลังมากกว่า CPU ราว 10~100 เท่า (ขึ้นอยู่กับประเภทงาน)
  • ประสิทธิภาพนี้ถูกใช้ได้ดีในงานเรนเดอร์กราฟิกแบบเรียลไทม์และแมชชีนเลิร์นนิง
  • แต่ประสิทธิภาพของ GPU ยังไม่ถูกดึงมาใช้ได้เต็มที่กับ งานทั่วไป

สาเหตุของข้อจำกัดของ GPU

  • โมเดลการทำงานที่อ่อนแอ
    • GPU เก่งกับข้อมูลขนาดใหญ่ที่คาดเดาได้ (เช่น การคูณเมทริกซ์หนาแน่น) แต่ประสิทธิภาพตกกับ งานแบบไดนามิก
  • ภาษาและเครื่องมือที่ไม่เพียงพอ
    • การเขียนโปรแกรมคอมพิวเตอร์แบบขนานนั้นยากมากตั้งแต่ต้น

ความซับซ้อนที่เพิ่มขึ้น

  • GPU รุ่นใหม่มี ความซับซ้อนเพิ่มขึ้นอย่างรวดเร็ว
  • มีการเพิ่มฟีเจอร์ใหม่อย่าง mesh shaders, work graphs แต่บางงานพื้นฐานก็ยังไม่รองรับ

ปัญหาประสิทธิภาพหน่วยความจำของ GPU ที่ซับซ้อน

  • ผู้เขียนกำลังพัฒนาเรนเดอเรอร์กราฟิกเวกเตอร์ 2D ระดับสูงชื่อ Vello
    • CPU อัปโหลดคำอธิบายฉาก (ในรูปแบบ SVG) → compute shader ประมวลผลแล้วสร้างภาพ
  • ปัญหา: ความยากในการจัดการหน่วยความจำ
    • คาดเดาขนาดบัฟเฟอร์สำหรับเก็บผลลัพธ์ระหว่างทางได้ยาก
    • หากบัฟเฟอร์ล้น การอ่านกลับจาก GPU ไปยัง CPU จะทำให้ประสิทธิภาพลดลง

ข้อเสนอแนวทางแก้ไข

  • ปรับปรุงให้ส่งต่อผลลัพธ์ผ่าน คิว(queue) ภายใน GPU

การออกแบบคอมพิวเตอร์แบบขนานในอดีต

  • Connection Machine (1985)

    • เป็นคอมพิวเตอร์แบบขนานที่มี โปรเซสเซอร์ 64k ตัว เชื่อมกันด้วยเครือข่ายไฮเปอร์คิวบ์
    • โปรเซสเซอร์แต่ละตัวมีสมรรถนะต่ำ แต่รองรับงานขนานขนาดใหญ่ได้
    • มีส่วนช่วยอย่างมากต่อการวิจัยอัลกอริทึมแบบขนาน
  • Cell (2006, PS3)

    • เป็นคอมพิวเตอร์แบบขนานที่รวมอยู่ใน PS3 (จัดส่งประมาณ 87.4 ล้านเครื่อง)
    • คอร์แบบขนาน 8 คอร์ สามารถคำนวณได้อย่างอิสระ
    • สาเหตุที่ล้มเหลวคือความซับซ้อนของโมเดลการเขียนโปรแกรม
  • Larrabee (2008)

    • พัฒนาในฐานะ คอมพิวเตอร์แบบขนานบนพื้นฐาน x86
    • เหตุผลที่ล้มเหลว: การใช้พลังงาน และ การรองรับซอฟต์แวร์ที่ไม่เพียงพอ
    • ต่อมาสืบทอดแนวคิดไปสู่ Xeon Phi และคำสั่ง AVX-512

ภาระงานที่เปลี่ยนไป

  • แม้แต่ในเกม สัดส่วนของ งานคำนวณ ก็เพิ่มขึ้น
    • ในกรณีของ Starfield เวลาทำงานรวมราว 50% เป็นงานคำนวณ
    • เรนเดอเรอร์ Nanite ก็จัดการการแรสเตอร์ไรซ์สามเหลี่ยมขนาดเล็กด้วยการคำนวณเช่นกัน

ทิศทางการพัฒนาในอนาคต

  • 1. ขยายชุดคอร์ (การกลับมาของ Cell)

    • CPU ระดับสูงสมัยใหม่มีทรานซิสเตอร์มากกว่า 1 แสนล้านตัว
    • จึงสามารถสร้างชิปที่มีคอร์ RISC แบบเรียบง่ายและใช้พลังงานต่ำได้หลายร้อยถึงหลายพันคอร์
    • ตัวเร่ง AI ก็ใช้สถาปัตยกรรมคล้ายกันอยู่แล้ว
  • 2. รันคำสั่ง Vulkan บน GPU

    • รองรับให้ GPU รันคำสั่ง Vulkan ได้โดยตรง
    • ปัจจุบันมีการใช้งานแบบจำกัดใน Vulkan extension บางตัว
  • 3. Work Graph

    • จัดโปรแกรมเป็นโหนด (เคอร์เนล) และเอดจ์ (คิว)
    • แม้จะรันแบบขนานได้ แต่ยังมีข้อจำกัดดังนี้
      • ทำงาน join ได้ยาก
      • ไม่รับประกันลำดับการจัดเรียงขององค์ประกอบ
      • ไม่รองรับองค์ประกอบขนาดแปรผัน
  • 4. วิวัฒนาการสู่การหลอมรวมกับ CPU

    • การออกแบบ CPU สมรรถนะสูงอาจพัฒนาไปในทิศทางที่เหมาะกับงานขนานมากขึ้น
    • กำลังปรับปรุงทั้งงานคำนวณแบบขนานและประสิทธิภาพ SIMD (single instruction multiple data)
  • 5. ฮาร์ดแวร์อาจพร้อมอยู่แล้ว

    • GPU บางรุ่นมี command processor ที่รันโค้ดผู้ใช้ได้
    • หาก command processor ถูกเปิดให้ใช้งานอย่างเต็มรูปแบบ ก็อาจมีโอกาสเพิ่มประสิทธิภาพได้

ปัญหาความซับซ้อน

  • สถาปัตยกรรม GPU ซับซ้อนเกินไป
    • มีทั้งคอมพิวเตอร์แบบขนาน + ฮาร์ดแวร์เฉพาะทาง + โครงสร้างประมวลผลคำสั่งปะปนกัน
    • รวมถึงปัญหาความเข้ากันได้ของ API และไดรเวอร์ที่หลากหลาย
  • ในทางกลับกัน CPU ยังคงเพิ่มประสิทธิภาพต่อเนื่องบนพื้นฐานของชุดคำสั่งที่เรียบง่าย

บทสรุป

  • การพัฒนาคอมพิวเตอร์แบบขนานยังอยู่ในสภาพที่ไม่เสร็จสมบูรณ์
  • เพื่อให้ GPU เหมาะกับงานทั่วไปนอกเหนือจากกราฟิกและงาน AI ยังต้องมีสิ่งต่อไปนี้
    • โมเดลการทำงานที่เรียบง่าย
    • ความง่ายในการเขียนโปรแกรม
    • การใช้พลังงานต่ำ
  • งานอย่างเรนเดอเรอร์ 2D ระดับสูงเช่น Vello จะสามารถใช้สมรรถนะของคอมพิวเตอร์แบบขนานได้อย่างเต็มที่
  • จำเป็นต้องมี สถาปัตยกรรมคอมพิวเตอร์แบบขนานรูปแบบใหม่ เพื่อก้าวข้ามข้อจำกัดด้านประสิทธิภาพของ GPU

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

 
GN⁺ 2025-03-24
ความคิดเห็นจาก Hacker News
  • "เชื่อว่ามีปัจจัยหลักอยู่สองอย่างที่ขัดขวางสิ่งนี้"

    • มีแนวทางในการห่อหุ้มความคิดเห็นให้ดูเป็นวิทยาศาสตร์
    • จากประสบการณ์การทำงานกับโปรเซสเซอร์ Cell ต้องมีการควบคุมรายละเอียดจุกจิกจำนวนมาก
    • ระบบสมัยใหม่ถูกออกแบบโดยคำนึงถึงการปกป้องหน่วยความจำ การแยกส่วน และความเสถียร
    • ถ้าให้เขียนโค้ดบน Amiga ก็น่าจะทำให้เกิดมุมมองชื่นชมแบบใหม่
  • โมเดลการเขียนโปรแกรมในปี 2025 ไม่มีประสิทธิภาพ

    • ต้องคอมไพล์ซอร์ส/ไบต์โค้ดของเชดเดอร์ตอนรันไทม์
    • การจัดการโครงสร้างข้อมูลระหว่าง CPU และ GPU บนระบบ NUMA/ดิสครีตทำได้ยาก
    • ต้องมีการซิงโครไนซ์การเข้าถึงข้อมูลระหว่างงาน CPU-GPU และระหว่างงาน GPU ด้วยกัน
    • จำเป็นต้องรับมือกับ API ที่ชวนสับสนเพราะฮาร์ดแวร์ยังไม่มีมาตรฐานเดียวกัน
    • ต้องรองรับการผสมผสานของคอนฟิกที่หลากหลาย
  • มีประสบการณ์ทำงานที่บริษัทซึ่ง "ใส่ CPU ขนาดเล็กหลายร้อยตัวลงบนชิปตัวเดียว"

    • โมเดลการเขียนโปรแกรมประหลาดเกินไป จึงน่าจะล้มเหลว
    • รุ่นถัดไปน่าจะเป็น GPU ที่มีฟีเจอร์เพิ่มขึ้น ไม่ใช่สถาปัตยกรรมใหม่
  • GPU ทรงพลังกว่า CPU อยู่ 10–100 เท่า

    • งานจำนวนมากไม่ได้ต้องการประสิทธิภาพเพิ่มขนาดนั้น
    • GUI ตอบสนองต่ออินพุตของผู้ใช้ได้ดีมานานกว่า 20 ปีแล้ว
    • ควรทำให้การเขียนโปรแกรม GPU เรียบง่ายขึ้น
  • ความเห็นเกี่ยวกับการสร้างซูเปอร์คอมพิวเตอร์จาก M4 Mac mini

    • มีการทำวิศวกรรมย้อนกลับชุดคำสั่งของ Apple M3 Ultra GPU และ Neural Engine
    • สามารถทำการคำนวณได้มากกว่า 50 ล้านล้านครั้งต่อวินาที
  • ปัญหาของคอมพิวเตอร์แบบขนาน

    • ผู้คนจำนวนมากต้องยอมรับและใช้อุปกรณ์นี้เพื่อจุดประสงค์ด้านการพัฒนา
    • การพอร์ตโค้ดจาก CPU ไปยัง GPU เป็นงานใหญ่
    • AMD และบริษัทอื่น ๆ กำลังสำรวจแนวคิดในการย้าย GPU ให้เข้าใกล้ CPU มากขึ้น
  • ยังไม่ชัดเจนว่าทำไมตัวเรนเดอร์ 2D ถึงต้องใช้ GPU

    • ตัวเรนเดอร์ 3D ต้องการความช่วยเหลือ
    • Vulkan อยู่ในระดับที่ต่ำกว่าตัวเรนเดอร์
    • มีจุดเสียดทานในการออกแบบตัวเรนเดอร์ใน Rust 3D
  • มีการพูดถึง Larabee มาก แต่ไม่มีการพูดถึง Xeon Phis

    • การออกแบบ CPU กำลังแยกไปสู่การปรับเหมาะทั้งประสิทธิภาพคอร์เดี่ยวและประสิทธิภาพด้านพลังงาน
    • ถ้ามี E-core มากขึ้น อัลกอริทึมที่ใช้ประโยชน์จากความขนานได้ก็อาจเป็นฝ่ายชนะ
  • สิ่งที่ต้องแลกเพื่อให้ GPU มี throughput สูง

    • มีระบบหน่วยความจำแบบรวมศูนย์ของ Apple Silicon
    • API สำหรับเขียนโปรแกรม GPU กลับปฏิบัติต่อหน่วยความจำราวกับว่าไม่ได้ถูกรวมไว้ด้วยกัน