Yayınlanma tarihi: 26 Şubat 2025
Alt gruplarla makine öğrenimi iş yüklerini iyileştirme
Bir yıl süren geliştirme ve denemelerden sonra, SIMD düzeyinde paralelliği etkinleştiren alt grup WebGPU özelliği kullanıma sunuldu. Bir çalışma grubundaki iş parçacıklarının iletişim kurmasına ve sayıların toplamını hesaplama gibi toplu matematik işlemlerini gerçekleştirmesine olanak tanır ve iş parçacıları arasında veri paylaşımı için verimli bir yöntem sunar. Orijinal teklife ve chromestatus girişine bakın.
Referans olarak, Google Meet'te orijinal deneme sırasında bazı cihazlarda matris-vektor çarpma gölgelendiricileri için alt gruplar paketlenmiş tam sayı nokta çarpımları ile karşılaştırıldığında 2,3-2,9 kat hız artışı görüldü.
"subgroups"
özelliği bir GPUAdapter
'te kullanıma sunulduğunda, WGSL'de alt grup desteği almak için bu özelliğe sahip bir GPUDevice
isteyin. subgroupMinSize
ve subgroupMaxSize
bağdaştırıcısı bilgi değerlerini kontrol etmek yararlı olabilir. Örneğin, belirli boyutta bir alt grup gerektiren kodlanmış bir algoritmanız varsa.
Hem hesaplama hem de parçacık gölgelendirici aşamalarında aşağıdaki yerleşik değerlere erişmek için WGSL kodunuzda bu uzantıyı enable subgroups;
ile açıkça etkinleştirmeniz de gerekir:
subgroup_invocation_id
: Alt gruptaki ileti dizisinin dizini için yerleşik bir değer.subgroup_size
: Alt grup boyutuna erişim için yerleşik bir değer.
Çok sayıda alt grup yerleşik işlevi (örneğin, subgroupAdd()
, subgroupBallot()
, subgroupBroadcast()
, subgroupShuffle()
), alt grup içindeki çağrılar arasında verimli iletişim ve hesaplama sağlar. Bu alt grup işlemleri tek talimat birden fazla iş parçacığı (SIMT) işlemleri olarak sınıflandırılır. Ayrıca, dörtlü çağrıda çalışan dörtlü yerleşik işlevler, dörtlü içindeki veri iletişimini kolaylaştırır.
Hem "shader-f16"
hem de "subgroups"
özelliklerine sahip bir GPUDevice
istediğinizde alt gruplarla f16 değerlerini kullanabilirsiniz.
Aşağıdaki örnek, alt grupları keşfetmek için iyi bir başlangıç noktasıdır: Ara sonuçları iletmek için bellek okumadan veya yazmadan faktöriyel hesaplamak üzere subgroupExclusiveMul()
yerleşik işlevini kullanan bir gölgelendirici gösterir.
Karıştırılabilir olarak kayan nokta filtrelenebilir doku türleri desteğini kaldırın
"float32-blendable"
özelliğiyle 32 bit kayan nokta dokuları karıştırma özelliği kullanıma sunulduğundan, kayan nokta filtrelenebilir doku türleri için karıştırılabilir olarak yanlış destek kaldırıldı. 364987733 numaralı soruna bakın.
Şafak güncellemeleri
Dawn artık macOS 11 ve iOS 14'ü gerektiriyor ve yalnızca Metal 2.3 ve sonraki sürümleri destekliyor. 381117827 numaralı soruna bakın.
wgpu::Instance
için yeni GetWGSLLanguageFeatures()
yöntemi, EnumerateWGSLLanguageFeatures()
yönteminin yerini aldı. 368672124 numaralı soruna bakın.
Aşağıdaki bağlama türleri Undefined
değerine sahiptir ve bağlama düzenindeki varsayılan değerleri değiştirilmiştir. 377820810 numaralı soruna bakın.
wgpu::BufferBindingType::Undefined
,Uniform
olarak değiştirilmiştirwgpu::SamplerBindingType::Undefined
,Filtering
olarak değiştirilmiştirwgpu::TextureSampleType::Undefined
,Float
olarak değiştirilmiştirwgpu::StorageTextureAccess::Undefined
adlı bankanın yeni adıWriteOnly
Bu, önemli noktalardan yalnızca bazılarını kapsar. Kapsamlı commit listesine göz atın.
WebGPU'daki Yenilikler
WebGPU'daki Yenilikler serisinde ele alınan tüm konuların listesi.
Chrome 134
- Alt gruplarla makine öğrenimi iş yüklerini iyileştirme
- Karıştırılabilir olarak kayan nokta filtrelenebilir doku türleri desteğini kaldırın
- Dawn güncellemeleri
Chrome 133
- Ek unorm8x4-bgra ve 1 bileşenli köşe noktası biçimleri
- Bilinmeyen sınırların, tanımlanmamış değerle istenmesine izin ver
- WGSL hizalama kurallarında yapılan değişiklikler
- Atma özelliğiyle WGSL performansında artış
- Harici dokular için VideoFrame displaySize özelliğini kullanma
- copyExternalImageToTexture işlevini kullanarak varsayılan olmayan yönlere sahip resimleri işleme
- Geliştirici deneyimini iyileştirme
- featureLevel ile uyumluluk modunu etkinleştirme
- Deneysel alt grup özelliklerini temizleme
- maxInterStageShaderComponents sınırının desteği sonlandırıldı
- Dawn güncellemeleri
Chrome 132
- Doku görünümü kullanımı
- 32 bit kayan noktalı dokuların harmanlanması
- GPUDevice adapterInfo özelliği
- Tuval bağlamını geçersiz biçimle yapılandırma JavaScript hatası oluşturuyor
- Dokularda filtreleme örnekleyicisi kısıtlamaları
- Genişletilmiş alt grup denemeleri
- Geliştirici deneyimini iyileştirme
- 16 bit normalleştirilmiş doku biçimleri için deneysel destek
- Dawn güncellemeleri
Chrome 131
- WGSL'de mesafeleri kırpma
- GPUCanvasContext getConfiguration()
- Nokta ve çizgi primitiflerinde derinlik önyargısı olmamalıdır
- Alt gruplar için dahili kapsayıcı tarama işlevleri
- Çoklu çizim için deneysel destek
- Shader modülü derleme seçeneği katı matematik
- GPUAdapter requestAdapterInfo() yönteminin kaldırılması
- Dawn güncellemeleri
Chrome 130
- Çift kaynak karıştırma
- Metal'de gölgelendirici derleme süresiyle ilgili iyileştirmeler
- GPUAdapter requestAdapterInfo() desteğinin sonlandırılması
- Dawn güncellemeleri
Chrome 129
Chrome 128
- Alt gruplarla deneme yapma
- Çizgiler ve noktalar için derinlik önyargısı ayarının desteği sonlandırıldı
- preventDefault ise yakalanmayan hata DevTools uyarısını gizleme
- WGSL, önce örneklemeyi enterpolasyona tabi tutar ve ardından
- Dawn güncellemeleri
Chrome 127
- Android'de OpenGL ES için deneysel destek
- GPUAdapter bilgi özelliği
- WebAssembly birlikte çalışabilirlik iyileştirmeleri
- Komut kodlayıcı hataları iyileştirildi
- Dawn güncellemeleri
Chrome 126
- maxTextureArrayLayers sınırını artırma
- Vulkan arka uç için arabellek yükleme optimizasyonu
- Gölgelendirici derleme süresiyle ilgili iyileştirmeler
- Gönderilen komut arabellekleri benzersiz olmalıdır
- Dawn güncellemeleri
Chrome 125
Chrome 124
- Salt okunur ve okuma/yazma depolama alanı dokuları
- Hizmet çalışanları ve paylaşılan çalışanlar desteği
- Yeni adaptör bilgileri özellikleri
- Hata düzeltmeleri
- Dawn güncellemeleri
Chrome 123
- WGSL'de DP4a yerleşik işlevleri desteği
- WGSL'de sınırsız işaretçi parametreleri
- WGSL'de bileşimlerin referansını kaldırmak için söz dizimi
- Şablon ve derinlik özellikleri için ayrı salt okunur durum
- Dawn güncellemeleri
Chrome 122
- Uyumluluk modu ile erişimi genişletin (geliştirme aşamasındaki özellik)
- maxVertexAttributes sınırını artırma
- Dawn güncellemeleri
Chrome 121
- Android'de WebGPU desteği
- Windows'ta gölgelendirici derleme için FXC yerine DXC'yi kullanma
- İşleme ve oluşturma geçişlerinde zaman damgası sorguları
- Gölgelendirici modüllerinin varsayılan giriş noktaları
- GPUExternalTexture renk alanı olarak display-p3 desteği
- Bellek yığınları hakkında bilgi
- Dawn güncellemeleri
Chrome 120
- WGSL'de 16 bitlik kayan nokta değerleri için destek
- Sınırları zorlayın
- Derinlik gölgesi durumundaki değişiklikler
- Adaptör bilgileri güncellemeleri
- Zaman damgası sorgularının kesirli sayılara dönüştürülmesi
- Bahar temizliği özellikleri
Chrome 119
- Filtrelenebilir 32 bit kayan noktalı dokular
- unorm10-10-10-2 köşe noktası biçimi
- rgb10a2uint doku biçimi
- Dawn güncellemeleri
Chrome 118
copyExternalImageToTexture()
'te HTMLImageElement ve ImageData desteği- Okuma/yazma ve salt okuma depolama dokusu için deneysel destek
- Dawn güncellemeleri
Chrome 117
- Köşe noktası arabelleğinin ayarını kaldırma
- Bağlama grubunu kaldırma
- Cihaz kaybolduğunda eşzamansız ardışık düzen oluşturma işlemlerinden kaynaklanan hataları yoksayma
- SPIR-V gölgelendirici modülü oluşturma güncellemeleri
- Geliştirici deneyimini iyileştirme
- Otomatik olarak oluşturulan düzenle ardışık düzenleri önbelleğe alma
- Dawn güncellemeleri
Chrome 116
- WebCodecs entegrasyonu
- Kayıp cihaz, GPUAdapter
requestDevice()
tarafından döndürüldü importExternalTexture()
çağrılırsa video oynatmanın sorunsuz olmasını sağlama- Spesifikasyona uygunluk
- Geliştirici deneyimini iyileştirme
- Dawn güncellemeleri
Chrome 115
- Desteklenen WGSL dil uzantıları
- Direct3D 11 için deneysel destek
- AC güç kaynağında varsayılan olarak ayrı GPU'yu etkinleştirme
- Geliştirici deneyimini iyileştirme
- Dawn güncellemeleri
Chrome 114
- JavaScript'i optimize etme
- Yapılandırılmamış kanvasta getCurrentTexture() InvalidStateError hatası veriyor
- WGSL ile ilgili güncellemeler
- Dawn güncellemeleri
Chrome 113
importExternalTexture()
dosyasında WebCodecs VideoFrame kaynağını kullanma