Yoğun Yolu Mojo ile Yeniden Yazma
Darboğazı fn ve SIMD ile dönüştürün.
Yoğun Yolu Mojo ile Yeniden Yazma, CoddyKit'te ücretsiz bir Mojo 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, 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.
Yoğun Yolu Taşıyın
Şimdi o yavaş Python döngüsünü alın ve Mojo'da yeniden oluşturun. Aynı mantığı korurken tür belirtilmiş, derlenmiş koddan gerçek performans kazanırsınız. 🔧
fn Kullanımına Başvurun
Çekirdeği def yerine fn işlevi olarak yazın. Zorunlu türler, derleyicinin yoğun döngünüz için sıkı makine kodu üretmesini sağlar.
fn sum_squares(data: List[Float64]) -> Float64:
var total: Float64 = 0.0
return totalHer Türü Belirtin
Her değere somut bir tür verin. Artık dinamik tahmin gerekmediğinde Mojo, aritmetiği C'nin yapacağı şekilde optimize edebilir.
var total: Float64 = 0.0
var n: Int = len(data)Döngü Gövdesini Taşıyın
İç matematiği adım adım kopyalayın. Herhangi bir optimizasyona başlamadan önce sonuçların Python ile tam olarak eşleşmesi için aynı işlemleri koruyun.
for i in range(len(data)):
total += data[i] * data[i]Önce Doğruluğu Kontrol Edin
Mojo sürümünü aynı girdi üzerinde çalıştırıp karşılaştırın. Doğruluk hızdan önce gelir; çünkü hızlı ama yanlış bir yanıt hiç kimseye yardımcı olmaz.
SIMD'yi Ekleyin
Doğru olduğundan emin olduktan sonra vektörleştirin. Bir SIMD değeri birkaç sayıyı bir araya getirir; böylece tek bir komut aynı anda birçok öğeyi işler.
alias width = 4
var acc = SIMD[DType.float64, width](0)Vektör Parçalarıyla İşleyin
Veri üzerinde SIMD genişliğine eşit gruplar halinde ilerleyin. Her geçiş, tek bir öğe yerine bütün bir parçayı işler.
for i in range(0, n, width):
var chunk = data.load[width](i)
acc += chunk * chunkVektörü İndirgeme İşlemi Uygulayın
Döngüden sonra SIMD biriktiricisini bir reduce ile tek sayıya indirin. Böylece her şerit tek bir toplamda birleştirilir.
var total = acc.reduce_add()Kalan Kısmı İşleyin
Uzunluk genişliğin tam katı değilse birkaç öğe geride kalır. Küçük bir kalan döngüsü bunları ekleyerek hiçbir şeyin atlanmamasını sağlar.
for i in range(n - (n % width), n):
total += data[i] * data[i]Sonucu Yeniden Kontrol Edin
Vektörleştirilmiş çıktıyı Python temel ölçümüyle yeniden karşılaştırın. Eşleşen sonuçlar, SIMD ile yeniden yazımınızın matematiği doğru koruduğunu doğrular.
Yeni Çekirdeği Zamanlayın
Mojo çekirdeğini aynı veriler üzerinde ölçün. Tek iş parçacığında bile tür belirtilmiş ve vektörleştirilmiş bir kernel, genellikle Python döngüsünü büyük farkla geçer.
Hızlı Kontrol
Yoğun bir yolu Mojo'da yeniden yazmak için doğru sırayı seçin.
Özet
Döngüyü tür belirtilmiş bir fn'e taşıdınız, doğruluğu kontrol ettiniz, ardından SIMD ile vektörleştirip kalan kısmı işlediniz. Yoğun yol artık hızlı Mojo kodu. 🎯
Yapay zeka eğitmeniyle Mojo öğ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
“Yoğun Yolu Mojo ile Yeniden Yazma” dersi ücretsiz mi?
Evet — “Yoğun Yolu Mojo ile Yeniden Yazma” 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.
“Yoğun Yolu Mojo ile Yeniden Yazma” dersinde ne öğreneceğim?
Darboğazı fn ve SIMD ile 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 2. dersidir.
“Yoğun Yolu Mojo ile Yeniden Yazma” 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
- Python Temelini Profilleme
- Yoğun Yolu Mojo ile Yeniden Yazma
- Çekirdeği Paralelleştirme ve Ayarlama
- Hızlandırılmış Projeyi Dağıtma