NSight Systems är ett kraftfullt verktyg som är utformat för att visualisera och analysera CPU-GPU-interaktioner i applikationer, vilket ger insikter i prestanda flaskhalsar och optimeringsmöjligheter. Så här visualiserar det dessa interaktioner:
Systemomfattande prestationsanalys
NSight-system fångar systemomfattande aktivitetsdata, inklusive både CPU- och GPU-händelser, och visar dem på en enhetlig tidslinje. Denna tidslinje gör det möjligt för utvecklare att se hur olika komponenter i systemet interagerar med varandra över tid, vilket gör det enklare att identifiera korrelationer, beroenden och flaskhalsar i applikationens arbetsflöde [3] [4].
CPU -aktivitetsvisualisering
NSight -system visualiserar CPU -aktivitet genom att visa trådtillstånd, användning och algoritmutförande. Detta hjälper utvecklare att förstå hur CPU -resurser används och var potentiella flaskhalsar kan existera. Verktyget stöder analys av flera processer, vilket gör att användare kan spåra aktiviteten för flera processer och trådar samtidigt [1] [3].
GPU -aktivitetsvisualisering
För GPU-aktivitet tillhandahåller NSight-system detaljerade insikter i GPU-arbetsbelastningar, inklusive strömmande multiprocessor (SM) optimering, minnesöverföringar och kärnutförande. Det stöder att spåra olika GPU -API: er som CUDA, Vulkan och OpenGL, vilket gör det möjligt för utvecklare att analysera GPU -dator- och grafikuppgifter i djupet [3] [4]. Verktyget erbjuder också GPU -mätvärdesprovtagning, som innehåller mätvärden som SM -användning, tensor kärnaktivitet och instruktionsgenomströmning. Dessa mätvärden hjälper utvecklare att optimera GPU -prestanda genom att identifiera underutnyttjande eller ineffektivitet i GPU -resursanvändning [1] [3].
Korrelerande CPU- och GPU -händelser
En av de viktigaste funktionerna i NSight -system är dess förmåga att korrelera CPU- och GPU -händelser. Genom att visualisera både CPU- och GPU -aktiviteter på samma tidslinje kan utvecklare se hur CPU -verksamheten påverkar GPU -prestanda och vice versa. Denna korrelation är avgörande för att identifiera flaskhalsar som uppstår på grund av interaktioner mellan CPU och GPU, såsom dataöverföringsförseningar eller synkroniseringsproblem [3] [4].
Lågt över- och skalbarhet
NSight Systems är utformat för att arbeta med lågt omkostnad, vilket säkerställer att profileringsprocessen inte påverkar applikationens prestanda väsentligt. Detta gör det lämpligt för att analysera komplexa, storskaliga applikationer som körs på olika NVIDIA-plattformar, från arbetsstationer till datacenter och molnmiljöer [3] [6].
Användargränssnitt och navigering
Verktyget ger ett användarvänligt GUI som gör det möjligt för utvecklare att navigera genom tidslinjevyn med rullstänger, mushjul och kortkommandon. Detta gränssnitt gör det möjligt för användare att zooma in på specifika tidsintervall eller händelser, vilket underlättar detaljerad analys av prestationsproblem [5] [9].
Sammantaget erbjuder NSight Systems en omfattande bild av CPU-GPU-interaktioner, vilket gör det möjligt för utvecklare att optimera sina applikationer för bättre prestanda och effektivitet över ett brett spektrum av plattformar.
Citeringar:
]
[2] https://bede-documentation.readthedocs.io/en/latest/software/tools/nsight-systems.html
[3] https://developer.nvidia.com/nsight-systems
]
[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-nsert-systems-to-profile-gpu-workload/59