cudaMalloc et cudaFree
Réservez et libérez la mémoire globale.
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. 🎉
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
- cudaMalloc et cudaFree
- Pointeurs vers la mémoire du GPU
- cudaMemset pour l’initialisation
- Éviter les fuites et les doubles libérations