CUDA Academy · Ders

cudaMallocHost ile Sabitlenmiş Bellek

Hızlı DMA için sayfa kilitli arabellekler.

2. ders / 413 adım

cudaMallocHost ile Sabitlenmiş Bellek, 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.

Sabitlenmiş Bellekle Tanışın

Sabitlenmiş bellek, işletim sisteminin taşımayacağı veya takas alanına aktarmayacağına söz verdiği ana bilgisayar belleğidir. Fiziksel adresi sabit olduğundan GPU bu belleği doğrudan okuyabilir.

Sayfa Kilitli Olarak da Adlandırılır

Sayfa kilitli teriminin sabitlenmiş ile eş anlamlı kullanıldığını göreceksiniz. İkisi de aynı anlama gelir: takas işleminin gerçekleşememesi için yerinde kilitlenmiş sayfalar.

Doğru Şekilde Ayırın

cudaMallocHost ile CUDA'dan sabitlenmiş bellek isteyin. Bu işlev, tıpkı herhangi bir C++ dizisi gibi okuyup yazabileceğiniz normal bir ana bilgisayar işaretçisi döndürür.

float* h_data;
cudaMallocHost(&h_data, N * sizeof(float));

Normal Bellek Gibi Kullanın

Döndürülen işaretçi herhangi bir ana bilgisayar arabelleği gibi davranır; bu nedenle CPU kodunuz değişmeden kalır. Belleği daha önce yaptığınız gibi doldurup okuyabilirsiniz.

for (int i = 0; i < N; ++i) h_data[i] = i * 1.0f;

Hazırlama Artık Yok

Sayfalar taşınamadığından sürücü gizli hazırlama kopyasını atlar. GPU doğrudan arabelleğinizden veri çeker ve böylece iki katına çıkan kopya ortadan kalkar.

Daha Hızlı Aktarımlar

Kazanç, gerçek bant genişliğidir. Sabitlenmiş aktarımlar genellikle bağlantının en yüksek hızına yakın çalışır; bazen sayfalanabilir sürümden yaklaşık iki kat daha hızlıdır.

Doğru Şekilde Serbest Bırakın

Sabitlenmiş bellek için kendisine uygun bir serbest bırakma işlemi gerekir. cudaFreeHost kullanın; normal free işlevini kullanmayın, aksi hâlde çökme ve bellek sızıntısı riski oluşur.

cudaFreeHost(h_data);

Bedava Bir Kaynak Değildir

Sabitlenmiş sayfalar takas edilemediğinden gerçek RAM'i işgal eder. Gereğinden fazla bellek sabitlerseniz sistemin geri kalanını kullanılabilir bellekten yoksun bırakırsınız.

Ayırma Daha Yavaştır

Sayfaları kilitlemek işlem gerektirir; bu nedenle cudaMallocHost ile ayırma, malloc ile ayırmadan daha yavaştır. Yeniden ayırmak yerine birçok aktarım boyunca tek bir sabitlenmiş arabelleği yeniden kullanın.

Asıl Süper Güç

Sabitlenmiş bellek hızın ötesinde, gerçekten zaman uyumsuz kopyalamaların önünü açan anahtardır. Bu bellek olmadan cudaMemcpyAsync hiçbir şeyle örtüşemez.

Ne Zaman Kullanılmalı?

Sık aktardığınız veya akışları besleyen arabellekleri sabitleyin. Küçük bir diziyi yalnızca bir kez kopyalayacaksanız normal malloc kullanmanızda sakınca yoktur. 🙂

Hızlı Kontrol

Bir arabelleği cudaMallocHost ile ayırdınız. Nasıl serbest bırakmalısınız?

Özet

cudaMallocHost, ana bilgisayar sayfalarını sabitleyerek GPU'nun bunları doğrudan okumasını sağlar; böylece kopyalamalar hızlanır ve zaman uyumsuz örtüşme mümkün olur. Her zaman cudaFreeHost ile serbest bırakın. 🔒

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

“cudaMallocHost ile Sabitlenmiş Bellek” dersi ücretsiz mi?

Evet — “cudaMallocHost ile Sabitlenmiş Bellek” 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.

“cudaMallocHost ile Sabitlenmiş Bellek” dersinde ne öğreneceğim?

Hızlı DMA için sayfa kilitli arabellekler. 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.

“cudaMallocHost ile Sabitlenmiş Bellek” 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. Sayfalanabilir Bellek Neden Yavaştır
  2. cudaMallocHost ile Sabitlenmiş Bellek
  3. Akışta cudaMemcpyAsync
  4. Çift Arabellekli İşlem Hattı
← CUDA Academy Sayfasına Dön