WebGPU thường được coi là một API đồ hoạ web cấp quyền truy cập hợp nhất và nhanh vào GPU bằng cách hiển thị các tính năng phần cứng tiên tiến, đồng thời 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.
Tuy nhiên, WebGPU vượt qua ranh giới của một API JavaScript đơn thuần; đây là một khối xây dựng cơ bản tương tự như WebAssembly, với những tác động vượt xa phạm vi web nhờ hệ sinh thái đang phát triển của nó. Nhóm Chrome thừa nhận rằng WebGPU không chỉ là công nghệ web; đó là một hệ sinh thái đang phát triển xoay quanh một công nghệ cốt lõi.
Khám phá hệ sinh thái hiện tại
Hành trình này bắt đầu bằng quy cách JavaScript, một nỗ lực cộng tác liên quan đến nhiều tổ chức như Apple, Google, Intel, Mozilla và Microsoft. Tất cả trình duyệt web lớn đều đã triển khai hoặc đang trong quá trình triển khai WebGPU.
Đồng thời, Mozilla và Google đã nhận ra tiềm năng của WebGPU trong các ứng dụng dành riêng cho nền tảng và tách biệt việc triển khai WebGPU khỏi trình duyệt, cho phép sử dụng độc lập.
Đối với Chrome, điều này được thể hiện dưới dạng Dawn, một thư viện C/C++ dịch các lệnh gọi WebGPU thành lệnh trình điều khiển GPU. Dawn giúp các ứng dụng C và C++ sử dụng WebGPU một cách nguyên gốc, cung cấp một GPU trừu tượng, linh hoạt và tiện dụng bằng cách sử dụng kiến thức chuyên môn của nhà cung cấp trình duyệt.
Như đã minh hoạ trong bài đăng trên blog WebGPU: API đồ hoạ đa nền tảng của tương lai, việc chuyển một ứng dụng WebGPU dành riêng cho nền tảng sang web rất đơn giản. Emscripten, chuỗi công cụ WebAssembly C++, đã hỗ trợ WebGPU, chỉ cần sửa đổi tối thiểu để chuyển sang web.
Bạn cũng có thể chạy mã WebGPU JavaScript bên ngoài trình duyệt bằng môi trường thời gian chạy JavaScript Node.js vì môi trường này bao gồm mô-đun WebGPU dựa trên Dawn. Tính năng này cho phép bạn chạy mã mà không cần sửa đổi phía máy chủ hoặc trong các ngữ cảnh khác dành riêng cho nền tảng.
Một hệ sinh thái tương tự cũng tồn tại cho Rust với wgpu, cách triển khai WebGPU của Firefox. Bạn có thể tích hợp trực tiếp wgpu vào các ứng dụng Rust, sau đó chuyển các ứng dụng này sang web bằng web-sys. Ngoài ra, môi trường thời gian chạy JavaScript Deno hỗ trợ WebGPU thông qua wgpu. Xem bài đăng trên blog liên minh wgpu với Deno.
Điều này thiết lập một hệ sinh thái song song giữa Rust và C++ như trong sơ đồ sau.
Chân trời mới
Hệ sinh thái WebGPU mở rộng ra ngoài các lĩnh vực JavaScript, C++ và Rust.
Ngôn ngữ lập trình mà bạn ưu tiên có thể đã có các liên kết cho WebGPU vì các kỹ sư đang triển khai WebGPU cũng đang phát triển tiêu đề C phổ biến cho WebGPU. Bạn có thể dùng tính năng này để nhắm đến Dawn, wgpu và các tính năng khác, giúp dễ dàng tạo liên kết cho các ngôn ngữ bằng cách sử dụng FFI của C.
Nhóm Chrome cũng đang cân nhắc sử dụng Dawn làm phần phụ trợ kết xuất mặc định cho tất cả các thành phần trên giao diện người dùng của trình duyệt, bao gồm cả trình đơn, thanh công cụ, công cụ dành cho nhà phát triển và nội dung web. Điều này sẽ giúp bạn không cần triển khai kết xuất riêng cho từng API gốc, từ đó đơn giản hoá quy trình phát triển. Tính năng này đang trong giai đoạn thử nghiệm trên macOS và Windows, sử dụng cờ chrome://flags/#skia-graphite
.