NSight Systems is een krachtig hulpmiddel dat is ontworpen om CPU-GPU-interacties in applicaties te visualiseren en te analyseren, waardoor inzicht is in prestatieknelpunten en optimalisatiemogelijkheden. Hier is hoe het deze interacties visualiseert:
systeembrede prestatieanalyse
NSight Systems legt systeembrede activiteitsgegevens vast, inclusief zowel CPU- als GPU-gebeurtenissen, en geeft deze weer op een uniforme tijdlijn. Met deze tijdlijn kunnen ontwikkelaars zien hoe verschillende componenten van het systeem in de loop van de tijd met elkaar omgaan, waardoor het gemakkelijker wordt om correlaties, afhankelijkheden en knelpunten te identificeren in de workflow van de applicatie [3] [4].
CPU Activiteit Visualisatie
NSight Systems visualiseert CPU -activiteit door threadstatus, gebruik en algoritme -uitvoering te tonen. Dit helpt ontwikkelaars te begrijpen hoe CPU -middelen worden gebruikt en waar potentiële knelpunten kunnen bestaan. De tool ondersteunt multi-process tree-analyse, waardoor gebruikers de activiteit van meerdere processen en threads tegelijkertijd kunnen volgen [1] [3].
GPU Activiteit Visualisatie
Voor GPU-activiteit biedt NSight Systems gedetailleerde inzichten in GPU-workloads, waaronder streaming-multiprocessor (SM) optimalisatie, geheugenoverdrachten en kerneluitvoering. Het ondersteunt het traceren van verschillende GPU -API's zoals CUDA, Vulkan en OpenGL, waardoor ontwikkelaars GPU -reken- en grafische taken diepgaand kunnen analyseren [3] [4]. De tool biedt ook GPU -metrics -bemonstering, die statistieken omvatten zoals SM -gebruik, tensor -kernactiviteit en instructiedoorvoer. Deze statistieken helpen ontwikkelaars helpen de GPU -prestaties te optimaliseren door onderbenutting of inefficiënties in GPU -resource -gebruik te identificeren [1] [3].
Correlerende CPU- en GPU -evenementen
Een van de belangrijkste kenmerken van NSight -systemen is het vermogen om CPU- en GPU -evenementen te correleren. Door zowel CPU- als GPU -activiteiten op dezelfde tijdlijn te visualiseren, kunnen ontwikkelaars zien hoe CPU -bewerkingen de GPU -prestaties beïnvloeden en vice versa. Deze correlatie is cruciaal voor het identificeren van knelpunten die optreden als gevolg van interacties tussen de CPU en GPU, zoals vertragingen voor gegevensoverdracht of synchronisatieproblemen [3] [4].
lage overhead en schaalbaarheid
NSight Systems is ontworpen om te werken met lage overhead, zodat het profileringsproces de prestaties van de applicatie niet significant beïnvloedt. Dit maakt het geschikt voor het analyseren van complexe, grootschalige toepassingen die op verschillende NVIDIA-platforms worden uitgevoerd, van werkstations tot datacenters en cloudomgevingen [3] [6].
gebruikersinterface en navigatie
De tool biedt een gebruiksvriendelijke GUI waarmee ontwikkelaars door de tijdlijnweergave kunnen navigeren met behulp van schuifbalken, muiswiel en sneltoetsen. Met deze interface kunnen gebruikers inzoomen op specifieke tijdsbereiken of gebeurtenissen, waardoor gedetailleerde analyse van prestatieproblemen [5] [9] wordt vergemakkelijkt.
Over het algemeen biedt NSight Systems een uitgebreid beeld van CPU-GPU-interacties, waardoor ontwikkelaars hun toepassingen kunnen optimaliseren voor betere prestaties en efficiëntie op een breed scala aan platforms.
Citaten:
[1] https://extremecomputingtraining.anl.gov/wp-content/uploads/sites/96/2022/11/atpesc-2022-track-6-talk-2-keipert-nvidia.pdf
[2] https://bede-documentation.readthedocs.io/en/latest/software/tools/nsight-systems.html
[3] https://developer.nvidia.com/nsight-systems
[4] https://indico.cern.ch/event/962112/contributions/4047370/attachments/2159916/3643963/nsight%20Systems%20-%20X86%20Introduction%20-%20cern.pdf
[5] https://www.youtube.com/watch?v=tgchxcfm-yo
[6] https://docs.nersc.gov/tools/performance/nvidiaproftools/
[7] https://www.youtube.com/watch?v=KKANP0KL_HK
[8] https://docs.nvidia.com/nsight-systems/userguide/index.html
[9] https://www.youtube.com/watch?v=dudgo66iadu
[10] https://dev-discuss.pytorch.org/t/using-nsight-ystems-to-profile-gpu-workload/59