Параметризация тайла и ширины
Представляйте настраиваемые параметры как параметры функции.
«Параметризация тайла и ширины» — бесплатный урок 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 включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Какие задачи решает автотюнинг
- Параметризация тайла и ширины
- Поиск в пространстве параметров
- Фиксация лучшей конфигурации