WebGPU: 250,000 جزيء في متصفحك
اليوم هو اليوم الخمسون. إنه اليوم الأخير من سلسلتي لبناء تقنيات جديدة من الصفر كل يوم.
لقد اخترت WebGPU لإنهاء هذه السلسلة. يتيح لك WebGPU محاكاة 250,000 جزيء بالكامل على الـ GPU الخاص بك داخل المتصفح.
تمتلك الـ CPU الخاصة بك عدداً قليلاً من النوى السريعة، بينما تمتلك الـ GPU آلاف النوى البسيطة. لتحريك 250,000 جزيء، تعمل الـ CPU عليها واحداً تلو الآخر، بينما تقوم الـ GPU بمعالجة الآلاف في نفس الوقت تماماً.
يعد WebGPU الخليفة الحديث لـ WebGL. فهو يستخدم compute shaders لتشغيل برامج عامة على أجهزتك.
كيف يعمل:
- تقوم بإنشاء device لإدارة الـ GPU.
- تقوم بإنشاء buffer لتخزين بيانات الجزيئات مثل الموقع والسرعة.
- تقوم برفع البيانات إلى الـ GPU مرة واحدة.
- تقوم بكتابة compute shader للتعامل مع الحركة.
يقوم الـ compute shader بتشغيل نفس المنطق لكل جزيء في وقت واحد. تبقى البيانات على الـ GPU، حيث تنتقل من خطوة الـ compute إلى خطوة الـ render دون مغادرة الجهاز. تتيح هذه السرعة للمحاكاة العمل بمعدل 60fps.
سيصبح WebGPU الأساس لتعلم الآلة والحوسبة الثقيلة داخل المتصفح. إنه أداة حيوية لمستقبل تطوير الويب.
شكراً لمتابعة هذه السلسلة. يمكنك العثور على الأرشيف الكامل لكل مشروع هنا.
الكود الكامل: https://github.com/dev48v/webgpu-from-zero
المقال الكامل: https://dev.to/dev48v/webgpu-i-simulated-250000-particles-entirely-on-the-gpu-in-the-browser-2o0f