WebGPU: 250.000 Hạt Trên Trình Duyệt Của Bạn
Đây là Ngày 50. Đây là ngày cuối cùng trong chuỗi thử thách của tôi, nơi tôi xây dựng một công nghệ mới từ con số không mỗi ngày. Tôi muốn kết thúc chuỗi này với WebGPU.
Tôi đã mô phỏng 250.000 hạt hoàn toàn trên GPU ngay trong trình duyệt.
CPU của bạn có một vài lõi tốc độ cao. GPU của bạn có hàng nghìn lõi đơn giản. CPU di chuyển từng hạt một. GPU di chuyển hàng nghìn hạt cùng một lúc.
WebGPU là thế hệ kế thừa hiện đại của WebGL. Nó cho phép trình duyệt của bạn truy cập vào phần cứng thông qua các compute shader. Các shader này cho phép GPU thực hiện các phép toán, chứ không chỉ là vẽ đồ họa.
Cách thức hoạt động:
• Bạn tạo một device để quản lý GPU. • Bạn tạo một buffer để lưu trữ dữ liệu hạt như vị trí và vận tốc. • Bạn tải dữ liệu lên một lần và giữ nó trên GPU. • Bạn viết một compute shader cho một hạt. • GPU chạy shader đó trên tất cả 250.000 hạt cùng một lúc.
Dữ liệu luôn nằm trên GPU. Nó chuyển từ bước tính toán sang bước kết xuất mà không cần quay trở lại CPU. Tốc độ này cho phép mô phỏng chạy ở mức 60fps.
WebGPU là nền tảng mới cho các phép toán trong trình duyệt và học máy cục bộ. Đây là cách kết thúc chuỗi thử thách này một cách trọn vẹn nhất.
Cảm ơn bạn đã theo dõi hành trình này. Bạn có thể tìm thấy kho lưu trữ đầy đủ của mọi dự án tại đây.
Full code: https://github.com/dev48v/webgpu-from-zero
Complete post: https://dev.to/dev48v/webgpu-i-simulated-250000-particles-entirely-on-the-gpu-in-the-browser-2o0f
Optional learning community: https://dev48v.infy.uk/techfromzero.php