CUDA Academy · Ders

Hızlanmayı Ölçün

Saf ve döşemeli performansı karşılaştırın.

4. ders / 413 adım

Hızlanmayı Ölçün, 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.

Kazanımı Kanıtlayın

Tile kullanan bir çekirdek oluşturdunuz; peki gerçekten ne kadar hızlı? Ölçüm, tahmini güvenebileceğiniz bir sayıya dönüştürür. 📊

GPU Saatinde Zaman Ölçümü

Çekirdeklerin süresini ölçmek için CUDA olaylarını kullanın. Bunlar GPU akışında yer alır ve işin tam olarak ne zaman başlayıp bittiğini ölçer.

cudaEvent_t start, stop;
cudaEventCreate(&start);
cudaEventCreate(&stop);

Çekirdeği Araya Alın

Başlatmadan önce bir olay, sonra da başka bir olay kaydedin; ardından ölçümün GPU'nun tamamlamasını gerçekten beklemesi için senkronize edin.

cudaEventRecord(start);
matmul<<<g,b>>>(...);
cudaEventRecord(stop);
cudaEventSynchronize(stop);

Geçen Süreyi Okuma

Olaylar arasındaki farkı milisaniye cinsinden isteyin. Bu tek sayı, çekirdeğinizin ölçülen çalışma süresidir.

float ms;
cudaEventElapsedTime(&ms, start, stop);

Önce Isıtın

İlk başlatma tek seferlik kurulum maliyetlerini öder. Başlangıç süresini değil, kararlı durum hızını ölçmek için zamanlamadan önce bir ısıtma çekirdeği çalıştırın.

Birden Çok Çalıştırmayı Ortalayın

Tek bir örnek gürültülüdür. Çekirdeğin süresini birkaç kez ölçün ve kararlı, gerçeğe uygun bir sonuç için ortalamasını alın.

Hızlanmayı Hesaplama

Hızlanma, basitçe saf zamanın tile kullanılan zamana bölünmesidir. 4x değeri, tile kullanılan çekirdeğin dört kat daha hızlı çalıştığı anlamına gelir.

float speedup = naive_ms / tiled_ms;

GFLOPS ile Düşünün

Matris çarpımı yaklaşık 2 * N^3 kayan noktalı işlem yapar. Performansı standart ölçüt olan GFLOPS cinsinden bildirmek için bunu sürenize bölün.

double gflops = (2.0*N*N*N) / (ms * 1e6);

Tile Kullanımı Neden Kazandırır

Hızlanma, global bellek trafiğinin büyük ölçüde azaltılmasından gelir. Paylaşılan bellekten yeniden yararlanmak, yavaş yüklemeleri beklemek yerine çekirdekleri beslemeye devam eder.

Doğruluğu Her Zaman Denetleyin

Hızlı ama yanlış bir sonuç işe yaramaz. Hızlanmayı kutlamadan önce GPU sonucunu bir CPU başvuru sonucuyla karşılaştırın. ✅

Üst Sınırınızı Bilin

Tile kullanılan matris çarpımı bile elle ayarlanmış cuBLAS'ın gerisinde kalır. Aradaki farkı bilmek, ne zaman daha fazla iyileştirme yapacağınızı ve ne zaman bir kütüphane kullanacağınızı gösterir.

Kısa Kontrol

GPU çekirdeklerinin süresini ölçmek için doğru aracı hatırlayın.

Özet

CUDA olaylarıyla süre ölçtünüz, çekirdeği ısıttınız, ortalama aldınız, hızlanmayı ve GFLOPS değerini hesapladınız, doğruluğu denetlediniz. Artık iyileştirmelerinizi kanıtlayabilirsiniz. 🏁

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

“Hızlanmayı Ölçün” dersi ücretsiz mi?

Evet — “Hızlanmayı Ölçü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.

“Hızlanmayı Ölçün” dersinde ne öğreneceğim?

Saf ve döşemeli performansı karşılaştırı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.

“Hızlanmayı Ölçü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. Saf Matris Çarpımı Çekirdeği
  2. İç Çarpımı Döşeyin
  3. Döşeme Aşamaları Üzerinde Döngü
  4. Hızlanmayı Ölçün
← CUDA Academy Sayfasına Dön