0Pricing
CUDA Academy · Ders

Thrust ile Azaltma, Tarama ve Sıralama

Tek çağrıyla üst düzey temel işlemler

Thrust ile Azaltma, Tarama ve Sıralama, CoddyKit'te ücretsiz bir CUDA Academy dersidir. Bu, 4 dersinin 3. 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.

Zor Algoritmalar, Tek Satır

İndirgeme, tarama ve sıralama işlemlerini elle hızlı yazmak zordur. Thrust, tek bir işlev çağrısıyla ayarlanmış sürümler sunar. 🎁

İndirgeme Tek Bir Değere Ulaşır

thrust::reduce, bir diziyi toplamak gibi, her elemanı tek bir sonuçta birleştirir; tüm işlemi arka planda paralel olarak gerçekleştirir.

int total = thrust::reduce(d.begin(), d.end());

Özel İndirgeme İşleçleri

Reduce varsayılan olarak toplamayı kullanır; ancak bir çarpım, maksimum veya birleşme özelliğine sahip herhangi bir işlemi hesaplamak için bir başlangıç değeri ve ikili işlem geçirebilirsiniz.

int m = thrust::reduce(d.begin(), d.end(),
  0, thrust::maximum<int>());

Tarama, Biriken Toplamı Korur

Tarama veya önek toplamı, her konumdaki kümülatif toplamı üretir. Sıkıştırma, sıralama ve akış ayırmanın temelini oluşturur.

Dahil Edici ve Dışlayıcı

inclusive_scan geçerli öğeyi toplamına dahil eder; exclusive_scan etmez. Doğru olanı seçmek, bir eksik ya da fazla sayma hatasını önler.

thrust::inclusive_scan(d.begin(), d.end(),
  out.begin());

Taramayı Paralelleştirmek Göründüğü Kadar Kolay Değildir

Önek toplamı sıralı bir işlem gibi görünür, ancak Thrust bunu sizin yazmanız gerekmeyen akıllı bir ağaç algoritmasıyla paralel olarak çalıştırır.

Yerinde Sıralama

thrust::sort, bir device_vector'ı hızlı bir GPU radix veya birleştirmeli sıralama kullanarak yerinde sıralar; büyük verilerde CPU sıralamasından çok daha hızlıdır.

thrust::sort(d.begin(), d.end());

Anahtara Göre Sıralama

sort_by_key, bir diziyi sıralar ve ikinci değerler dizisini buna uyacak şekilde yeniden düzenler; kayıtları anahtarlarıyla hizalı tutmak için idealdir.

thrust::sort_by_key(keys.begin(),
  keys.end(), values.begin());

Temel İşlemleri Birleştirme

Gerçek işlem hatları bunları zincirler: dönüştürme, ardından indirgeme veya sıralama, ardından tarama. Her adım ayarlanmış tek bir çağrı olduğundan, siz mantığa odaklanırsınız.

Birleştirilmiş transform_reduce

transform_reduce, tek geçişte eşleme ve toplama yapar; geçici bir dizi oluşturmadan skaler çarpım veya kareler toplamı gibi hesaplamaları gerçekleştirir.

float ss = thrust::transform_reduce(
  d.begin(), d.end(), sq, 0.0f, thrust::plus<float>());

Kütüphanenin İşini Yapmasına İzin Verin

Bu temel işlemler NVIDIA tarafından yoğun biçimde optimize edilmiştir. Öncelikle bunlara başvurmak genellikle özel bir çekirdek yazmaktan daha iyi sonuç verir ve saatlerce çalışmanızı önler.

Hızlı Kontrol

Önek toplamının ne ürettiğini hatırlayın.

Özet

Verileri reduce ile birleştirdiniz, tarama ile kümülatif toplamlar oluşturdunuz, dizileri sıralama ile düzenlediniz ve adımları transform_reduce ile birleştirdiniz. 🏁

Sıkça Sorulan Sorular

“Thrust ile Azaltma, Tarama ve Sıralama” dersi ücretsiz mi?

Evet — “Thrust ile Azaltma, Tarama ve Sıralama” 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.

“Thrust ile Azaltma, Tarama ve Sıralama” dersinde ne öğreneceğim?

Tek çağrıyla üst düzey temel işlemler 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 3. dersidir.

“Thrust ile Azaltma, Tarama ve Sıralama” 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. cuBLAS GEMM'i Doğru Kullanma
  2. Thrust Vektörleri ve Dönüşümleri
  3. Thrust ile Azaltma, Tarama ve Sıralama
  4. Derin Öğrenme için cuDNN
← CUDA Academy Sayfasına Dön