0Pricing
Mojo Academy · Ders

Bir Döngüyü Vektörleştirme

Skaler bir döngüyü vektör işine dönüştürün.

Bir Döngüyü Vektörleştirme, CoddyKit'te ücretsiz bir Mojo 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, Mojo Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Mojo Academy kursu toplamda 4 dersten oluşur.

Skaler Döngü

Sıradan bir döngü her adımda tek bir öğeye dokunur. Anlaşılırdır, ancak CPU'nuzun vektör şeritlerinin çoğunu kullanılmadan bırakır.

for i in range(n):
    out[i] = a[i] + b[i]

Vektör Fikri

Vektörleştirme, her döngü adımının tek bir öğe yerine bütün bir öğe paketini işlemesi demektir. Yineleme başına daha fazla iş yaparsınız.

Bir chunk Yükleyin

Tek bir değer yerine birkaç değeri aynı anda bir SIMD vektörüne yüklersiniz. Bu tek yükleme, verilerinizin bir dilimini alır.

var chunk = a.load[width=4](i)

Bütün chunk'ı Hesaplayın

Her iki chunk da SIMD biçimindeyken onları tek bir öğe bazında adımla toplayın. Matematik her şeridi aynı anda kapsar.

var sum = a.load[width=4](i) + b.load[width=4](i)

Sonucu Kaydedin

Vektör kaydetme işlemiyle tüm SIMD sonucunu tek hamlede geri yazın. Tek bir yazma, hesapladığınız tüm şeritleri kapsar.

out.store[width=4](i, sum)

Genişlik Kadar İlerleyin

Vektörleştirilmiş döngü birer birer değil, genişlik kadar ilerler. Her geçiş tam bir öğe paketini kapsar.

for i in range(0, n, 4):
    pass

Mojo Sürsün

Mojo'nun vectorize yardımcısı, bir kapanışı aralık boyunca vektör adımlarıyla çalıştırır ve gerekli kayıt işlemlerini sizin için yapar.

from algorithm import vectorize

Bir vectorize Kapanışı

Tek bir chunk'ı işleyen küçük, parametreli bir işlev yazarsınız. Mojo, aralık boyunca ilerlerken onu doğru genişlikle çağırır.

fn work[w: Int](i: Int):
    out.store[width=w](i, a.load[width=w](i) + b.load[width=w](i))

Vectorize'ı Çalıştırın

vectorize'ı chunk işleviniz, genişlik ve toplam boyutla çağırın. Döngüyü ve artakalanı sizin için yönetir.

vectorize[work, 4](n)

Aynı Sonuç, Çok Daha Hızlı

Vektörleştirilmiş döngü skaler döngüyle aynı çıktıyı verir, ancak veriler içinde büyük adımlarla ilerlediği için daha çabuk tamamlanır.

Doğrulamak İçin Ölçün

Her iki sürümü de mutlaka süre ölçerek karşılaştırın. Vektörleştirme genellikle büyük kazanım sağlar, ancak bir karşılaştırmalı test gerçek verilerinizdeki artışı kanıtlar.

Hızlı Kontrol

Adım başına bir öğe işleyen bir döngüyü SIMD yükleme ve kaydetme işlemleriyle değiştiriyorsunuz. Döngü nasıl ilerlemelidir?

Özet

Vektörleştirme, bütün chunk'ları yükleyip kaydeder, genişlik kadar ilerler ve tarama ile artakalanı vectorize'ın yönetmesine izin verir; böylece aynı sonuç çok daha hızlı elde edilir. 🚀

Sıkça Sorulan Sorular

“Bir Döngüyü Vektörleştirme” dersi ücretsiz mi?

Evet — “Bir Döngüyü Vektörleştirme” 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 Mojo Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Mojo Academy kursu toplamda 4 dersten oluşur.

“Bir Döngüyü Vektörleştirme” dersinde ne öğreneceğim?

Skaler bir döngüyü vektör işine dönüştürün. Mojo 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.

Mojo Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Mojo 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 Döngüyü Vektörleştirme” 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 Mojo Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Mojo 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. SIMD Türüyle Tanışın
  2. Öğe Bazında SIMD Matematiği
  3. SIMD Genişliği Seçme
  4. Bir Döngüyü Vektörleştirme
← Mojo Academy Sayfasına Dön