Explore all courses in this category.
Explore all courses in this category.
Nguyễn Đình Cường
0 comment
09 Nov, 2026
Trong nhiều năm, WebGL là cách duy nhất để dựng đồ họa 3D tăng tốc bằng GPU trong trình duyệt. WebGPU là API thế hệ mới, được thiết kế phù hợp hơn với GPU hiện đại, đồng thời cho phép dùng GPU vào tính toán tổng quát. Hãy xem nó khác gì và có đáng để học ngay không.
WebGPU là API chuẩn của web cho phép trang web truy cập sức mạnh của GPU để dựng đồ họa và chạy tính toán song song. Nó lấy cảm hứng từ các API đồ họa hiện đại trên máy tính như Vulkan, Metal và Direct3D 12. Mức hỗ trợ trình duyệt đang mở rộng dần, nên trước khi dùng cho sản phẩm thật bạn cần kiểm tra bảng tương thích mới nhất.
| Khía cạnh | WebGL | WebGPU |
|---|---|---|
| Nền tảng thiết kế | Dựa trên OpenGL ES, ra đời từ lâu | Dựa trên các API đồ họa hiện đại |
| Tính toán GPU tổng quát | Hạn chế, phải "mẹo" | Có compute shader chính thức |
| Ngôn ngữ shader | GLSL | WGSL |
| Chi phí điều khiển (CPU) | Cao hơn trong cảnh phức tạp | Thiết kế để giảm tải cho CPU |
| Độ phức tạp khi dùng trực tiếp | Vừa phải | Nhiều bước thiết lập hơn |
Điểm hấp dẫn nhất của WebGPU là chạy tính toán song song ngay trong trình duyệt, không chỉ để vẽ. Các tác vụ phù hợp gồm xử lý ảnh, mô phỏng hạt, vật lý, và chạy một số mô hình học máy ở phía người dùng.
Đoạn mã sau kiểm tra trình duyệt và lấy thiết bị GPU:
if (!navigator.gpu) {
console.log("Trình duyệt chưa hỗ trợ WebGPU");
} else {
const adapter = await navigator.gpu.requestAdapter();
if (!adapter) {
console.log("Không tìm thấy GPU phù hợp");
} else {
const device = await adapter.requestDevice();
console.log("Đã có thiết bị GPU", device);
}
}
Compute shader nhân đôi từng phần tử của một mảng, mỗi luồng GPU xử lý một phần tử:
@group(0) @binding(0) var<storage, read_write> data : array<f32>;
@compute @workgroup_size(64)
fn main(@builtin(global_invocation_id) id : vec3<u32>) {
if (id.x < arrayLength(&data)) {
data[id.x] = data[id.x] * 2.0;
}
}
Để chạy được, bạn còn cần tạo pipeline, buffer và bind group ở phía JavaScript, phần này khá dài nên người mới thường dùng thư viện hỗ trợ.
Nếu bạn làm web thông thường thì chưa cần. Nếu bạn quan tâm đồ họa 3D, game web, trực quan hóa dữ liệu lớn hay học máy phía trình duyệt, WebGPU đáng để theo dõi. Hãy nắm trước khái niệm cơ bản về GPU, pipeline đồ họa và JavaScript hiện đại.
Chưa. WebGL vẫn được hỗ trợ rộng rãi, và nhiều thư viện giữ cả hai đường chạy. Bạn nên có phương án dự phòng khi triển khai.
Có, nhiều thư viện học máy phía trình duyệt đã tận dụng GPU. Mức hỗ trợ thay đổi nhanh nên hãy kiểm tra tài liệu mới nhất.
WebGPU mang lại nền tảng hiện đại hơn cho đồ họa và tính toán trên web. Dù chi tiết kỹ thuật còn phức tạp, bạn thường sẽ tiếp cận nó qua thư viện, và hiểu ý tưởng sẽ giúp bạn chọn công cụ đúng khi cần hiệu năng cao.
Nếu muốn nắm vững JavaScript và đồ họa trước khi đi sâu, hãy xem các khóa học tại codebem.com.
Nguyễn Đình Cường
0 comment