Sau nhiều năm phát triển, nhóm Chrome đã ra mắt 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 mừng được thông báo rằng WebGPU hiện đã có sẵn theo mặc định trong Chrome 113, phiên bản này hiện đang ở kênh Beta. WebGPU là một API đồ hoạ web mới 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 đồ hoạ và cải thiện hơn 3 lần khả năng suy luận của mô hình học máy. Điều này có thể xảy ra do việc lập trình GPU linh hoạt hơn và có quyền truy cập vào 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.
Một kỷ nguyên mới cho đồ hoạ web
WebGPU là một API mới dành cho web, cho thấy các tính năng phần cứng hiện đại và cho phép các hoạt động 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ư gia đình API WebGL, WebGPU cung cấp quyền truy cập vào các tính năng GPU nâng cao hơn và hỗ trợ hàng đầu cho các phép tính chung trên GPU. API này được thiết kế dành cho nền tảng web, có API JavaScript theo ngôn ngữ, tích hợp với các lời hứa, hỗ trợ nhập video và mang đến trải nghiệm tinh tế cho nhà phát triển với thông báo lỗi tuyệt vời.
Bản phát hành đầu tiên của WebGPU đóng vai trò là một khối xây dự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à nhà phát triển nên gửi yêu cầu về các 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 và tăng cường tính công thái học trong WGSL, Ngôn ngữ đổ bóng WebGPU.
WebGPU là kết quả của 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. Sau 6 năm phát triển (90 người đóng góp, 2.000 thay đổi, 3.000 vấn đề), từ thiết kế ban đầu vào năm 2017, phương thức triển khai đầu tiên hiện đã có trong Chrome, với việc hỗ trợ Firefox và Safari đang được tiến hành.
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, đồng thời cung cấp các lớp di động và tiện dụng tuyệt vời giúp tóm tắt 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 bạn dễ dàng chuyển sang WASM 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. Chúng tôi sẽ sớm hỗ trợ Linux, Android và mở rộng hỗ trợ cho các nền tảng hiện có.
WebGPU đang trong quá trình phát triển trong Firefox và Safari, ngoài việc triển khai ban đầu trong Chrome.
Hỗ trợ thư viện
Nhiều thư viện WebGL được sử dụng rộng rãi đang trong quá trình triển khai tính năng hỗ trợ WebGPU hoặ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 bạn thay đổi một dòng duy nhất:
- Babylon.js đã hỗ trợ đầy đủ WebGPU.
- PlayCanvas đã công bố hỗ trợ WebGPU ban đầu.
- TensorFlow.js hỗ trợ các phiên bản được tối ưu hoá cho WebGPU của hầu hết các toán tử.
- Chúng tôi đang hỗ trợ WebGPU cho Three.js, hãy xem ví dụ.
Tài nguyên
WebGPU là một công nghệ quan trọng và bạn nên tham khảo các tài nguyên sau để tìm hiểu thêm:
- Hãy xem thông số kỹ thuật của W3C về WebGPU và WGSL.
- Thử nghiệm với mẫu và khám phá WGSL bằng một chuyến tham quan.
- Hãy xem tài liệu MDN.
- Đọc nội dung giải thích và các phương pháp hay nhất chính thức.
- Tìm hiểu về tính năng đ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, đặc biệt là Intel đã hỗ trợ rất nhiều để chúng tôi có thể thực hiện được điều này.