0Pricing
Mojo Academy · درس

تحديد معاملات البلاطة والعرض

اعرض عناصر قابلة للضبط كمعاملات

تحديد معاملات البلاطة والعرض درس مجاني في Mojo Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Mojo Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Mojo Academy 4 دروس في المجموع.

بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.

Knobs Must Be Parameters

To let autotuning vary a value, it has to be a compile-time parameter, not a plain runtime variable. Parameters can be specialized per candidate.

Tile Size as a Knob

A tile size controls how big a block of work you process at once. Make it a parameter and the tuner can try 16, 32, 64, and more.

fn process[tile: Int]():
    pass

Width as a Knob

SIMD width sets how many numbers you crunch per instruction. Different chips favor different widths, so expose it as a parameter too.

fn run[width: Int]():
    pass

Declaring the Parameters

Put tunable values inside the function's bracket list. Each entry becomes a knob the autotuner is allowed to change.

fn kernel[tile: Int, width: Int]():
    pass

Use Them Inside

Inside the body, treat the parameter like a constant. The compiler bakes its value in for each specialized version it builds.

fn step[tile: Int]() -> Int:
    return tile * 2

Sensible Ranges

Pick candidate values that make hardware sense: powers of two like 8, 16, 32 for width, and cache-friendly blocks for tile size.

Keep Knobs Independent

Each knob should mean one clear thing. Tangled parameters make the search confusing and the results hard to explain.

Validate with Constraints

Use a constraint to reject impossible combinations early, so the tuner never wastes time building candidates that cannot work.

constrained[width > 0]()

Defaults Still Help

Give each parameter a reasonable default. Code stays usable without tuning, and the search starts from a known-good baseline.

fn kernel[tile: Int = 32]():
    pass

More Knobs, Bigger Space

Every extra parameter multiplies the candidates to test. Expose the few knobs that truly matter, not every number you can find.

Now It Is Tunable

With tile and width as parameters, your kernel is ready: the autotuner has clear dials to turn while searching for peak throughput. 🔧

Quick Check

Confirm what makes a value tunable by the autotuner.

Recap

You exposed tile and width as compile-time parameters, added a constraint and defaults, and gave the autotuner clean dials to turn. 🎯

الأسئلة الشائعة

هل درس «تحديد معاملات البلاطة والعرض» مجاني؟

نعم — نص درس «تحديد معاملات البلاطة والعرض» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Mojo Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Mojo Academy 4 دروس في المجموع.

ماذا ستتعلم في «تحديد معاملات البلاطة والعرض»؟

اعرض عناصر قابلة للضبط كمعاملات تتمرن على Mojo Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Mojo Academy؟

لا تُشترط خبرة سابقة. Mojo Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «تحديد معاملات البلاطة والعرض»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Mojo Academy هذا؟

نعم. كل درس في Mojo Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. ما الذي يحلّه الضبط التلقائي
  2. تحديد معاملات البلاطة والعرض
  3. البحث في فضاء المعاملات
  4. تثبيت أفضل إعداد
← العودة إلى Mojo Academy