發布日期:2025 年 2 月 26 日
使用子群組改善機器學習工作負載
經過一年的開發和測試,現在已推出可啟用 SIMD 等級並行處理的子群組 WebGPU 功能。這可讓工作群組中的執行緒進行通訊及執行集體數學運算,例如計算數字的總和,並提供跨執行緒資料共用作業的有效方法。請參閱原始提案和 chromestatus 項目。
供您參考,在原點測試期間,Google Meet 針對矩陣向量乘法著色器的已封裝整數點積積算式,對子群組進行基準測試,在某些裝置上速度提升了 2.3 到 2.9 倍。
當 GPUAdapter
提供 "subgroups"
功能時,請要求 GPUDevice
提供這項功能,以便在 WGSL 中取得子群組支援。檢查 subgroupMinSize
和 subgroupMaxSize
轉接器資訊值很有幫助,例如,如果您有硬式編碼的演算法,需要特定大小的子群組。
您還必須使用 enable subgroups;
在 WGSL 程式碼中明確啟用此擴充功能,才能在運算和片段著色器階段存取下列內建值:
subgroup_invocation_id
:子群組中執行緒索引的內建值。subgroup_size
:子群組大小存取權的內建值。
許多子群組內建函式 (例如 subgroupAdd()
、subgroupBallot()
、subgroupBroadcast()
、subgroupShuffle()
) 可在子群組內的叫用之間進行有效的通訊和運算。這些子群組作業歸類為單一指令多執行緒 (SIMT) 作業。此外,四元式內建函式會針對四元式的叫用作業,方便在四元式內進行資料通訊。
當您同時要求含有 "shader-f16"
和 "subgroups"
功能的 GPUDevice
時,可以使用子群組的 f16 值。
以下範例是探索子群組的好起點:它顯示著色器,使用 subgroupExclusiveMul()
內建函式計算階乘,不必讀取或寫入記憶體來傳達中間結果。
移除浮點可篩選紋理類型的支援功能,以便混合
由於 "float32-blendable"
功能支援32 位元浮點紋理混合,因此已移除浮點可篩選紋理類型不正確支援混合功能的支援。請參閱問題 364987733。
黎明更新
Dawn 現在需要 macOS 11 和 iOS 14,且只支援 Metal 2.3 以上版本。請參閱 問題 381117827。
wgpu::Instance
的新 GetWGSLLanguageFeatures()
方法現在已取代 EnumerateWGSLLanguageFeatures()
。請參閱問題 368672124。
下列繫結類型含有 Undefined
值,且繫結版面配置中的預設值已變更。請參閱問題 377820810。
wgpu::BufferBindingType::Undefined
現在是Uniform
wgpu::SamplerBindingType::Undefined
現在是Filtering
wgpu::TextureSampleType::Undefined
現在是Float
wgpu::StorageTextureAccess::Undefined
現已改名為WriteOnly
這份文件僅涵蓋部分重點。請查看完整的修訂版本清單。
WebGPU 新功能
以下是「WebGPU 最新消息」系列文章中涵蓋的所有內容。
Chrome 134
Chrome 133
- 其他 unorm8x4-bgra 和 1 個元件的頂點格式
- 允許使用未定義的值要求不明的限制
- WGSL 對齊規則異動
- WGSL 透過捨棄功能提升效能
- 使用 VideoFrame displaySize 做為外部紋理的值
- 使用 copyExternalImageToTexture 處理非預設方向的圖片
- 改善開發人員體驗
- 使用 featureLevel 啟用相容模式
- 實驗性子群組功能清理
- 淘汰 maxInterStageShaderComponents 限制
- Dawn 更新
Chrome 132
- 紋理檢視畫面用法
- 32 位元浮點紋理混合
- GPUDevice adapterInfo 屬性
- 使用無效格式設定畫布內容時會擲回 JavaScript 錯誤
- 篩選紋理上的取樣器限制
- 擴大子群組實驗
- 改善開發人員體驗
- 支援 16 位元規格化紋理格式的實驗功能
- Dawn 更新
Chrome 131
- WGSL 中的裁剪距離
- GPUCanvasContext getConfiguration()
- 點和線圖元不得有深度偏差
- 針對子群組的內建函式
- 實驗性支援多重繪製間接功能
- 著色器模組編譯選項嚴格數學
- 移除 GPUAdapter requestAdapterInfo()
- Dawn 更新
Chrome 130
Chrome 129
Chrome 128
Chrome 127
Chrome 126
Chrome 125
Chrome 124
Chrome 123
Chrome 122
Chrome 121
- 支援 Android 上的 WebGPU
- 在 Windows 上使用 DXC 而非 FXC 進行著色器編譯
- 在運算和算繪階段中執行時間戳記查詢
- 著色器模組的預設進入點
- 支援使用顯示器-p3 做為 GPUExternalTexture 色彩空間
- 記憶體堆積資訊
- Dawn 更新
Chrome 120
Chrome 119
Chrome 118
Chrome 117
- Unset 頂點緩衝區
- Unset bind group
- 在裝置遺失時,靜默處理非同步管道建立作業的錯誤
- SPIR-V 著色器模組建立功能更新
- 改善開發人員體驗
- 使用自動產生的版面配置快取管道
- Dawn 更新
Chrome 116
- WebCodecs 整合
- GPUAdapter
requestDevice()
傳回的遺失裝置 - 如果呼叫
importExternalTexture()
,請保持影片播放流暢 - 規格相符性
- 改善開發人員體驗
- Dawn 更新