تحديد معاملات البلاطة والعرض
اعرض عناصر قابلة للضبط كمعاملات
تحديد معاملات البلاطة والعرض درس مجاني في 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]():
passWidth 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]():
passDeclaring 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]():
passUse 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 * 2Sensible 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]():
passMore 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 يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- ما الذي يحلّه الضبط التلقائي
- تحديد معاملات البلاطة والعرض
- البحث في فضاء المعاملات
- تثبيت أفضل إعداد