CUDA Academy · Ders

Bir CUDA Programının Yaşam Döngüsü

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

4. ders / 413 adım

Bir CUDA Programının Yaşam Döngüsü, CoddyKit'te ücretsiz bir CUDA Academy dersidir. Bu, 4 dersinin 4. 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.

Tekrarlanan Bir Ritim

Neredeyse her CUDA programı aynı beş aşamalı akışı izler. Bu ritmi bir kez öğrenirseniz her GPU kodunu okuyabilirsiniz. 🕺

1. Adım: Ayırma

Öncelikle girdileriniz ve çıktılarınız için aygıt belleği ayırın; çünkü GPU konak arabelleklerini doğrudan kullanamaz. Bunun için cudaMalloc kullanın.

cudaMalloc(&d_a, bytes);
cudaMalloc(&d_b, bytes);

2. Adım: İçeri Kopyalama

Ardından giriş verilerinizi cudaMemcpy ile konaktan aygıta yükleyin. Artık GPU'nun üzerinde çalışacağı kendi kopyası vardır.

cudaMemcpy(d_a, h_a, bytes, cudaMemcpyHostToDevice);

3. Adım: Başlatma

Şimdi çekirdeğinizi çok sayıda iş parçacığında başlatın. Aygıttaki paralel çalışma tam olarak burada gerçekleşir. 🚀

myKernel<<<blocks, threads>>>(d_a, d_b, n);

4. Adım: Geri Kopyalama

Hesaplama tamamlandığında CPU'nun okuyup kullanabilmesi için sonuçları aygıttan konağa indirin.

cudaMemcpy(h_b, d_b, bytes, cudaMemcpyDeviceToHost);

5. Adım: Serbest Bırakma

Son olarak her aygıt arabelleğini cudaFree ile serbest bırakın. Bunu atlarsanız başka çalışmaların kullanabileceği GPU belleği sızar.

cudaFree(d_a);
cudaFree(d_b);

Senkronizasyonu Unutmayın

Başlatmalar eşzamansız olduğundan sonuçları okumadan önce cudaDeviceSynchronize çağırarak GPU'nun gerçekten işi bitirdiğinden emin olun.

cudaDeviceSynchronize();

Kopyalamalar Zaman Alır

Kopyalama aşamaları yavaş PCIe veri yolundan geçer; bu nedenle veri aktarımı çoğu zaman asıl darboğazdır, çekirdeğin kendisi değil.

Arabellekleri Yeniden Kullanın

Bir kez ayırıp arabellekleri yeniden kullanmak, döngünün her yinelemesinde yeni bellek ayırmaktan daha iyidir.

Örüntünün Simetrisi

Simetriye dikkat edin: her cudaMalloc bir cudaFree ile eşleşir ve her içeri kopyalama da sonunda bir dışarı kopyalamayla eşleşir.

Yaşam Döngüsü Tek Nefeste

Bir mantra gibi söyleyin: ayır, kopyala, başlat, geri kopyala, serbest bırak. Bu tek satır, neredeyse her çekirdek programının iskeletidir.

Hızlı Kontrol

Standart CUDA programının yaşam döngüsünü kontrol edelim.

Özet

Beş aşamalı CUDA yaşam döngüsünü öğrendiniz: ayır, içeri kopyala, başlat, geri kopyala, serbest bırak; ayrıca sonuçları okumadan önce senkronizasyon yapmalısınız. 🎉

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

“Bir CUDA Programının Yaşam Döngüsü” dersi ücretsiz mi?

Evet — “Bir CUDA Programının Yaşam Döngüsü” 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.

“Bir CUDA Programının Yaşam Döngüsü” 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 4. dersidir.

“Bir CUDA Programının Yaşam Döngüsü” 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. __global__ İşlev Belirteci
  2. __device__ ve __host__ İşlevleri
  3. Ayrı Adres Alanları
  4. Bir CUDA Programının Yaşam Döngüsü
← CUDA Academy Sayfasına Dön