0Pricing
Mojo Academy · Lezione

Scrivere una funzione kernel per GPU

Esprima il codice del dispositivo in Mojo.

Scrivere una funzione kernel per GPU è una lezione Mojo Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Mojo Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Mojo Academy include 4 lezioni in totale.

Parti di questa lezione non sono ancora state tradotte e vengono mostrate in inglese.

What a Kernel Is

A GPU kernel is the function each thread runs. You write the work for one element, and the hardware repeats it across many.

Think One Thread

The trick is to write a kernel from a single thread's view. Each thread does its own small slice of the work.

A Kernel Is Just an fn

In Mojo a kernel is a normal fn. Its strict, typed nature is exactly what device code needs to compile fast.

fn add_kernel():
    pass

Passing in Buffers

A kernel takes pointers to device memory as parameters. These buffers hold the inputs and the output it will fill.

fn add_kernel(a: UnsafePointer[Float32], out: UnsafePointer[Float32]):
    pass

Finding This Thread's Index

Inside the kernel, each thread computes its own position first. That index selects which element it must process.

var i = block_idx.x * block_dim.x + thread_idx.x

Guarding the Bounds

Always check the index before touching memory. A bounds check keeps stray threads from reading past the array.

if i < n:
    out[i] = a[i] + b[i]

Doing the Element's Work

The body is tiny: read inputs, compute, write one result. The whole kernel often fits in a single line of math.

out[i] = a[i] * b[i]

Launching the Kernel

You launch it by choosing a grid and block size. The launch fans your one-thread code out across the whole grid.

ctx.enqueue_function[add_kernel](grid_dim=blocks, block_dim=256)

No Return Value

Kernels do not return results to the caller. They write into the output buffer, which you read back afterward.

Keep It Branch-Light

Threads run best in lockstep. Heavy branching makes lanes diverge and wait, so keep kernel logic simple and uniform.

Same Idea, Massive Scale

One short kernel plus a big grid equals millions of results. The scale comes from the launch, not from longer code.

Quick Check

You are writing the body of a GPU kernel for one thread.

Recap

A kernel is an fn for one thread: find your index, guard the bounds, do one element's math, then launch over a grid. ⚡

Domande Frequenti

La lezione «Scrivere una funzione kernel per GPU» è gratuita?

Sì — il testo completo di «Scrivere una funzione kernel per GPU» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Mojo Academy, passa a CoddyKit PRO. Il corso Mojo Academy include 4 lezioni in totale.

Cosa imparerò in «Scrivere una funzione kernel per GPU»?

Esprima il codice del dispositivo in Mojo. Eserciti Mojo Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Mojo Academy?

Non è richiesta alcuna esperienza precedente. Mojo Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «Scrivere una funzione kernel per GPU»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Mojo Academy?

Sì. Ogni lezione Mojo Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Perché usare le GPU per i carichi AI
  2. Thread, blocchi e griglie
  3. Scrivere una funzione kernel per GPU
  4. Trasferire dati da e verso il dispositivo
← Torna a Mojo Academy