CUDA Academy · Leçon

cudaMalloc et cudaFree

Réservez et libérez la mémoire globale.

Leçon 1 sur 413 étapes

cudaMalloc et cudaFree est une leçon CUDA Academy gratuite sur CoddyKit. Ceci est la leçon 1 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 CUDA Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours CUDA Academy comprend 4 leçons au total.

Le GPU possède sa propre RAM

Votre GPU n'emprunte pas la mémoire principale de l'ordinateur. Il possède un espace séparé appelé mémoire globale, dans lequel les noyaux lisent et écrivent. 🧠

Vous devez la demander

Avant qu'un noyau puisse utiliser la mémoire de l'appareil, vous devez vous-même réserver un espace. La fonction qui effectue cette réservation est cudaMalloc.

La signature de cudaMalloc

cudaMalloc prend l'adresse d'un pointeur et un nombre d'octets. Elle place une nouvelle adresse de l'appareil dans ce pointeur.

float* d_data;
cudaMalloc(&d_data, n * sizeof(float));

Pourquoi un pointeur vers un pointeur

Vous transmettez &d_data afin que cudaMalloc puisse réécrire la nouvelle adresse dans votre variable. La valeur renvoyée est réservée au code d'erreur.

Comptez toujours en octets

cudaMalloc raisonne en octets bruts, et non en éléments. Multipliez le nombre d'éléments par sizeof(type) afin d'obtenir un tampon de la bonne taille.

cudaMalloc(&d_arr, count * sizeof(int));

La restituer avec cudaFree

Lorsque vous avez terminé d'utiliser un tampon, restituez-le au GPU avec cudaFree. Cela libère la mémoire globale pour d'autres opérations.

cudaFree(d_data);

Des fonctions qui vont ensemble

Traitez cudaMalloc et cudaFree comme une paire. Chaque allocation effectuée doit avoir exactement une libération correspondante.

La mémoire n'est pas initialisée

La mémoire fraîchement obtenue avec cudaMalloc contient des valeurs indéfinies. La lire avant d'y écrire ou d'y copier des données produit des résultats imprévisibles.

L'allocation peut échouer

Si le GPU n'a plus de mémoire, cudaMalloc renvoie une erreur au lieu de provoquer un plantage. En code réel, vérifiez toujours ce code de retour.

La mémoire globale est abondante mais lente

Les tampons obtenus avec cudaMalloc résident dans la mémoire globale : des gigaoctets d'espace, mais le niveau le plus lent de la puce. Utilisez-la généreusement, tout en surveillant les schémas d'accès.

Le rythme de tous les programmes

Presque tous les programmes CUDA suivent le même rythme : cudaMalloc, copier les données vers l'appareil, lancer un noyau, recopier les résultats, puis cudaFree.

Vérification rapide

Vérifions comment cudaMalloc reçoit le pointeur cible.

Récapitulatif

Vous avez appris à réserver de la mémoire GPU avec cudaMalloc, en indiquant sa taille en octets, puis à la libérer avec cudaFree par paires correspondantes. 🎉

Gratuit pour commencer

Apprends C++ 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 « cudaMalloc et cudaFree » est-elle gratuite ?

Oui — le texte complet de « cudaMalloc et cudaFree » 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 CUDA Academy, passe à CoddyKit PRO. Le cours CUDA Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « cudaMalloc et cudaFree » ?

Réservez et libérez la mémoire globale. Tu pratiques CUDA 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 CUDA Academy ?

Aucune expérience préalable n'est requise. CUDA 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 1 sur 4.

Combien de temps prend la leçon « cudaMalloc et cudaFree » ?

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 CUDA Academy ?

Oui. Chaque leçon CUDA 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. cudaMalloc et cudaFree
  2. Pointeurs vers la mémoire du GPU
  3. cudaMemset pour l’initialisation
  4. Éviter les fuites et les doubles libérations
← Retour à CUDA Academy