อนาคตของ WebGPU

François Beaufort
François Beaufort
Corentin Wallez
Corentin Wallez

เผยแพร่เมื่อวันที่ 21 พฤศจิกายน 2024

ข้อกำหนด WebGPU พัฒนาอยู่เสมอ โดยมีบริษัทรายใหญ่อย่าง Google, Mozilla, Apple, Intel และ Microsoft ประชุมกันทุกสัปดาห์เพื่อพูดคุยเกี่ยวกับการพัฒนา การประชุมคณะทำงาน GPU for the Web ครั้งล่าสุดได้แสดงให้เห็นถึงวัตถุประสงค์หลักและฟีเจอร์ที่วางแผนไว้สำหรับ WebGPU รุ่นถัดไป บล็อกโพสต์นี้จะกล่าวถึงประเด็นสำคัญบางส่วนที่ได้จากการเข้าร่วมการประชุม

สถานะการได้รับคำแนะนำผู้สมัคร

ประเด็นหลักของการประชุมคือการพูดคุยเกี่ยวกับความคืบหน้าของเหตุการณ์สำคัญ 0 และเพื่อสรุปปัญหาที่ต้องแก้ไขก่อนที่จะได้รับสถานะการแนะนำสำหรับ W3C นี่เป็นขั้นตอนถัดไปในกระบวนการมาตรฐาน และมีการค้ำประกันความเสถียรและการป้องกันทรัพย์สินทางปัญญาที่เข้มงวดมากขึ้น

ผู้เข้าร่วมการประชุมเห็นพ้องกันโดยทั่วไปว่าข้อจำกัดเหล่านี้ไม่ใช่ปัญหาที่ขัดขวาง และปัญหาเหล่านี้สามารถแก้ไขได้อย่างรวดเร็ว ซึ่งจะช่วยปูทางให้ W3C แนะนำ WebGPU ในฐานะตัวเลือก

การจัดลำดับความสำคัญของฟีเจอร์ใหม่

ผู้เข้าร่วมการประชุมยังให้ความสำคัญกับฟีเจอร์ใหม่ๆ ด้วย โดยเริ่มจากรายการคําขอฟีเจอร์ที่รวบรวมจากความคิดเห็นของนักพัฒนาซอฟต์แวร์ ผู้ติดตั้งใช้งาน และผู้มีส่วนเกี่ยวข้อง

ไวท์บอร์ดที่มีรายการคําที่เขียนด้วยมือซึ่งเกี่ยวข้องกับ Computer Graphics API ซึ่งรวมถึง "Bindless" "Subgroups" "MDI" "Push Constants" "UMA" "Subgroup Matrix" และอื่นๆ

หลังจากพูดคุยกัน เราได้ระบุฟีเจอร์ WebGPU หลักสำหรับ AI ดังต่อไปนี้

  • กลุ่มย่อยและเมทริกซ์กลุ่มย่อย: ช่วยให้แอปพลิเคชันใช้การสื่อสารภายในที่รวดเร็วระหว่างเธรด GPU และใช้ประโยชน์จากฮาร์ดแวร์การคูณเมทริกซ์ขนาดคงที่ข้างแกนเชดเดอร์ ดูข้อเสนอเกี่ยวกับกลุ่มย่อย

  • บัฟเฟอร์เท็กเซล: มอบวิธีที่มีประสิทธิภาพมากขึ้นในการจัดเก็บและเข้าถึงประเภทข้อมูลขนาดเล็ก เช่น ค่า 16 บิตหรือ 8 บิต ในลักษณะที่พกพาได้ ซึ่งสำคัญต่ออัลกอริทึมการประมวลผลรูปภาพ ML บางรายการ ดูสไลด์บัฟเฟอร์ Texel

  • การแมปบัฟเฟอร์ UMA: ปรับปรุงประสิทธิภาพการอัปโหลดข้อมูลโดยการลดหรือกำจัดค่าใช้จ่ายเพิ่มเติมในการคัดลอกและการซิงค์ ดูปัญหาเกี่ยวกับข้อกำหนด 2388

นอกจากนี้ เรายังพิจารณาและจัดลําดับความสําคัญให้กับฟีเจอร์ WebGPU ต่อไปนี้เพื่อปลดล็อกอัลกอริทึมการแสดงผลประเภทใหม่ๆ ด้วย

  • การเชื่อมโยงแบบไม่มี: ข้อเสนอฟีเจอร์ที่ทุกคนรอคอยนี้เป็นข้อกําหนดเบื้องต้นสําหรับอัลกอริทึมการแสดงผลล้ำสมัยส่วนใหญ่ เนื่องจากต้องใช้ข้อมูลทั้งฉาก ฟีเจอร์นี้ช่วยให้เชดเดอร์ใช้ทรัพยากรได้ไม่จำกัด รวมถึงพื้นผิว เมื่อเทียบกับขีดจำกัดที่ค่อนข้างเข้มงวดในปัจจุบัน

  • การวาดหลายครั้งโดยอ้อม: ช่วยให้การคำนวณก่อนหน้านี้ใน GPU สร้างการวาดหลายครั้งแทนการวาดเพียงครั้งเดียวด้วย drawIndirect ก่อนหน้านี้ ซึ่งเป็นความสามารถที่สําคัญสําหรับการแสดงผลที่ขับเคลื่อนโดย GPU เช่น การตัดออบเจ็กต์ของ GPU ดูคำขอพุล 2315

  • อะตอมิกของ 64 บิต: ไม่ว่าจะอยู่ในบัฟเฟอร์หรือเท็กเจอร์ จำเป็นต้องใช้สำหรับ "การแรสเตอร์ด้วยซอฟต์แวร์" ใน GPU โดยรวมการทดสอบเชิงลึกและการเขียนเพย์โหลด 32 บิตไว้ในการดำเนินการ atomicMax เดียว โปรดดูปัญหา 4329

เราได้พูดคุยเกี่ยวกับฟีเจอร์ WebGPU ต่อไปนี้เพื่อเพิ่มความสามารถและการผสานรวมกับแพลตฟอร์มเว็บที่กว้างขึ้น

  • โหมดความเข้ากันได้: โหมดนี้มีไว้เพื่อให้ WebGPU ทำงานได้ในอุปกรณ์ที่หลากหลายมากขึ้น รวมถึงอุปกรณ์ที่รองรับเฉพาะ OpenGL ES 3.1 ดูข้อเสนอโหมดความเข้ากันได้

  • WebXR: อนุญาตให้โมดูลเลเยอร์ WebXR ที่มีอยู่โต้ตอบกับ WebGPU โดยการระบุ Swapchain ของ WebGPU สำหรับเลเยอร์แต่ละประเภท ดูสไลด์การผสานรวม WebGPU/WebXR

  • Canvas2D: สร้างความสามารถในการทำงานร่วมกันที่ดีขึ้นระหว่าง Canvas 2D กับ WebGPU ซึ่งจะแก้ไขปัญหาทั้งด้านประสิทธิภาพและความสะดวกสบายในการใช้งาน ข้อเสนอการโอน WebGPU นี้จะช่วยให้เข้าถึงการวาดข้อความและเส้นทางใน WebGPU ได้ รวมถึงใช้การแสดงผล WebGPU กับ Canvas 2D ได้

นอกจากนี้ การประชุมยังมีการนำเสนอและการพูดคุยเกี่ยวกับความพยายามในการปรับปรุงเครื่องมือและไลบรารี WGSL ด้วย โครงการริเริ่มที่น่าสนใจอย่างหนึ่งคือการพัฒนา WESL (WGSL Extended Shading Language) ซึ่งมีจุดประสงค์เพื่อจัดหาชุดส่วนขยาย WGSL ที่ขับเคลื่อนโดยชุมชน

ดูข้อมูลเพิ่มเติมได้ในบันทึกการประชุมดิบ

ความคิดเห็น

การประชุมนี้เน้นย้ำถึงความสำคัญของการทำงานร่วมกันระหว่างกลุ่มทำงาน WebGPU, นักพัฒนาซอฟต์แวร์ และชุมชนกราฟิกในวงกว้างในการกำหนดอนาคตของ WebGPU คณะทำงานกำลังมองหาความคิดเห็นเกี่ยวกับฟีเจอร์ที่เสนอและมุ่งมั่นที่จะทำงานร่วมกับนักพัฒนาซอฟต์แวร์เพื่อให้ WebGPU ตอบสนองความต้องการของนักพัฒนาซอฟต์แวร์

การพัฒนา WebGPU ขั้นถัดไปจะถือเป็นก้าวสำคัญในการปลดล็อกความเป็นไปได้ใหม่ๆ สำหรับกราฟิกบนเว็บ และช่วยให้นักพัฒนาซอฟต์แวร์สร้างประสบการณ์การใช้งานเว็บที่สมจริงและดึงดูดใจยิ่งขึ้นสำหรับ AI