
WebGPU là tiêu chuẩn API đồ họa thế hệ mới dành cho web, được thiết kế để thay thế WebGL sau hơn một thập kỷ phục vụ cộng đồng. Với WebGPU, các nhà phát triển có thể truy cập trực tiếp vào sức mạnh GPU của máy người dùng ngay trong trình duyệt, mở ra khả năng chạy đồ họa 3D chất lượng cao, trò chơi nặng và cả tác vụ tính toán AI mà trước đây chỉ có phần mềm native làm được.
WebGPU là gì?
WebGPU là một tiêu chuẩn JavaScript API do nhóm GPU for the Web của W3C phát triển, cho phép trình duyệt giao tiếp hiệu quả với GPU thông qua các nền tảng đồ họa hiện đại như Vulkan, Metal và Direct3D 12. Khác với WebGL vốn dựa trên OpenGL ES cũ kỹ, WebGPU được thiết kế lại hoàn toàn theo kiến trúc GPU hiện đại, mang lại hiệu suất gần bằng ứng dụng native.

Điểm mấu chốt tạo nên khác biệt là kiến trúc. WebGL hoạt động theo mô hình trạng thái toàn cục, mỗi lệnh vẽ phải thiết lập lại hàng loạt trạng thái khiến CPU nghẽn cổ chai. WebGPU sử dụng mô hình pipeline được định nghĩa trước, tạo sẵn các đối tượng render pipeline, bind group và command buffer, giúp GPU thực thi tối ưu mà CPU ít can thiệp. Kết quả là số draw call cao hơn nhiều lần, phù hợp với các cảnh 3D phức tạp.
Ngôn ngữ shader WGSL
WebGPU đi kèm ngôn ngữ shader riêng mang tên WGSL (WebGPU Shading Language), có cú pháp gần gũi với Rust. WGSL được thiết kế để dễ dàng biên dịch sang SPIR-V, định dạng shader trung gian của Vulkan, nhờ đó tương thích rộng rãi với các công cụ và driver GPU. Các nhóm phát triển cũng có thể dùng công cụ Tint của Google hoặc Naga để chuyển đổi shader giữa nhiều định dạng.
Các tính năng chính của WebGPU
Render pipeline hiện đại
WebGPU hỗ trợ đầy đủ pipeline đồ họa hiện đại: vertex shader, fragment shader, depth-stencil, multisampling và blending. API cho phép khai báo pipeline một lần rồi tái sử dụng, giảm chi phí chuẩn bị mỗi khung hình.
Compute shader cho tính toán GPGPU
Khác với WebGL, WebGPU hỗ trợ compute shader ngay từ đầu. Đây là nền tảng để chạy các thuật toán tính toán song song như xử lý ảnh, mô phỏng vật lý, training và inference mô hình máy học ngay trên trình duyệt, thậm chí không cần hiển thị gì lên màn hình.
Quản lý bộ nhớ minh bạch
WebGPU cung cấp các API quản lý buffer, texture và bind group rõ ràng, giúp lập trình viên kiểm soát vòng đời dữ liệu trên GPU, tránh rò rỉ bộ nhớ và tối ưu băng thông.

So sánh WebGL và WebGPU
| Tiêu chí | WebGL | WebGPU |
|---|---|---|
| Nền tảng nguồn | OpenGL ES | Vulkan, Metal, Direct3D 12 |
| Compute shader | Không hỗ trợ | Hỗ trợ đầy đủ |
| Hiệu suất | Giới hạn bởi CPU | Gần native |
| Ngôn ngữ shader | GLSL | WGSL |
| Quản lý tài nguyên | Ngầm, rò rỉ dễ xảy ra | Minh bạch, chủ động |
| Trình duyệt hỗ trợ | Hầu hết | Chrome 113+, Firefox 141+, Safari 26+ |
Ứng dụng thực tế của WebGPU
- Trò chơi 3D trên trình duyệt: Các engine như Babylon.js và Three.js đã hỗ trợ WebGPU, cho phép render hàng triệu đỉnh mượt mà.
- Trực quan hóa dữ liệu: Hiển thị dữ liệu khoa học, bản đồ, mô hình 3D công nghiệp ngay trong trang web.
- AI và máy học: Kết hợp với WebNN và WebAssembly để chạy mô hình inference trên GPU cục bộ, bảo vệ quyền riêng tư.
- Chỉnh sửa media: Các ứng dụng chỉnh sửa video, ảnh online tận dụng compute shader để xử lý hiệu ứng thời gian thực.
- Mô phỏng khoa học: Mô phỏng vật lý, thủy động lực học, khí tượng chạy ngay trong trình duyệt phục vụ giáo dục và nghiên cứu.
Cách bắt đầu với WebGPU
Để bắt đầu, bạn chỉ cần một trình duyệt hỗ trợ WebGPU và vài dòng JavaScript. Quy trình cơ bản gồm: lấy adapter GPU, mở device, tạo canvas context, định nghĩa shader bằng WGSL, thiết lập render pipeline và gửi lệnh vẽ qua command encoder.
const adapter = await navigator.gpu.requestAdapter();
const device = await adapter.requestDevice();
const context = canvas.getContext('webgpu');
context.configure({ device, format: 'bgra8unorm' });
// Tạo pipeline, shader WGSL, command buffer rồi submit
Với những ai đã quen Three.js, chỉ cần chọn renderer WebGPU trong cấu hình là có thể render cùng một scene với hiệu suất cao hơn đáng kể. Hệ sinh thái công cụ gồm Tint compiler, wgpu cho Rust, và các thư viện framework đều đã trưởng thành.
Tương lai của đồ họa web
WebGPU đang ở giai đoạn Candidate Recommendation của W3C, nghĩa là chuẩn đã ổn định và được tất cả trình duyệt lớn triển khai. Chrome và Edge hỗ trợ từ năm 2023, Firefox từ phiên bản 141, Safari từ phiên bản 26. Cùng với sự phát triển của WebXR, WebGPU sẽ định hình trải nghiệm web 3D, thực tế ảo và AI trong nhiều năm tới.
Nếu bạn là nhà phát triển web, đây là thời điểm lý tưởng để làm quen với WebGPU. Bạn có thể tham khảo tài liệu chính thức tại Chrome for Developers hoặc đặc tả W3C WebGPU để cập nhật kiến thức mới nhất.
