0Pricing
CUDA Academy · Ders

Warp Ayrışmasını Ortadan Kaldırın

Warp'ları meşgul tutmak için dizinleri yeniden düzenleyin.

Warp Ayrışmasını Ortadan Kaldırın, CoddyKit'te ücretsiz bir CUDA Academy dersidir. Bu, 4 dersinin 2. 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.

Bu dersin bazı bölümleri henüz çevrilmemiş olup İngilizce olarak gösterilmektedir.

Warps Run in Lockstep

A warp is 32 threads that execute the same instruction together. When their paths agree, the hardware runs at full speed.

What Divergence Costs

If threads in a warp take different branches, that is divergence. The hardware runs each path serially, leaving some lanes idle and wasting cycles.

The Naive Reduction Diverges

The simple version uses tid % (2*s) to pick active threads. Active and idle threads interleave inside every warp, so each warp diverges hard.

if (tid % (2 * s) == 0)
  data[tid] += data[tid + s];

Idle Lanes Still Cost

Even though half the threads do nothing, they still occupy the warp. The warp cannot finish until both the active and idle paths are handled.

Reindex by Thread ID

The fix is to map active work to the lowest thread IDs instead of scattered ones. Compute an index from tid and the stride.

int index = 2 * s * tid;
if (index < blockDim.x)
  data[index] += data[index + s];

Why That Helps

Now the busy threads are contiguous: tid 0,1,2,... all work, the rest all rest. Whole warps are either fully active or fully idle.

Fully Idle Warps Are Free

A warp where every lane is idle just retires with no work. There is no per-lane serialization, so the cost of divergence largely disappears.

The Modulo Trap

The hidden villain was the modulo condition. It scattered active threads across each warp, which is exactly what creates divergence.

Same Work, Better Mapping

You did not change the math or the number of additions. You only remapped which thread does each add, and the warps thank you for it.

It Compounds at Scale

Across thousands of blocks and many steps, removing divergence is a real speedup, often a couple of times faster than the naive kernel.

Still One Snag Left

This version reads neighbors that are interleaved in shared memory, which can cause bank conflicts. The next lesson fixes that too.

Quick Check

Think about what causes warp divergence in the naive reduction.

Recap

You killed divergence by giving work to the lowest thread IDs, so warps are all-active or all-idle. Same math, faster reduction. Next: bank conflicts. 🚀

Sıkça Sorulan Sorular

“Warp Ayrışmasını Ortadan Kaldırın” dersi ücretsiz mi?

Evet — “Warp Ayrışmasını Ortadan Kaldırın” 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.

“Warp Ayrışmasını Ortadan Kaldırın” dersinde ne öğreneceğim?

Warp'ları meşgul tutmak için dizinleri yeniden düzenleyin. 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 2. dersidir.

“Warp Ayrışmasını Ortadan Kaldırın” 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