Mojo Academy · Leçon

Écrire une fonction de noyau GPU

Exprimez du code pour le périphérique dans Mojo.

Leçon 3 sur 413 étapes

Écrire une fonction de noyau GPU est une leçon Mojo Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Mojo Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Mojo Academy comprend 4 leçons au total.

Qu’est-ce qu’un kernel ?

Un kernel GPU est la fonction exécutée par chaque thread. Vous écrivez le travail pour un élément, puis le matériel le répète sur un grand nombre d’entre eux.

Raisonner à l’échelle d’un thread

L’astuce consiste à écrire un kernel du point de vue d’un seul thread. Chaque thread effectue sa petite portion du travail.

Un kernel est simplement une fonction

Dans Mojo, un kernel est une fonction normale. Sa nature stricte et typée est exactement ce dont le code exécuté sur le périphérique a besoin pour être compilé rapidement.

fn add_kernel():
    pass

Transmettre des tampons

Un kernel reçoit en paramètres des pointeurs vers la mémoire du périphérique. Ces tampons contiennent les entrées et la sortie qu’il remplira.

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

Trouver l’indice de ce thread

Dans le kernel, chaque thread commence par calculer sa propre position. Cet indice sélectionne l’élément qu’il doit traiter.

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

Protéger les limites

Vérifiez toujours l’indice avant d’accéder à la mémoire. Une vérification des limites empêche les threads indésirables de lire au-delà du tableau.

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

Effectuer le travail de l’élément

Le corps est minimal : lire les entrées, calculer, puis écrire un résultat. L’ensemble du kernel tient souvent sur une seule ligne de calcul.

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

Lancer le kernel

Vous le lancez en choisissant une grille et une taille de bloc. Le lancement réplique votre code conçu pour un thread sur toute la grille.

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

Aucune valeur de retour

Les kernels ne renvoient pas de résultats à l’appelant. Ils écrivent dans le tampon de sortie, que vous relisez ensuite.

Limiter les branchements

Les threads sont plus efficaces lorsqu’ils avancent en lockstep. Des branchements complexes font diverger les voies d’exécution et les obligent à attendre ; gardez donc une logique de kernel simple et uniforme.

La même idée, à grande échelle

Un kernel court associé à une grande grille produit des millions de résultats. L’échelle vient du lancement, et non d’un code plus long.

Vérification rapide

Vous écrivez le corps d’un kernel GPU pour un thread.

Récapitulatif

Un kernel est une fonction pour un thread : trouver son indice, vérifier les limites, effectuer le calcul d’un élément, puis le lancer sur une grille. ⚡

Gratuit pour commencer

Apprends Mojo avec un tuteur IA — gratuit

Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.

Cours
30
Leçons
120

Questions Fréquemment Posées

La leçon « Écrire une fonction de noyau GPU » est-elle gratuite ?

Oui — le texte complet de « Écrire une fonction de noyau GPU » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Mojo Academy, passe à CoddyKit PRO. Le cours Mojo Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Écrire une fonction de noyau GPU » ?

Exprimez du code pour le périphérique dans Mojo. Tu pratiques Mojo Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Mojo Academy ?

Aucune expérience préalable n'est requise. Mojo Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « Écrire une fonction de noyau GPU » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Mojo Academy ?

Oui. Chaque leçon Mojo Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Pourquoi utiliser des GPU pour les charges de travail d’IA
  2. Threads, blocs et grilles
  3. Écrire une fonction de noyau GPU
  4. Transférer des données vers et depuis le périphérique
← Retour à Mojo Academy