CUDA Academy · Ders

Azaltma Ağacı Fikri

Her adımda etkin iş parçacıklarını yarıya indirin.

1. ders / 413 adım

Azaltma Ağacı Fikri, CoddyKit'te ücretsiz bir CUDA Academy dersidir. Bu, 4 dersinin 1. 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.

İndirgeme Ne Anlama Gelir

Bir indirgeme, her öğeyi tek bir toplama indirmek gibi, bütün bir diziyi tek bir değere dönüştürür. GPU'daki en yaygın örüntülerden biridir. 🌳

Sıralı Yöntem Yavaştır

CPU'da öğeleri birbiri ardına eklersiniz. Bu, O(n) sıralı adımdır; dolayısıyla bir milyon sayı, art arda gelen bir milyon bağımlı toplama anlamına gelir.

Toplama Birleşmelidir

Püf noktası, toplamanın birleşmeli olmasıdır: (a+b)+c, a+(b+c)'ye eşittir. Bu nedenle çiftleri istediğiniz gruplamayla toplamakta özgürsünüz.

Paralel Çiftleri Toplama

Gruplama serbest olduğundan birçok bağımsız çifti aynı anda toplayabilirsiniz. Her iş parçacığı, tek bir paralel adımda bir çifti işler.

Her Adımda Yarıya İndirme

Bir geçişten sonra öğelerin yarısı ortadan kalkar. Tekrarladıkça etkin sayı yarıya iner: 8'den 4'e, 2'ye ve 1'e.

Logaritmik Derinlik

Yarıya indirme, n yerine log2(n) adımda tamamlanmanızı sağlar. Bir milyon öğe, bir milyon adımda değil yaklaşık 20 adımda tek değere iner.

Ağacı Gözünüzde Canlandırın

Çiftleri çizmek ikili bir ağaç oluşturur. Yapraklar girdilerdir, her seviye düğümleri yarıya indirir ve kök nihai toplamınızdır.

Adım Aralığı Her Geçişte İki Katına Çıkar

Bunu kodlamanın bir yolu şudur: her adımda bir iş parçacığı, adım aralığı uzaklığındaki komşusunu toplar ve bu aralık, veri boyunca her geçişte iki katına çıkar.

for (int s = 1; s < blockDim.x; s *= 2) {
  if (tid % (2 * s) == 0)
    data[tid] += data[tid + s];
  __syncthreads();
}

Adımlar Arasında Senkronizasyon

Her seviye bir öncekinin tamamlanmasına bağlıdır; bu nedenle iş parçacıkları eşlerinin sonucunu okumadan önce bir bariyerde beklemelidir.

İş ile Kapsam Arasındaki Denge

Toplam toplama sayısı, yani iş, yaklaşık n olarak kalır. Ancak en uzun bağımlılık zinciri olan kapsam, log2(n)'e iner. Aynı iş, çok daha az bekleme.

Yalnızca Toplama Değil

Aynı ağaç, her birleşmeli işlem için çalışır: maksimum, minimum, çarpım veya mantıksal AND. İşleci değiştirirsiniz, yapı aynı kalır.

Kısa Kontrol

Bir ağaç indirgemesinin kaç paralel adıma ihtiyaç duyduğunu düşünün.

Özet

İndirgeme ağacını öğrendiniz: çiftleri paralel toplayın, her adımda yarıya indirin ve log2(n) adımda tamamlayın. Bu yapı, herhangi bir birleşmeli işlem için çalışır. Sırada, warp'ları meşgul tutmak var! 🎉

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

“Azaltma Ağacı Fikri” dersi ücretsiz mi?

Evet — “Azaltma Ağacı Fikri” 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.

“Azaltma Ağacı Fikri” dersinde ne öğreneceğim?

Her adımda etkin iş parçacıklarını yarıya indirin. 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 1. dersidir.

“Azaltma Ağacı Fikri” 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. Azaltma Ağacı Fikri
  2. Warp Ayrışmasını Ortadan Kaldırın
  3. Sıralı Adresleme
  4. Çok Bloklu Son Azaltma
← CUDA Academy Sayfasına Dön