CUDA Academy · Ders

Klasik Dizin Formülü

blockIdx.x * blockDim.x + threadIdx.x.

1. ders / 413 adım

Klasik Dizin Formülü, 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.

Bir İş Parçacığı, Bir Öğe

Bir CUDA çekirdeğinin temel amacı, her iş parçacığının verilerin bir bölümünü işlemesidir. Bunu yapmak için her iş parçacığının benzersiz bir global dizine ihtiyacı vardır.

Yerel Kimlikler Neden Yeterli Değil

Bir blok içinde threadIdx.x, yalnızca 0'dan blockDim eksi bire kadar sayar. Birçok blok aynı küçük sayıları yeniden kullandığından bu, son dizininiz olamaz.

Bloklar Yan Yana Durur

Izgarayı uç uca yerleştirilmiş bloklar olarak düşünün. Her blok dizinin bitişik bir bölümünden sorumludur ve blockIdx.x hangi bölümde olduğunuzu belirtir.

Bir Blok Ne Kadar Geniştir

blockDim.x, blok başına iş parçığı sayısıdır. Her bölümün genişliğini belirtir; bu nedenle blok ofsetinizi doğru konuma ölçeklendirir.

Klasik Formül

Bu üçünü birleştirin: önceki blokları atlayın, ardından bu blok içindeki konumunuzu ekleyin. Bu tek satır her iş parçığına benzersiz bir dizin verir.

int i = blockIdx.x * blockDim.x + threadIdx.x;

Adım Adım İnceleme

Blok başına 4 iş parçığı olduğunda, 0. blok 0'dan 3'e, 1. blok 4'ten 7'ye, 2. blok ise 8'den 11'e kadar olan öğeleri kapsar. Ofsetler hiçbir zaman çakışmaz.

Somut Bir Örnek

blockDim değeri 256 olan 3. bloktaki 2 numaralı iş parçığı, 3 çarpı 256 artı 2 konumuna, yani 770'e denk gelir. Bu, veriler içindeki global konumudur.

// blockIdx.x=3, blockDim.x=256, threadIdx.x=2
int i = 3 * 256 + 2; // i == 770

Dizini Kullanma

i değerini elde ettiğinizde onu dizi indisi olarak kullanırsınız. Her iş parçığı, çakışma olmadan yalnızca kendi öğesini okur ve yazar.

out[i] = a[i] + b[i];

Bire Bir Eşleşir

n iş parçığı başlatırsanız formül, 0'dan n eksi 1'e kadar olan her değeri tam olarak bir kez üretir. Bu, dizinin kusursuz bir bire bir kapsanmasını sağlar.

Sıra Önemlidir

Her zaman toplamadan önce çarpın. blockIdx.x * blockDim.x bölümünüzün başlangıcıdır; threadIdx.x ise bölüm içindeki adımdır.

Tek Boyutun Ötesi

Aynı fikir .y ve .z üyeleri kullanılarak 2B ve 3B'ye de genişletilebilir; ancak düz diziler için .x formülü yeterlidir. 🚀

Hızlı Denetim

Bir iş parçacığının global dizinini hesaplayın.

Özet

Her çekirdeğin kullandığı formülü öğrendiniz: blockIdx.x * blockDim.x + threadIdx.x. Bu formül her iş parçığına dizinizde benzersiz bir yer verir. 🎉

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

“Klasik Dizin Formülü” dersi ücretsiz mi?

Evet — “Klasik Dizin Formülü” 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.

“Klasik Dizin Formülü” dersinde ne öğreneceğim?

blockIdx.x * blockDim.x + threadIdx.x. 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.

“Klasik Dizin Formülü” 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. Klasik Dizin Formülü
  2. Aralık Dışına Çıkmaya Karşı Koruma
  3. Blok Sayısını Yukarı Yuvarlayın
  4. Izgara Adımlı Döngüler
← CUDA Academy Sayfasına Dön