İşbirlikçi Gruplar
Esnek eşitleme kapsamları için modern API.
İşbirlikçi Gruplar, CoddyKit'te ücretsiz bir CUDA Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, CUDA Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. CUDA Academy kursu toplamda 4 dersten oluşur.
Daha Temiz Bir Eşzamanlama API'si
Ham maskeler ve içsel işlevler işe yarar, ancak kullanımları zahmetlidir. İş birliğine dayalı gruplar, iş parçacıklarını adlandırabileceğiniz, boyutlandırabileceğiniz ve açıkça eşzamanlayabileceğiniz nesnelere sarar.
#include <cooperative_groups.h>
namespace cg = cooperative_groups;Tüm Bloğu Alın
İşe iş parçacığı bloğunuza bir başvuru alarak başlayın. this_thread_block, syncthreads gibi eşzamanlayabileceğiniz, ancak nesne olarak sunulan bir grup döndürür.
cg::thread_block block = cg::this_thread_block();Grup Üzerinden Eşzamanlayın
Blok üzerinde sync çağrısı yapmak modern engeldir. syncthreads ile tam olarak aynı işi yapar; ancak kullanmak istediğiniz grubun yöntemi olarak daha anlaşılır görünür.
block.sync();Bir Warp Karosu Ayırın
Bir bloğu sabit boyutlu karolara bölebilirsiniz. 32 şeritli bir karo, ham karıştırma maskeleri yerine anlaşılır yöntemlere sahip, warp boyutunda bir grup verir.
auto warp = cg::tiled_partition<32>(block);Yöntemler Maskelerin Yerini Alır
Karolu bir grup, maske bağımsız değişkeni olmadan shfl_down ve benzeri işlevleri sunar. Grup üyelerini zaten bildiği için API kısa ve güvenli kalır.
val += warp.shfl_down(val, offset);Konumunuzu Bilin
Her grup üyelerini ve sizin konumunuzu sunar. thread_rank, grup içindeki dizininizi verir; size ise grupta kaç iş parçacığı bulunduğunu döndürür.
int rank = warp.thread_rank();Daha Küçük Karolar da Olabilir
Karoların genişliği 32 olmak zorunda değildir. 8 veya 16 boyutunda bir tiled_partition, verileriniz doğal olarak küçük kümelerde gruplanıyorsa kullanışlı olan alt-demet grupları oluşturur.
Grup Düzeyinde Toplamalar
Kitaplık, kullanıma hazır toplu işlemler sunar. Bir grubun reduce işlemi, tek bir çağrıyla karoyu toplar ve daha önce elle yazdığınız uzaklık döngüsünü gizler.
int total = cg::reduce(warp, val, cg::plus<int>());Eşzamanlanan Izgaralar
En kapsamlı grup ızgara grubudur. İşbirlikli başlatmayla her blok tek bir bariyerde eşzamanlanabilir; normal bir çekirdek bunu yapamaz.
İşbirlikli Başlatma Gerekli
Izgara genelinde eşzamanlama yalnızca çekirdeği cudaLaunchCooperativeKernel ile başlatırsanız ve GPU bunu destekliyorsa çalışır. Normal bir başlatma buna izin vermez.
Neden Kullanmalı?
İşbirlikli gruplar, warp kodunu okunabilir ve taşınabilir hâle getirir: elle yönetilen maskeler yoktur, kapsamlar nettir ve ne demek istediğinize uygun, yeniden kullanılabilir toplu işlemler sunar.
Kısa Kontrol
Bir bloktan warp boyutunda işbirlikli bir grubu nasıl oluşturduğunuzu hatırlayın.
Özet
İşbirlikli gruplar maskeleri adlandırılmış nesnelere dönüştürür: bir bloğu döşeyebilir, reduce çağırabilir, hatta tüm ızgarayı eşzamanlayabilirsiniz. Artık warp düzeyinde CUDA kullanımı sizin elinizde. ✨
Yapay zeka eğitmeniyle C++ öğren — ücretsiz
Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.
- Kurslar
- 30
- Dersler
- 120
Sıkça Sorulan Sorular
“İşbirlikçi Gruplar” dersi ücretsiz mi?
Evet — “İşbirlikçi Gruplar” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve CUDA Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. CUDA Academy kursu toplamda 4 dersten oluşur.
“İşbirlikçi Gruplar” dersinde ne öğreneceğim?
Esnek eşitleme kapsamları için modern API. CUDA Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
CUDA Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te CUDA Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.
“İşbirlikçi Gruplar” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu CUDA Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her CUDA Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Warp'lar, Şeritler ve Maskeler
- Azaltmalar için __shfl_down_sync
- Oylama ve Oy İşlevleri
- İşbirlikçi Gruplar