CUDA Academy · Ders

Ana Bilgisayar Tarafını Bağlayın

Ayırın, kopyalayın, başlatın, geri kopyalayın ve serbest bırakın.

2. ders / 413 adım

Ana Bilgisayar Tarafını Bağlayı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.

Ana Bilgisayarın da Bir Görevi Var

Çekirdek matematiği yapar, ancak ana bilgisayar CPU'su her şeyi hazırlar. Görevi ayırmak, içeri kopyalamak, başlatmak, geri kopyalamak ve serbest bırakmaktır. 🧩

İki İşaretçi Kümesi

CPU dizileri için ana bilgisayar işaretçilerini, GPU arabellekleri içinse ayrı aygıt işaretçilerini tutarsınız. Yaygın bir adlandırma alışkanlığı bunlara h_A ve d_A demektir.

float *h_A, *h_B, *h_C;
float *d_A, *d_B, *d_C;

Girdiyi CPU'da Doldurun

Önce verilerinizi normal ana bilgisayar belleğinde hazırlayın. Burada yalnızca h_A ve h_B'yi GPU'nun daha sonra toplayacağı değerlerle başlatırsınız.

for (int i = 0; i < n; i++) {
    h_A[i] = i; h_B[i] = 2 * i;
}

Aygıtta Yer Ayırın

GPU'nun kendi arabelleklerine ihtiyacı vardır; bu nedenle her dizi için cudaMalloc çağrısı yapın. Boyutun bayt cinsinden olduğunu ve count çarpı sizeof(float) olarak hesaplandığını unutmayın.

size_t bytes = n * sizeof(float);
cudaMalloc(&d_A, bytes);

Girdileri Yukarı Kopyalayın

Girdi dizilerinizi cudaMemcpy ve HostToDevice yönüyle GPU'ya taşıyın. Çekirdek yalnızca aygıtta bulunan verileri görebilir.

cudaMemcpy(d_A, h_A, bytes, cudaMemcpyHostToDevice);
cudaMemcpy(d_B, h_B, bytes, cudaMemcpyHostToDevice);

Başlatma Biçimine Karar Verin

Blok başına iş parçacığı sayısını seçin, ardından tüm öğeleri kapsayacak blok sayısını hesaplayın. Yukarı yuvarlamak, her öğenin bir iş parçacığı almasını garanti eder.

int threads = 256;
int blocks = (n + threads - 1) / threads;

Çekirdeği Başlatın

Şimdi çekirdeği üçlü açılı parantez sözdizimiyle ve aygıt işaretçilerinizi geçirerek başlatın. GPU çalışırken bu çağrı hemen geri döner.

vecAdd<<<blocks, threads>>>(d_A, d_B, d_C, n);

Sonucu Aşağı Kopyalayın

Çekirdek tamamlandığında C'yi cudaMemcpyDeviceToHost ile geri getirin. Bu kopya, önce başlatma işleminin tamamlanmasını da bekler.

cudaMemcpy(h_C, d_C, bytes, cudaMemcpyDeviceToHost);

Aygıt Belleğini Serbest Bırakın

GPU belleği otomatik olarak toplanmaz; bu nedenle her arabelleği cudaFree ile serbest bırakın. Bunu atlarsanız süreç sona erene kadar süren bir bellek sızıntısı oluşur.

cudaFree(d_A); cudaFree(d_B); cudaFree(d_C);

Sıra Değişmez

Her zaman aynı sırayı izleyin: yer ayır, içeri kopyala, başlat, geri kopyala, serbest bırak. Adımları değiştirirseniz çekirdek eski veya geçersiz verileri okur.

Ana Bilgisayar Kodu Sade C++'tır

Ana bilgisayar tarafının sıradan C++ ile birkaç cuda çağrısından oluştuğuna dikkat edin. Çekirdek başlatmanın ötesinde özel bir derleyici sihri yoktur.

Hızlı Kontrol

vecAdd çekirdeğini başlatabilmeniz için önce ne gerçekleşmelidir?

Özet

Ana bilgisayar tarafını baştan sona bağladınız: iki işaretçi kümesi, cudaMalloc, içeri kopyalama, başlatma, geri kopyalama ve cudaFree. Her çekirdeği çalıştıran temel hazırlık kodu. ✅

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

“Ana Bilgisayar Tarafını Bağlayın” dersi ücretsiz mi?

Evet — “Ana Bilgisayar Tarafını Bağlayı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.

“Ana Bilgisayar Tarafını Bağlayın” dersinde ne öğreneceğim?

Ayırın, kopyalayın, başlatın, geri kopyalayın ve serbest bırakı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 2. dersidir.

“Ana Bilgisayar Tarafını Bağlayı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. Vektör Toplama Çekirdeği
  2. Ana Bilgisayar Tarafını Bağlayın
  3. Sonucu CPU'da Doğrulayın
  4. İlk Hızlanmanızı Zamanlayın
← CUDA Academy Sayfasına Dön