İşleme Hattını Tasarlama
Aşamalar, arabellekler ve veri akışı
İşleme Hattını Tasarlama, 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.
Aşamalarla Düşünün
Gerçek bir görüntü işlem hattı, şu aşamalardan oluşan bir zincirdir: yükleme, bulanıklaştırma, keskinleştirme, renk düzeltme ve kaydetme. Her aşama, tek başına değerlendirebileceğiniz tek ve anlaşılır bir dönüşümdür. 🧩
Veri Tek Yönde Akıyor
Pikseller işlem hattında ileri doğru ilerler: her aşama bir önceki aşamanın çıktısını okur ve bir sonraki aşamanın girdisini üretir. Bu tek yönlü veri akışı, tasarımın izlenmesini kolaylaştırır.
Arabellekler Aradaki Veriyi Tutar
İki aşamanın arasında pikselleri geçici olarak tutacağınız bir yere ihtiyacınız vardır. Arabellek, bir çekirdeğin yazdığı ve sonraki çekirdeğin okuduğu bir aygıt dizisidir. Her sınır için bir arabellek planlayın.
float* d_stage1;
cudaMalloc(&d_stage1, width * height * sizeof(float));İki Arabellekle Sırayla Çalışın
Her aşama için yeni bir arabellek ayırmanız nadiren gerekir. İki arabellek arasında sırayla geçiş yapın: birinden okuyun, diğerine yazın, ardından yerlerini değiştirin. İki arabellek, tüm zincir için yeterlidir.
std::swap(d_in, d_out);Şimdilik Her Aşamaya Bir Çekirdek
Her aşama için bir çekirdekle başlayın. Bu, en anlaşılır ve doğrulanması en kolay tasarımdır. Her aşama doğru çalıştığında daha sonra aşamaları birleştirebilirsiniz.
Pikselleri İş Parçacıklarına Eşleyin
Doğal eşleme, piksel başına bir iş parçacığı kullanmaktır. 2B bir ızgara genişliği ve yüksekliği kapsar; böylece her iş parçacığı işlenecek tam olarak bir (x, y) konumundan sorumlu olur.
int x = blockIdx.x * blockDim.x + threadIdx.x;
int y = blockIdx.y * blockDim.y + threadIdx.y;Satır Adımıyla Dizinleyin
Görüntüler satır satır saklanır. Her iş parçacığının doğru pikseli okuması için (x, y) değerini satır öncelikli dizinlemeyle düz bir uzaklığa dönüştürün.
int idx = y * width + x;Görüntü Kenarlarını Koruyun
Izgaranız yukarı yuvarlandığı için bazı iş parçacıkları görüntünün dışına çıkar. Basit bir sınır denetimi, bu iş parçacıklarının dokunmamaları gereken belleğe erişmesini önler.
if (x >= width || y >= height) return;2B Blok Biçimi Seçin
16x16 veya 32x8 gibi bir blok iyi kapsama ve warp dostu satırlar sağlar. Mümkün olduğunda görüntüyü düzgün bölen bir 2B blok biçimi seçin.
dim3 block(16, 16);
dim3 grid((width+15)/16, (height+15)/16);Bir Kez Ayırın, Sıkça Yeniden Kullanın
Aygıt belleği ayırmak maliyetlidir; bu nedenle bunu döngüden önce bir kez yapın. Her seferinde malloc ve free kullanmak yerine aynı arabellekleri her kare için yeniden kullanın.
Kodlamadan Önce Taslak Çizin
Önce aşamaları, arabelleklerini ve aralarındaki okları çizin. Açık bir veri akışı diyagramı, herhangi bir çekirdek çalışmadan çok önce tasarım hatalarını ortaya çıkarır. ✏️
Hızlı Kontrol
Bir aşama zinciriniz var. Her aşama için yeni bir arabellek ayırmaktan nasıl kaçınırsınız?
Özet
Bir işlem hattını arabelleklerle birleştirilmiş tek yönlü aşamalar olarak tasarladınız, 2B ızgarayla piksel başına bir iş parçacığı eşlediniz ve arabellekler arasında sırayla geçiş yapmayı ve önce akışın taslağını çizmeyi öğrendiniz. 🎯
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
“İşleme Hattını Tasarlama” dersi ücretsiz mi?
Evet — “İşleme Hattını Tasarlama” 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.
“İşleme Hattını Tasarlama” dersinde ne öğreneceğim?
Aşamalar, arabellekler ve veri akışı 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.
“İşleme Hattını Tasarlama” 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
- İşleme Hattını Tasarlama
- Süzgeçleri Tek Çekirdekte Birleştirme
- Büyük Görüntüler için Döşemeleri Akışa Alma
- Profil Oluştur, İyileştir, Yayınla