WebGPU มักถูกมองว่าเป็น API กราฟิกบนเว็บที่ให้สิทธิ์เข้าถึง GPU แบบเป็นหนึ่งเดียวและรวดเร็ว โดยแสดงความสามารถที่ล้ำสมัยของฮาร์ดแวร์ รวมถึงช่วยให้การแสดงผลและการคำนวณใน GPU ทำงานได้ ซึ่งคล้ายกับ Direct3D 12, Metal และ Vulkan
อย่างไรก็ตาม WebGPU ก้าวข้ามขอบเขตของ JavaScript API เพียงตัวเดียว โดยเป็นองค์ประกอบพื้นฐานที่คล้ายกับ WebAssembly โดยมีนัยยะที่ครอบคลุมไปไกลกว่าเว็บเนื่องจากระบบนิเวศที่กำลังเติบโตขึ้นเรื่อยๆ ทีม Chrome ยอมรับว่า WebGPU เป็นมากกว่าเทคโนโลยีบนเว็บ แต่เป็นระบบนิเวศที่เฟื่องฟูโดยมีศูนย์กลางอยู่ที่เทคโนโลยีหลัก
สำรวจระบบนิเวศในปัจจุบัน
เส้นทางนี้จะเริ่มต้นด้วยข้อมูลจำเพาะของ JavaScript ซึ่งเป็นความร่วมมือจากหลายองค์กร เช่น Apple, Google, Intel, Mozilla และ Microsoft เว็บเบราว์เซอร์หลักทั้งหมดใช้งานได้หรือกำลังดำเนินการติดตั้ง WebGPU
ในขณะเดียวกัน Mozilla และ Google ก็ตระหนักถึงศักยภาพของ WebGPU ในแอปพลิเคชันเฉพาะแพลตฟอร์มและแยกการใช้งาน WebGPU ออกจากเบราว์เซอร์ ทำให้สามารถใช้งานได้แบบสแตนด์อโลน
สำหรับ Chrome ตัวเลือกนี้จะแสดงเป็น Dawn ซึ่งเป็นไลบรารี C/C++ ที่แปลการเรียก WebGPU เป็นคำสั่งไดรเวอร์ของ GPU Dawn สนับสนุนให้แอปพลิเคชัน C และ C++ ใช้ WebGPU ตั้งแต่แรก ด้วยการประมวลผล GPU แบบพกพาและที่รองรับการทำงานตามหลักการยศาสตร์โดยใช้ความเชี่ยวชาญของผู้ให้บริการเบราว์เซอร์
ดังที่แสดงในบล็อกโพสต์ WebGPU: API กราฟิกข้ามแพลตฟอร์มในอนาคต การย้ายแอปพลิเคชัน WebGPU เฉพาะแพลตฟอร์มไปยังเว็บนั้นทำได้ง่าย Emscripten ซึ่งเป็น Toolchain ของ C++ WebAssembly รองรับ WebGPU อยู่แล้ว และต้องมีการแก้ไขเพียงเล็กน้อยเพื่อพอร์ตไปยังเว็บ
คุณยังเรียกใช้โค้ด JavaScript WebGPU ของ JavaScript นอกเบราว์เซอร์ด้วยรันไทม์ JavaScript ของ Node.js ได้ เนื่องจากมีโมดูล WebGPU ที่อิงตาม Dawn ซึ่งช่วยให้คุณเรียกใช้โค้ดได้โดยไม่ต้องแก้ไขฝั่งเซิร์ฟเวอร์หรือในบริบทเฉพาะแพลตฟอร์มอื่นๆ
Rust มีระบบนิเวศที่คล้ายกันสำหรับ wgpu ซึ่งเป็นการใช้งาน WebGPU ของ Firefox Wgpu สามารถผสานรวมเข้ากับแอปพลิเคชัน Rust ได้โดยตรง ซึ่งจากนั้นสามารถพอร์ตไปยังเว็บได้โดยใช้ web-sys นอกจากนี้ รันไทม์ของ Deno JavaScript ยังรองรับ WebGPU ผ่าน wgpu อีกด้วย ดูบล็อกโพสต์ของ wgpu alliance with Deno
ซึ่งจะสร้างระบบนิเวศคู่ขนานระหว่าง Rust และ C++ ตามที่แสดงในแผนภาพต่อไปนี้
![แผนภาพระบบนิเวศ WebGPU ในปี 2023](https://developer.chrome.google.cn/static/blog/webgpu-ecosystem/image/diagram-the-webgpu-ecosy-384594168a61.png?authuser=6&hl=th)
เส้นขอบฟ้าเกิดใหม่
ระบบนิเวศ WebGPU ขยายขอบเขตไปไกลกว่าขอบเขต JavaScript, C++ และ Rust
ภาษาโปรแกรมที่คุณต้องการอาจมีการเชื่อมโยง WebGPU อยู่แล้ว ในขณะที่วิศวกรที่ดูแลการใช้งาน WebGPU ก็กำลังพัฒนาส่วนหัว C ทั่วไปสำหรับ WebGPU ด้วยเช่นกัน ซึ่งใช้เพื่อกำหนดเป้าหมาย Dawn, wgpu และอื่นๆ เพื่อช่วยให้สร้างการเชื่อมโยงสำหรับภาษาต่างๆ โดยใช้ C FFI ได้ง่ายขึ้น
ทีม Chrome ยังพิจารณาการใช้ Dawn เป็นแบ็กเอนด์การแสดงผลเริ่มต้นสำหรับองค์ประกอบ UI ทั้งหมดของเบราว์เซอร์ รวมถึงเมนู แถบเครื่องมือ เครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ และเนื้อหาเว็บด้วย ทำให้ไม่จำเป็นต้องใช้งานการแสดงผลแยกต่างหากสำหรับ API แบบเนทีฟแต่ละแบบ ทำให้กระบวนการพัฒนาง่ายขึ้น ปัจจุบันฟีเจอร์นี้อยู่ในขั้นทดลองใน macOS และ Windows ที่มีแฟล็ก chrome://flags/#skia-graphite
ข้อความแสดงการยอมรับ
รูปภาพหลักโดย Daniel Öberg ใน Unsplash