Oylama ve Oy İşlevleri
Bir warp genelinde koşul ifadelerini yoklayın.
Oylama ve Oy İşlevleri, CoddyKit'te ücretsiz bir CUDA Academy dersidir. Bu, 4 dersinin 3. 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.
Şeritler Oy Kullanabilir
Veri taşımaya ek olarak bir iş parçacığı demeti, evet-hayır sorularını birlikte yanıtlayabilir. Oy içsel işlevleri, her şeridin doğru-yanlış koşulunu tek ve ucuz bir adımda paylaşmasını sağlar.
ballot_sync ile Tanışın
En esnek oy işlevi ballot_sync işlev39idir. Her i şeridinin koşulu doğru olduğunda i bitinin 1 olduğu 32 bitlik bir sayı döndürür.
unsigned bits = __ballot_sync(mask, pred);Şerit Başına Bir Bit
Döndürülen tamsayı, demetin küçük bir bit eşlemidir. i bitini okumak, i şeridinin doğru oyu verip vermediğini gösterir; tüm bilgiler tek bir yazmaçta paketlenmiştir.
Doğruları Sayın
Kaç şeridin evet dediğini mi bilmek istiyorsunuz? Oy sonucundaki bitleri sayın. popc, ayarlanmış bitleri sayarak demetteki doğru oyların sayısını anında verir.
int yes = __popc(__ballot_sync(mask, pred));Tümü veya Herhangi Biri
İki kısayol yaygın soruları yanıtlar. all_sync, yalnızca her şerit aynı fikirdeyse doğru döndürür; any_sync ise en az bir şerit aynı fikirdeyse doğru döndürür.
bool every = __all_sync(mask, pred);Any, En Az Bir Demektir
Erken çıkışlar için any_sync kullanın: herhangi bir şerit eşleşme bulduysa tüm demet, şeritleri tek tek taramadan birlikte tepki verebilir.
bool found = __any_sync(mask, pred);Akış Sıkıştırma
Oy işlemi sıkıştırmayı mümkün kılar: her şerit kendi öğesini tutup tutmayacağına karar verir, oy kullanır ve bit eşlemi, şeritlere paketlenmiş çıktı dizisine nereye yazacaklarını gösterir.
Yuvamı Bulma
Bir şerit kendi değerini yerleştirmek için kendi konumunun altındaki doğru bitleri sayar. Oy sonucundan elde edilen bu önek sayısı, sıkıştırılmış sonuçtaki dizinidir.
int slot = __popc(bits & ((1u << lane) - 1));Bir Lider Şerit Seçin
Bazen paylaşılan işi tek bir şerit yapmalıdır. ffs ile bulunan oy sonucundaki en düşük ayarlanmış bit, demetin üzerinde anlaşabileceği doğal bir liderdir.
Her Zaman Maske Geçirin
Karıştırmalarda olduğu gibi oy içsel işlevleri de etkin bir maske alır. Etkin olmayan şeritler 0 biti katkısında bulunur; bu nedenle bulunmayan şeritleri saymamak için doğru kümeyi geçirin.
Ucuz Eşgüdüm
Oy işlemleri tek bir yönergeye mal olur ve belleğe dokunmaz. Bir demetin kararları, atomik işlemlerden veya paylaşılan bellek bayraklarından çok daha ucuza eşgüdümlemesini sağlar.
Hızlı Kontrol
ballot_sync işlevinin her şeride ne döndürdüğünü hatırlayın.
Özet
Bir demeti ballot ve oy kullanarak sorguladınız: doğruları sayın, tümünü veya herhangi birini denetleyin ve akışları ucuza sıkıştırın. Sırada: esnek eşzamanlama için iş birliğine dayalı gruplar. ✨
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
“Oylama ve Oy İşlevleri” dersi ücretsiz mi?
Evet — “Oylama ve Oy İşlevleri” 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.
“Oylama ve Oy İşlevleri” dersinde ne öğreneceğim?
Bir warp genelinde koşul ifadelerini yoklayın. 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 3. dersidir.
“Oylama ve Oy İşlevleri” 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