Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kaip „NSight Systems“ vizualizuoja CPU-GPU sąveiką


Kaip „NSight Systems“ vizualizuoja CPU-GPU sąveiką


„NSight Systems“ yra galingas įrankis, skirtas vizualizuoti ir analizuoti CPU-GPU sąveiką programose, suteikiant įžvalgų apie našumo kliūtis ir optimizavimo galimybes. Štai kaip tai vizualizuoja šias sąveikas:

visos sistemos veiklos analizė

„NSight Systems“ fiksuoja visos sistemos veiklos duomenis, įskaitant tiek CPU, tiek GPU įvykius, ir rodo juos vieningoje laiko juostoje. Ši laiko juosta leidžia kūrėjams pamatyti, kaip skirtingi sistemos komponentai laikui bėgant sąveikauja tarpusavyje, todėl programos darbo eigoje lengviau nustatyti koreliacijas, priklausomybes ir kliūtis [3] [4].

CPU veiklos vizualizacija

„NSight Systems“ vizualizuoja CPU veiklą, parodydamos gijų būsenas, panaudojimą ir algoritmo vykdymą. Tai padeda kūrėjams suprasti, kaip naudojami CPU ištekliai ir kur gali egzistuoti galimos kliūtys. Įrankis palaiko kelių procesų medžių analizę, leidžiančią vartotojams vienu metu sekti kelių procesų ir gijų veiklą [1] [3].

GPU veiklos vizualizacija

GPU veiklai „NSight Systems“ pateikia išsamias įžvalgas apie GPU darbo krūvius, įskaitant srautinio perdavimo multiprocesoriaus (SM) optimizavimą, atminties pervedimus ir branduolio vykdymą. Tai palaiko įvairių GPU API, tokių kaip „Cuda“, „Vulkan“ ir „OpenGL“, atsekimą, leidžiantį kūrėjams gylyje analizuoti GPU skaičiavimo ir grafikos užduotis [3] [4]. Įrankis taip pat siūlo GPU metrikos mėginių ėmimą, į kurį įeina metrikos, tokios kaip SM panaudojimas, „Tensor Core“ veikla ir instrukcijų pralaidumas. Ši metrika padeda kūrėjams optimizuoti GPU našumą, nustatant nepakankamą panaudojimą ar neveiksmingumą GPU išteklių naudojimo srityje [1] [3].

koreliuojantys CPU ir GPU įvykiai

Viena iš pagrindinių „NSight“ sistemų savybių yra jos sugebėjimas koreguoti CPU ir GPU įvykius. Vizualizuodami tiek CPU, tiek GPU veiklą toje pačioje laiko juostoje, kūrėjai gali pamatyti, kaip CPU operacijos daro įtaką GPU našumui ir atvirkščiai. Ši koreliacija yra labai svarbi nustatant kliūčių, atsirandančių dėl CPU ir GPU sąveikos, tokių kaip duomenų perdavimo vėlavimas ar sinchronizacijos klausimai [3] [4].

Mažos pridėtinės vertės ir mastelio keitimas

„NSight Systems“ yra skirta veikti esant mažoms pridėtinėms išlaidoms, užtikrinant, kad profiliavimo procesas nedaro didelės įtakos programos veikimui. Dėl to jis tinka analizuoti sudėtingas, plataus masto programas, veikiančias įvairiose NVIDIA platformose, pradedant darbo vietomis ir baigiant duomenų centruose ir debesų aplinka [3] [6].

Vartotojo sąsaja ir navigacija

Įrankis pateikia patogią GUI, leidžiančią kūrėjams pereiti per laiko juostą, naudojant slinkties juostas, pelės ratuką ir klavišų nuorodas. Ši sąsaja suteikia vartotojams galimybę padidinti tam tikrus laiko diapazonus ar įvykius, palengvindama išsamią našumo problemų analizę [5] [9].

Apskritai, „NSight Systems“ siūlo išsamų vaizdą apie CPU-GPU sąveiką, leidžiančią kūrėjams optimizuoti savo programas, kad būtų galima geriau atlikti našumą ir efektyvumą įvairiose platformose.

Citatos:
[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-systems-to-profile-gpu-workload/59