0Pricing
Mojo Academy · Aula

Parametrizando bloco e largura

Exponha controles ajustáveis como parâmetros.

Parametrizando bloco e largura é uma aula grátis de Mojo Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Mojo Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Mojo Academy inclui 4 aulas no total.

Partes desta aula ainda não foram traduzidas e aparecem em inglês.

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. 🎯

Perguntas Frequentes

A aula “Parametrizando bloco e largura” é grátis?

Sim — o texto completo de “Parametrizando bloco e largura” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Mojo Academy, atualize para CoddyKit PRO. O curso de Mojo Academy inclui 4 aulas no total.

O que vou aprender em “Parametrizando bloco e largura”?

Exponha controles ajustáveis como parâmetros. Você pratica Mojo Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Mojo Academy?

Nenhuma experiência prévia é necessária. Mojo Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “Parametrizando bloco e largura”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Mojo Academy?

Sim. Cada aula de Mojo Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. O que o ajuste automático resolve
  2. Parametrizando bloco e largura
  3. Pesquisando o espaço de parâmetros
  4. Fixando a melhor configuração
← Voltar para Mojo Academy