تاریخ انتشار: 26 فوریه 2025
بارهای کاری یادگیری ماشینی را با زیرگروه ها بهبود دهید
پس از یک سال توسعه و آزمایش، ویژگی WebGPU زیرگروهها که موازیسازی در سطح SIMD را فعال میکند اکنون در دسترس است. این به رشتهها در یک گروه کاری اجازه میدهد تا با یکدیگر ارتباط برقرار کنند و عملیاتهای ریاضی جمعی مانند محاسبه مجموع اعداد را انجام دهند و روشی کارآمد برای اشتراکگذاری دادههای بین رشتهای ارائه میدهد. پیشنهاد اصلی و ورودی chromestatus را ببینید.
برای مرجع، Google Meet هنگام محک زدن زیرگروهها در برابر محصولات نقطه صحیح بستهبندی شده برای سایهزنهای ضرب ماتریس-بردار در برخی دستگاهها در طول آزمایش مبدا ، سرعت ۲.۳ تا ۲.۹ برابر افزایش یافت.
وقتی ویژگی "subgroups"
در یک GPUAdapter
در دسترس است، یک GPUDevice
با این ویژگی درخواست کنید تا پشتیبانی زیرگروهها را در WGSL دریافت کنید. بررسی مقادیر اطلاعات آداپتور subgroupMinSize
و subgroupMaxSize
مفید است - برای مثال، اگر یک الگوریتم کدگذاری شده دارید که به یک زیرگروه با اندازه خاصی نیاز دارد.
همچنین باید این افزونه را در کد WGSL خود با enable subgroups;
برای دسترسی به مقادیر داخلی زیر در هر دو مرحله shader و compute shader:
subgroup_invocation_id
: یک مقدار داخلی برای نمایه رشته در زیر گروه.subgroup_size
: یک مقدار داخلی برای دسترسی به اندازه زیرگروه.
توابع داخلی متعدد زیرگروه (به عنوان مثال، subgroupAdd()
، subgroupBallot()
، subgroupBroadcast()
، subgroupShuffle()
) ارتباط و محاسبات کارآمد بین فراخوانی ها را در یک زیرگروه امکان پذیر می کند. این عملیات زیرگروهی به عنوان عملیات چند رشته ای تک دستوره (SIMT) طبقه بندی می شوند. علاوه بر این، توابع داخلی چهارگانه ، که بر روی چهار فراخوان عمل می کنند، ارتباط داده ها را در چهارگوش تسهیل می کنند.
وقتی یک GPUDevice
با هر دو ویژگی "shader-f16"
و "subgroups"
درخواست میکنید، میتوانید از مقادیر f16 با زیرگروهها استفاده کنید.
نمونه زیر نقطه شروع خوبی برای کاوش زیر گروهها است: سایهزنی را نشان میدهد که از تابع داخلی subgroupExclusiveMul()
برای محاسبه فاکتوریلها بدون خواندن یا نوشتن حافظه برای برقراری ارتباط نتایج میانی استفاده میکند.
پشتیبانی انواع بافت قابل فیلتر شناور را به عنوان ترکیب پذیر حذف کنید
اکنون که ترکیب بافت های شناور 32 بیتی با ویژگی "float32-blendable"
در دسترس است، پشتیبانی نادرست از انواع بافت های قابل فیلتر شناور به عنوان ترکیب پذیر حذف می شود. به شماره 364987733 مراجعه کنید.
به روز رسانی سحر
Dawn اکنون به macOS 11 و iOS 14 نیاز دارد و فقط از Metal 2.3+ پشتیبانی می کند. به شماره 381117827 مراجعه کنید.
متد جدید GetWGSLLanguageFeatures()
wgpu::Instance
اکنون جایگزین EnumerateWGSLLanguageFeatures()
شده است. شماره 368672124 را ببینید.
انواع صحافی زیر دارای یک مقدار Undefined
هستند و مقادیر پیشفرض آنها در چیدمان صحافی تغییر کرده است. به شماره 377820810 مراجعه کنید.
-
wgpu::BufferBindingType::Undefined
اکنونUniform
است -
wgpu::SamplerBindingType::Undefined
اکنونFiltering
است -
wgpu::TextureSampleType::Undefined
اکنونFloat
است -
wgpu::StorageTextureAccess::Undefined
اکنونWriteOnly
است
این تنها برخی از نکات کلیدی را پوشش می دهد. فهرست جامع تعهدات را بررسی کنید.
چه چیزی در WebGPU جدید است
فهرستی از همه چیزهایی که در سری What's New in WebGPU پوشش داده شده است.
کروم 134
- بارهای کاری یادگیری ماشینی را با زیرگروه ها بهبود دهید
- پشتیبانی انواع بافت قابل فیلتر شناور را به عنوان ترکیب پذیر حذف کنید
- به روز رسانی سحر
کروم 133
- فرمتهای unorm8x4-bgra و راس 1 جزء اضافی
- اجازه دهید محدودیت های ناشناخته با مقدار تعریف نشده درخواست شود
- قوانین تراز WGSL تغییر می کند
- عملکرد WGSL با دور انداختن افزایش می یابد
- از VideoFrame displaySize برای بافت های خارجی استفاده کنید
- با استفاده از copyExternalImageToTexture، تصاویر را با جهت گیری های غیر پیش فرض مدیریت کنید
- بهبود تجربه توسعه دهندگان
- حالت سازگاری را با featureLevel فعال کنید
- ویژگی های پاکسازی زیرگروه آزمایشی
- محدودیت maxInterStageShaderComponents را منسوخ کنید
- به روز رسانی سحر
کروم 132
- استفاده از نمای بافت
- ترکیب بافت های شناور 32 بیتی
- ویژگی GPUDevice adapterInfo
- پیکربندی بافت بوم با فرمت نامعتبر خطای جاوا اسکریپت را ایجاد می کند
- فیلتر کردن محدودیت های نمونه بر روی بافت ها
- آزمایش زیرگروه های گسترده
- بهبود تجربه توسعه دهندگان
- پشتیبانی آزمایشی از فرمتهای بافت عادی ۱۶ بیتی
- به روز رسانی سحر
کروم 131
- فاصله های کلیپ در WGSL
- GPUCanvasContext getConfiguration()
- نقطه و خط اولیه نباید بایاس عمق داشته باشند
- توابع داخلی اسکن جامع برای زیرگروه ها
- پشتیبانی آزمایشی برای چند قرعه کشی غیر مستقیم
- گزینه کامپایل ماژول Shader ریاضی سخت
- حذف GPUAdapter requestAdapterInfo()
- به روز رسانی سحر
کروم 130
- ترکیب منبع دوگانه
- بهبود زمان کامپایل شیدر در فلز
- منسوخ شدن GPUAdapter requestAdapterInfo()
- به روز رسانی سحر
کروم 129
کروم 128
- آزمایش با زیر گروه ها
- بایاس عمق تنظیم را برای خطوط و نقاط منسوخ کنید
- در صورت جلوگیری از Default، هشدار DevTools خطای ضبط نشده را مخفی کنید
- WGSL ابتدا نمونهگیری را درونیابی میکند و هر کدام را
- به روز رسانی سحر
کروم 127
- پشتیبانی آزمایشی از OpenGL ES در اندروید
- ویژگی اطلاعات GPUAdapter
- بهبودهای WebAssembly interop
- خطاهای رمزگذار فرمان بهبود یافته است
- به روز رسانی سحر
کروم 126
- حد maxTextureArrayLayers را افزایش دهید
- بهینه سازی بارگذاری بافر برای باطن Vulkan
- بهبود زمان کامپایل شیدر
- بافرهای فرمان ارسالی باید منحصر به فرد باشند
- به روز رسانی سحر
کروم 125
کروم 124
- بافت های ذخیره سازی فقط خواندنی و خواندنی و نوشتنی
- پشتیبانی کارگران خدماتی و کارگران مشترک
- ویژگی های اطلاعات آداپتور جدید
- رفع اشکال
- به روز رسانی سحر
کروم 123
- توابع داخلی DP4a در WGSL پشتیبانی می کند
- پارامترهای اشاره گر نامحدود در WGSL
- قند نحوی برای عدم ارجاع کامپوزیت ها در WGSL
- حالت فقط خواندنی را برای جنبه های استنسیل و عمق جدا کنید
- به روز رسانی سحر
کروم 122
- گسترش دسترسی با حالت سازگاری (ویژگی در حال توسعه)
- حد maxVertexAttributes را افزایش دهید
- به روز رسانی سحر
کروم 121
- پشتیبانی از WebGPU در اندروید
- برای کامپایل شیدر در ویندوز به جای FXC از DXC استفاده کنید
- پرس و جوهای مهر زمانی در گذرنامه های محاسبه و ارائه
- نقاط ورودی پیش فرض به ماژول های سایه زن
- پشتیبانی از display-p3 به عنوان فضای رنگی GPUExternalTexture
- اطلاعات انبوه حافظه
- به روز رسانی سحر
کروم 120
- پشتیبانی از مقادیر ممیز شناور 16 بیتی در WGSL
- محدودیت ها را فشار دهید
- تغییرات در حالت عمقی-استنسیل
- به روز رسانی اطلاعات آداپتور
- کوانتیزاسیون پرس و جوهای مهر زمانی
- ویژگی های تمیز کردن فنری
کروم 119
کروم 118
- پشتیبانی از HTMLImageElement و ImageData در
copyExternalImageToTexture()
- پشتیبانی آزمایشی از بافت ذخیرهسازی خواندنی-نوشتنی و فقط خواندنی
- به روز رسانی سحر
کروم 117
- بافر راس را تنظیم نکنید
- گروه bind را تنظیم نکنید
- هنگام گم شدن دستگاه، خطاهای ایجاد خط لوله ناهمگام را خاموش کنید
- به روز رسانی های ایجاد ماژول سایه زن SPIR-V
- بهبود تجربه توسعه دهندگان
- ذخیره سازی خطوط لوله با طرح تولید خودکار
- به روز رسانی سحر
کروم 116
- یکپارچه سازی WebCodecs
- دستگاه گمشده توسط GPUAdapter
requestDevice()
برگردانده شد - در صورت فراخوانی
importExternalTexture()
پخش ویدیو را روان نگه دارید - مطابقت با مشخصات
- بهبود تجربه توسعه دهندگان
- به روز رسانی سحر
کروم 115
- پسوندهای زبان WGSL پشتیبانی می شود
- پشتیبانی آزمایشی از Direct3D 11
- GPU گسسته را به طور پیشفرض با برق AC دریافت کنید
- بهبود تجربه توسعه دهندگان
- به روز رسانی سحر
کروم 114
- بهینه سازی جاوا اسکریپت
- getCurrentTexture() روی بوم پیکربندی نشده خطای InvalidState را ایجاد می کند
- به روز رسانی WGSL
- به روز رسانی سحر