เผยแพร่เมื่อวันที่ 21 พฤศจิกายน 2024
ข้อกำหนด WebGPU พัฒนาอยู่เสมอ โดยมีบริษัทรายใหญ่อย่าง Google, Mozilla, Apple, Intel และ Microsoft ประชุมกันทุกสัปดาห์เพื่อพูดคุยเกี่ยวกับการพัฒนา การประชุมคณะทำงาน GPU for the Web ครั้งล่าสุดได้แสดงให้เห็นถึงวัตถุประสงค์หลักและฟีเจอร์ที่วางแผนไว้สำหรับ WebGPU รุ่นถัดไป บล็อกโพสต์นี้จะกล่าวถึงประเด็นสำคัญบางส่วนที่ได้จากการเข้าร่วมการประชุม
สถานะการได้รับคำแนะนำผู้สมัคร
ประเด็นหลักของการประชุมคือการพูดคุยเกี่ยวกับความคืบหน้าของเหตุการณ์สำคัญ 0 และเพื่อสรุปปัญหาที่ต้องแก้ไขก่อนที่จะได้รับสถานะการแนะนำสำหรับ W3C นี่เป็นขั้นตอนถัดไปในกระบวนการมาตรฐาน และมีการค้ำประกันความเสถียรและการป้องกันทรัพย์สินทางปัญญาที่เข้มงวดมากขึ้น
ผู้เข้าร่วมการประชุมเห็นพ้องกันโดยทั่วไปว่าข้อจำกัดเหล่านี้ไม่ใช่ปัญหาที่ขัดขวาง และปัญหาเหล่านี้สามารถแก้ไขได้อย่างรวดเร็ว ซึ่งจะช่วยปูทางให้ W3C แนะนำ WebGPU ในฐานะตัวเลือก
การจัดลำดับความสำคัญของฟีเจอร์ใหม่
ผู้เข้าร่วมการประชุมยังให้ความสำคัญกับฟีเจอร์ใหม่ๆ ด้วย โดยเริ่มจากรายการคําขอฟีเจอร์ที่รวบรวมจากความคิดเห็นของนักพัฒนาซอฟต์แวร์ ผู้ติดตั้งใช้งาน และผู้มีส่วนเกี่ยวข้อง
หลังจากพูดคุยกัน เราได้ระบุฟีเจอร์ 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