Écrire une fonction de noyau GPU
Exprimez du code pour le périphérique dans Mojo.
É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():
passTransmettre 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]):
passTrouver 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.xProté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. ⚡
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
- Pourquoi utiliser des GPU pour les charges de travail d’IA
- Threads, blocs et grilles
- Écrire une fonction de noyau GPU
- Transférer des données vers et depuis le périphérique