إعادة كتابة المسار الساخن في Mojo
حوّل عنق الزجاجة باستخدام fn وSIMD
إعادة كتابة المسار الساخن في Mojo درس مجاني في Mojo Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Mojo Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Mojo Academy 4 دروس في المجموع.
انقل المسار الساخن
أعد الآن بناء حلقة Python البطيئة في Mojo. ستحافظ على المنطق نفسه، لكنك ستحصل على أداء حقيقي بفضل الشيفرة المعيّنة الأنواع والمجمّعة. 🔧
استخدم fn
اكتب النواة كدالة fn لا def. تتيح الأنواع المطلوبة للمصرّف إنشاء شيفرة آلة محكمة لحلقتك الساخنة.
fn sum_squares(data: List[Float64]) -> Float64:
var total: Float64 = 0.0
return totalحدّد نوع كل قيمة
امنح كل قيمة نوعًا محددًا. ومع غياب التخمين الديناميكي، يستطيع Mojo تحسين الحسابات بالطريقة التي تفعلها C.
var total: Float64 = 0.0
var n: Int = len(data)انقل جسم الحلقة
انسخ الحسابات الداخلية خطوةً خطوة. حافظ على العمليات نفسها حتى تتطابق النتائج مع Python تمامًا قبل إجراء أي تحسين.
for i in range(len(data)):
total += data[i] * data[i]تحقق من الصحة أولًا
شغّل إصدار Mojo على الإدخال نفسه وقارن النتائج. تأتي الصحة قبل السرعة، إذ لا يفيد أحدًا ناتج سريع خاطئ.
أدخل SIMD
بعد التأكد من الصحة، حوّل الشيفرة إلى متجهات. تعبّئ قيمة SIMD عدة أرقام، بحيث تعالج تعليمة واحدة عناصر كثيرة دفعةً واحدة.
alias width = 4
var acc = SIMD[DType.float64, width](0)عالج البيانات في كتل متجهية
تقدم عبر البيانات في مجموعات تساوي العرض الخاص بـ SIMD. تعالج كل دورة كتلة كاملة بدلًا من عنصر واحد منفرد.
for i in range(0, n, width):
var chunk = data.load[width](i)
acc += chunk * chunkاختزل المتجه
بعد الحلقة، اطوِ مجمّع SIMD إلى رقم واحد باستخدام reduce. وبذلك تُدمج كل القنوات في إجمالي واحد.
var total = acc.reduce_add()عالج الذيل
إذا لم يكن الطول من مضاعفات العرض، فستتبقى بضعة عناصر. تضيف حلقة الذيل هذه العناصر حتى لا يسقط أي منها.
for i in range(n - (n % width), n):
total += data[i] * data[i]أعد التحقق من النتيجة
قارن خرج الشيفرة المتجهية بخط أساس Python مجددًا. يؤكد تطابق النتائج أن إعادة كتابة SIMD حافظت على صحة الحسابات.
قِس زمن النواة الجديدة
قِس نواة Mojo على البيانات نفسها. وحتى باستخدام خيط واحد، تتفوق النواة المعيّنة الأنواع والمتجهية عادةً على حلقة Python بفارق كبير.
تحقق سريع
اختر الترتيب الصحيح لإعادة كتابة مسار ساخن في Mojo.
مراجعة
نقلت الحلقة إلى fn معيّنة الأنواع، وتحققت من الصحة، ثم استخدمت SIMD وعالجت الذيل. أصبح المسار الساخن الآن شيفرة Mojo سريعة. 🎯
تعلم Mojo مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 30
- الدروس
- 120
الأسئلة الشائعة
هل درس «إعادة كتابة المسار الساخن في Mojo» مجاني؟
نعم — نص درس «إعادة كتابة المسار الساخن في Mojo» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Mojo Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Mojo Academy 4 دروس في المجموع.
ماذا ستتعلم في «إعادة كتابة المسار الساخن في Mojo»؟
حوّل عنق الزجاجة باستخدام fn وSIMD تتمرن على Mojo Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Mojo Academy؟
لا تُشترط خبرة سابقة. Mojo Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «إعادة كتابة المسار الساخن في Mojo»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Mojo Academy هذا؟
نعم. كل درس في Mojo Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- تحليل أداء خط الأساس في Python
- إعادة كتابة المسار الساخن في Mojo
- توازي النواة وضبطها
- إصدار المشروع المُسرَّع