Sau nhiều năm phát triển, nhóm Chrome đã đưa ra WebGPU cho phép đồ hoạ 3D hiệu suất cao và tính toán song song dữ liệu trên web.
Nhóm Chrome rất vui được thông báo rằng WebGPU hiện có sẵn theo mặc định trong Chrome 113, hiện đang ở trong kênh Beta. WebGPU là một API đồ hoạ web mới mang lại các lợi ích đáng kể như giảm đáng kể khối lượng công việc JavaScript cho cùng một đồ hoạ và cải thiện hơn 3 lần khả năng dự đoán của mô hình học máy. Điều này có thể xảy ra là do khả năng lập trình GPU linh hoạt hơn và khả năng tiếp cận các tính năng nâng cao mà WebGL không cung cấp.
Bản phát hành đầu tiên của WebGPU này có trên ChromeOS, macOS và Windows. Chúng tôi sẽ hỗ trợ các nền tảng khác vào cuối năm nay.
Bình minh mới cho đồ hoạ web
WebGPU là một API mới dành cho web, thể hiện các chức năng phần cứng hiện đại, đồng thời cho phép thực hiện các thao tác kết xuất và tính toán trên GPU, tương tự như Direct3D 12, Metal và Vulkan. Không giống như nhóm API của WebGL, WebGPU cho phép bạn truy cập vào các tính năng GPU nâng cao hơn và cung cấp dịch vụ hỗ trợ hàng đầu cho các phép tính chung trên GPU. API đượ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 chỉn chu cho nhà phát triển với các thông báo lỗi tuyệt vời.
Bản phát hành đầu tiên của WebGPU này đóng vai trò là nền tảng cho các bản cập nhật và cải tiến trong tương lai. API này sẽ cung cấp các tính năng đồ hoạ nâng cao hơn và các nhà phát triển nên gửi yêu cầu về tính năng bổ sung. Nhóm Chrome cũng dự định cung cấp quyền truy cập sâu hơn vào các lõi chương trình đổ bóng để tối ưu hoá công nghệ học máy hơn nữa cũng như cải thiện hiệu quả sử dụng trong WGSL, tức là Ngôn ngữ tô bóng WebGPU.
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. Nhóm này bao gồm đóng góp của các công ty lớn như Mozilla, Apple, Intel và Microsoft. Sau 6 năm phát triển (90 người đóng góp, 2.000 lượt thay đổi, 3.000 vấn đề), từ thiết kế ban đầu vào năm 2017, lần triển khai đầu tiên hiện đã có trong Chrome, với sự hỗ trợ cho Firefox và Safari.
Cả thư viện Dawn dành cho Chromium và thư viện wgpu cho Firefox đều có sẵn dưới dạng các gói độc lập, đồng thời chúng cũng cung cấp các lớp tuyệt vời có khả năng di chuyển và hiệu quả làm việc để trừu tượng hoá 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 cũng giúp việc chuyển sang WASM dễ dàng hơn thông qua Emscripten và Rust web-sys.
Hỗ trợ trình duyệt
Bản phát hành đầu tiên của WebGPU này có 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 trong Firefox và Safari.
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 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 đã 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ử.
- Việc hỗ trợ WebGPU cho Three.js đang được tiến hành, hãy xem ví dụ.
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:
- Hãy xem thông số kỹ thuật W3C cho WebGPU và WGSL.
- Thử nghiệm với mẫu và khám phá WGSL thông qua một hướng dẫn.
- Xem tài liệu MMDN.
- Đọc nội dung giải thích chính thức và các phương pháp hay nhất.
- Tìm hiểu về điện toán GPU và các tính năng khác.
Thư cảm ơn
Cảm ơn tất cả những người đóng góp cho Chromium và đặc biệt là những nhân viên Intel vì sự hỗ trợ quý giá của họ để hiện thực hoá quá trình này.