Quando usiamo CUDA
profilatore nvvp
, ci sono diversi s "generali" correlati con istruzioni, per esempio:In CUDA profiler nvvp, cosa significa "overhead di memoria condivisa/globale"? Come viene calcolato?
- Branch Divergenza ambientale;
- Sovraccarico memoria condivisa/globale; e
- Overhead della cache locale/globale.
Le mie domande sono:
- Quale causa (s) queste spese generali e
- come vengono calcolati?
- Analogamente, come viene calcolata l'efficienza di carico/negozio globale?
Allegato: ho trovato tutte le formule che calcolano questi overhead nella 'CUDA Profiler Users Guide' confezionata nel toolkit CUDA5.
Grazie per le vostre risposte, BenC, ho capito le "Istruzioni" riprodotti e percentuali "banca in comune conflitto di riproduzione". Tuttavia, date le formule per i replay di "Global/Local memory", non riesco ancora a capire perché le mancate cache globali/locali possano causare ripetizioni delle istruzioni. Quando si verifica un errore nella cache, è sufficiente accedere alla memoria globale per recuperare ciò che è necessario, PERCHÉ REPLAY? – troore
Penso che tu possa trovare alcune risposte alla tua domanda in [queste diapositive] (http://developer.download.nvidia.com/CUDA/training/bandwidthlimitedkernels_webinar.pdf).Le operazioni di memoria sono emesse per ordito, proprio come ogni altra istruzione. Quando un ordito richiede le parole successive, una scarsa coalescenza di memoria porterà a più missioni di carico di L1, causando così ripetizioni di istruzioni. Nota che non sono un esperto CUDA quindi la mia comprensione potrebbe non essere corretta :-) – BenC
Questo [altro link] (http://www.freepatentsonline.com/8266383.html) potrebbe essere quello che stavi cercando, ma i dettagli tecnici richiedono una vera motivazione. – BenC