0Pricing
CUDA Academy · Lezione

Codici di ritorno contro errori asincroni

Scopra perché i kernel falliscono silenziosamente per impostazione predefinita.

Codici di ritorno contro errori asincroni è una lezione CUDA Academy gratuita su CoddyKit. Questa è la lezione 1 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 CUDA Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso CUDA Academy include 4 lezioni in totale.

Due modi in cui CUDA può fallire

CUDA segnala i problemi in due forme: un codice di ritorno immediato dalle chiamate API ed errori asincroni ritardati dai kernel. Conoscere entrambi è fondamentale. 🧭

Le chiamate API restituiscono un codice

La maggior parte delle chiamate del runtime CUDA restituisce un cudaError_t. Il valore cudaSuccess indica che è tutto a posto; qualsiasi altro valore segnala un problema su cui può intervenire.

cudaError_t err = cudaMalloc(&d, n);

Controllarlo subito

Per chiamate sincrone come cudaMalloc, il codice restituito è definitivo. Lo confronti immediatamente con cudaSuccess e reagisca prima di procedere.

if (err != cudaSuccess) return 1;

I kernel non restituiscono nulla

Un avvio del kernel con triple brackets non ha un valore restituito da verificare. Perciò gli errori di avvio non possono essere segnalati nello stesso modo semplice.

myKernel<<<g, b>>>(d); // no code to check

Perché i kernel sono asincroni

Gli avvii sono asincroni: la CPU accoda il lavoro e prosegue rapidamente. La GPU potrebbe non averlo ancora iniziato quando viene eseguita la riga successiva.

Gli errori arrivano in ritardo

Poiché il lavoro viene eseguito in seguito, un arresto anomalo del kernel diventa un errore asincrono. Si manifesta in una chiamata successiva, non nella riga di avvio.

Silenziosi per impostazione predefinita

Se non esegue mai controlli, un kernel difettoso fallisce silenziosamente. Il programma sembra funzionare, ma produce dati spazzatura o zeri nell’output.

Due tipi di errori di avvio

Gli avvii possono fallire in due fasi: una configurazione errata rilevata all’avvio e un errore di runtime, come un accesso oltre i limiti, rilevato durante l’esecuzione.

Errori persistenti

Un errore grave lascia il contesto in uno stato di errore persistente. Ogni chiamata CUDA successiva restituisce quindi lo stesso errore finché non riavvia.

Sincronizzare per forzare gli errori asincroni

Per portare alla luce un errore nascosto, chiami cudaDeviceSynchronize. Attende la conclusione del kernel e restituisce eventuali errori di runtime rilevati.

cudaError_t e = cudaDeviceSynchronize();

Un’abitudine affidabile

La regola generale è: controlli il codice di ritorno di ogni chiamata API e sincronizzi per rilevare gli errori dei kernel. Insieme, impediscono che qualsiasi errore passi inosservato.

Controllo rapido

Verifichi quanto ha compreso sul modo in cui i kernel segnalano gli errori.

Riepilogo: due percorsi degli errori

Le chiamate API forniscono un codice di ritorno immediato, mentre i kernel falliscono in modo asincrono. Controlli i codici e sincronizzi, così nulla passa inosservato. 🎉

Domande Frequenti

La lezione «Codici di ritorno contro errori asincroni» è gratuita?

Sì — il testo completo di «Codici di ritorno contro errori asincroni» è 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 CUDA Academy, passa a CoddyKit PRO. Il corso CUDA Academy include 4 lezioni in totale.

Cosa imparerò in «Codici di ritorno contro errori asincroni»?

Scopra perché i kernel falliscono silenziosamente per impostazione predefinita. Eserciti CUDA 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 CUDA Academy?

Non è richiesta alcuna esperienza precedente. CUDA 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 1 di 4.

Quanto tempo richiede la lezione «Codici di ritorno contro errori asincroni»?

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

Sì. Ogni lezione CUDA 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. Codici di ritorno contro errori asincroni
  2. Usare cudaGetLastError dopo l'avvio
  3. Una macro CUDA_CHECK riutilizzabile
  4. Decodificare cudaGetErrorString
← Torna a CUDA Academy