CUDA Academy · Lezione

Suggerimenti tramite cudaMemAdvise

Guidi le scelte del driver per il posizionamento.

Lezione 4 di 413 passaggi

Suggerimenti tramite cudaMemAdvise è una lezione CUDA Academy gratuita su CoddyKit. Questa è la lezione 4 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.

Suggerisca, non ordini

Il prefetch sposta subito i dati; cudaMemAdvise, invece, indica al driver come prevede di usare un'area, così il driver può collocare le pagine in modo intelligente nel tempo.

La struttura della chiamata

Passa il puntatore, il numero di byte, un flag di suggerimento e un identificatore del dispositivo. Il driver integra questo suggerimento nelle future decisioni di migrazione.

cudaMemAdvise(data, bytes, advice, device);

ReadMostly per la condivisione

Usi cudaMemAdviseSetReadMostly per i dati letti da molti dispositivi ma scritti raramente. Il driver può conservare copie in sola lettura su entrambi i lati, evitando la migrazione.

cudaMemAdvise(data, bytes,
  cudaMemAdviseSetReadMostly, dev);

PreferredLocation fissa una posizione principale

Con cudaMemAdviseSetPreferredLocation indica un dispositivo principale per le pagine. Queste resistono allo spostamento anche quando vengono utilizzate dall'altro lato.

cudaMemAdvise(data, bytes,
  cudaMemAdviseSetPreferredLocation, dev);

AccessedBy evita la migrazione

cudaMemAdviseSetAccessedBy indica che un dispositivo accederà a questa area, quindi il driver la mappa su quel dispositivo. L'accesso passa attraverso il bus invece di spostare le pagine.

cudaMemAdvise(data, bytes,
  cudaMemAdviseSetAccessedBy, dev);

I suggerimenti fermano il ping-pong

Quando due dispositivi competono per le stesse pagine, il suggerimento corretto interrompe il rimbalzo. Stabilizza la collocazione, così i dati smettono di migrare avanti e indietro.

Il suggerimento è persistente

A differenza di un prefetch eseguito una sola volta, il suggerimento persiste nell'area finché non lo modifica. Influenza ogni scelta di migrazione per tutta la durata del buffer.

Ogni suggerimento ha una versione Unset

Ogni flag Set ha una forma Unset corrispondente per revocare il suggerimento. Cancelli il suggerimento quando cambia lo schema di accesso, così non indurrà il driver in errore.

cudaMemAdvise(data, bytes,
  cudaMemAdviseUnsetReadMostly, dev);

Suggerimento più prefetch

I due strumenti si abbinano bene. Imposti PreferredLocation per definire la posizione principale, poi esegua il prefetch per riempirla: le migrazioni assumeranno uno schema stabile.

È pur sempre solo un suggerimento

Ricordi il nome: il suggerimento è una proposta, non una garanzia. Il driver può ignorarlo, quindi esegua sempre il profiling per verificare che la collocazione sia migliorata.

Il suo kit di strumenti per la Unified Memory

Ora dispone di tre leve: un puntatore gestito, il prefetch per la tempistica e i suggerimenti per la collocazione. Insieme rendono la Unified Memory facile da usare e veloce.

Verifica rapida

Verifichiamo in che modo cudaMemAdvise differisce dal prefetch.

Riepilogo: suggerimenti sulla memoria

Ha imparato a usare suggerimenti di cudaMemAdvise come ReadMostly, PreferredLocation e AccessedBy per guidare la collocazione delle pagine. Li abbini al prefetch ed esegua il profiling. Ben fatto! 🎯

Gratis per iniziare

Impara C++ con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
30
Lezioni
120

Domande Frequenti

La lezione «Suggerimenti tramite cudaMemAdvise» è gratuita?

Sì — il testo completo di «Suggerimenti tramite cudaMemAdvise» è 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 «Suggerimenti tramite cudaMemAdvise»?

Guidi le scelte del driver per il posizionamento. 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 4 di 4.

Quanto tempo richiede la lezione «Suggerimenti tramite cudaMemAdvise»?

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. Un puntatore, entrambi i lati
  2. Migrazione delle pagine su richiesta
  3. Prefetching con cudaMemPrefetchAsync
  4. Suggerimenti tramite cudaMemAdvise
← Torna a CUDA Academy