Tổng quan về WebGPU

François Beaufort
François Beaufort

WebGPU là một API đồ hoạ web mang lại nhiều lợi ích đáng kể, chẳng hạn như giảm đáng kể khối lượng công việc JavaScript cho cùng một nội dung đồ hoạ và hơn 3 lần cải tiến trong việc dự đoán mô hình học máy. Điều này có thể xảy ra là do lập trình GPU linh hoạt và khả năng tiếp cận các tính năng nâng cao mà WebGL không cung cấp.

API này được thiết kế chú trọng đến nền tảng web, có API JavaScript đặc trưng, tích hợp với lời hứa, hỗ trợ nhập video và trải nghiệm nhà phát triển được trau chuốt với các thông báo lỗi rõ ràng.

WebGPU là kết quả nỗ lực cộng tác của Nhóm cộng đồng "GPU cho web" của W3C, trong đó có sự đóng góp của các công ty lớn như Mozilla, Apple, Intel và Microsoft.

Hỗ trợ trình duyệt

Bản phát hành đầu tiên của WebGPU này được cung cấp trong Chrome 113, trên các thiết bị ChromeOS có hỗ trợ Vulkan, các thiết bị Windows có hỗ trợ Direct3D 12 và macOS. Linux, Android và dịch vụ hỗ trợ mở rộng cho các nền tảng hiện có sẽ sớm ra mắt.

Ngoài triển khai ban đầu trong Chrome, WebGPU đang trong quá trình phát triển cho FirefoxSafari.

Hỗ trợ thư viện

Nhiều thư viện WebGL được sử dụng rộng rãi đã trong quá trình triển khai tính năng hỗ trợ WebGPU hoặc đã được triển khai. Điều này có nghĩa là việc sử dụng WebGPU có thể chỉ yêu cầu thực hiện thay đổi một dòng.

  • Babylon.js có hỗ trợ WebGPU đầy đủ.
  • PlayCanvas công bố tính năng hỗ trợ WebGPU ban đầu.
  • TensorFlow.js hỗ trợ các phiên bản được tối ưu hóa cho WebGPU của hầu hết các toán tử.
  • Đang hỗ trợ WebGPU Three.js, xem ví dụ.

Cả thư viện Dawn cho Chromium và thư viện wgpu cho Firefox đều có sẵn dưới dạng gói độc lập. Các API này cung cấp khả năng di động tuyệt vời và các lớp công thái học giúp trừu tượng các API GPU của hệ điều hành. Việc sử dụng các thư viện này trong ứng dụng gốc giúp bạn dễ dàng chuyển sang WASM thông qua EmscriptenRust web-sys.

Tài nguyên

WebGPU là một công nghệ quan trọng và bạn nên sử dụng các tài nguyên sau để tìm hiểu thêm: