การบันทึกระบบนิเวศ WebGPU

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

เผยแพร่: 9 พฤศจิกายน 2023, อัปเดตล่าสุด: 16 กันยายน 2025

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 ซึ่งเป็นเครื่องมือ WebAssembly ของ C++ รองรับ WebGPU อยู่แล้ว จึงต้องมีการแก้ไขเพียงเล็กน้อยเท่านั้นในการพอร์ตไปยังเว็บ

นอกจากนี้ คุณยังเรียกใช้โค้ด JavaScript WebGPU นอกเบราว์เซอร์ได้ด้วยรันไทม์ JavaScript ของ Node.js เนื่องจากมีโมดูล WebGPU ที่อิงตาม Dawn ซึ่งช่วยให้คุณเรียกใช้โค้ดได้โดยไม่ต้องแก้ไขฝั่งเซิร์ฟเวอร์หรือในบริบทอื่นๆ ที่เฉพาะเจาะจงแพลตฟอร์ม

Rust มีระบบนิเวศที่คล้ายกันกับ wgpu ซึ่งเป็นการติดตั้งใช้งาน WebGPU ของ Firefox Wgpu สามารถผสานรวมเข้ากับแอปพลิเคชัน Rust ได้โดยตรง ซึ่งจะพอร์ตไปยังเว็บได้โดยใช้ web-sys นอกจากนี้ รันไทม์ JavaScript ของ Deno ยังรองรับ WebGPU ผ่าน wgpu ด้วย ดูบล็อกโพสต์การเป็นพันธมิตรของ wgpu กับ Deno

ซึ่งจะสร้างระบบนิเวศคู่ขนานระหว่าง Rust และ C++ ดังที่แสดงในไดอะแกรมต่อไปนี้

แผนภาพระบบนิเวศของ WebGPU ในปี 2023
ระบบนิเวศ WebGPU ในปี 2023

ขอบเขตใหม่

ระบบนิเวศ WebGPU ไม่ได้จำกัดอยู่แค่ในขอบเขตของ JavaScript, C++ และ Rust

ภาษาโปรแกรมที่คุณต้องการอาจมี Binding สำหรับ WebGPU อยู่แล้ว เนื่องจากวิศวกรที่ทำงานกับการใช้งาน WebGPU ยังพัฒนาส่วนหัว C ทั่วไปสำหรับ WebGPU ด้วย ซึ่งสามารถใช้เพื่อกำหนดเป้าหมาย Dawn, wgpu และอื่นๆ ได้ ทำให้การสร้างการเชื่อมโยงสำหรับภาษาที่ใช้ FFI ของ C ง่ายขึ้น

นอกจากนี้ ทีม Chrome ยังพิจารณาที่จะใช้ Dawn เป็นแบ็กเอนด์การแสดงผลเริ่มต้นสำหรับองค์ประกอบ UI ของเบราว์เซอร์ทั้งหมด ซึ่งรวมถึงเมนู แถบเครื่องมือ เครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ และเนื้อหาเว็บ ซึ่งจะช่วยลดความจำเป็นในการติดตั้งใช้งานการแสดงผลแยกต่างหากสำหรับ API เนทีฟแต่ละรายการ ทำให้กระบวนการพัฒนาซอฟต์แวร์ง่ายขึ้น ฟีเจอร์นี้อยู่ในขั้นทดลองใน macOS และ Windows โดยอยู่หลัง Flag chrome://flags/#skia-graphite