CUDA Academy · Ders

Oylama ve Oy İşlevleri

Bir warp genelinde koşul ifadelerini yoklayın.

3. ders / 413 adım

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. ✨

Başlamak ücretsiz

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

  1. Warp'lar, Şeritler ve Maskeler
  2. Azaltmalar için __shfl_down_sync
  3. Oylama ve Oy İşlevleri
  4. İşbirlikçi Gruplar
← CUDA Academy Sayfasına Dön