-
nsys: Nvidian GPU- ja CPU-profilointityökalu
nsys: Nvidian GPU- ja CPU-profilointityökalu
Saatavuus
- Puhti: 2022.1.3.3
- Mahti: 2021.3.3.2
Lisenssi
Käyttö on mahdollista sekä akateemisiin että kaupallisiin tarkoituksiin.
Käyttö
nsys-profilointityökalu kerää ja näyttää profilointidataa komentoriviltä. Sen avulla voidaan kerätä aikajana CUDAan liittyvistä toiminnoista sekä CPU:lla että GPU:lla, mukaan lukien ytimien suoritus, muistinsiirrot, muistin asetus sekä CUDA API -kutsut ja CUDA-ytimien tapahtumat tai metriikat. Työkalu on erittäin hyödyllinen korkean tason pullonkaulojen ja kuumien kohtien tunnistamisessa sekä sen määrittämisessä, mitkä ytimet kannattaa kohdistaa optimointiin ja analysoida Nsight Compute -työkalulla. Profiloinnin tulokset näytetään konsolissa sen jälkeen, kun profilointidata on kerätty, ja ne voidaan myös tallentaa myöhempää tarkastelua varten nsys-ui-työkalulla.
Jotta nsys-työkalua voidaan käyttää, on ensin ladattava CUDA-moduuli:
CUDA-koodin profilointia varten lisätään sitten komento nsys ennen tavallista
komentoa, jolla koodi suoritetaan. Muutoin suorittaminen on samanlaista kuin mikä tahansa muu
CUDA-ajo Puhdissa tai Mahdissa.
Esimerkki nsys-työkalun käytöstä ja tulosteesta:
$ nsys profile -t nvtx,cuda -o <results_file> --stats=true --force-overwrite true ./a.out
Collecting data...
Processing events...
Capturing symbol files...
Saving temporary "/tmp/cristian/6584503/nsys-report-b4eb-c068-9292-3b17.qdstrm" file to disk...
Creating final output files...
Processing [==============================================================100%]
Saved report file to "/tmp/cristian/6584503/nsys-report-b4eb-c068-9292-3b17.qdrep"
Exporting 4657 events:
Generating CUDA API Statistics...
CUDA API Statistics (nanoseconds)
Time(%) Total Time Calls Average Minimum Maximum Name
------- -------------- ---------- -------------- -------------- -------------- -------------------------------------------------------------
85.3 323223522 4 80805880.5 128957 322811927 cudaMalloc
13.6 51524634 1 51524634.0 51524634 51524634 cudaDeviceReset
....
Generating CUDA Kernel Statistics...
CUDA Kernel Statistics (nanoseconds)
Time(%) Total Time Instances Average Minimum Maximum Name
------- -------------- ---------- -------------- -------------- -------------- -------------------------------------------------------------
100.0 22912 1 22912.0 22912 22912 multiply_add_kn(float*, float const*, float const*, float const*, int)
Generating CUDA Memory Operation Statistics...
CUDA Memory Operation Statistics (nanoseconds)
Time(%) Total Time Operations Average Minimum Maximum Name
------- -------------- ---------- -------------- -------------- -------------- -------------------------------------------------------------
79.0 2022300 3 674100.0 663903 692095 [CUDA memcpy HtoD]
21.0 536223 1 536223.0 536223 536223 [CUDA memcpy DtoH]
CUDA Memory Operation Statistics (KiB)
Total Operations Average Minimum Maximum Name
------------------- -------------- ------------------- ----------------- ------------------- ------------------------------------------------
3906.250 1 3906.250 3906.250 3906.250 [CUDA memcpy DtoH]
11718.750 3 3906.250 3906.250 3906.250 [CUDA memcpy HtoD]
Generating Operating System Runtime API Statistics...
Operating System Runtime API Statistics (nanoseconds)
Time(%) Total Time Calls Average Minimum Maximum Name
------- -------------- ---------- -------------- -------------- -------------- -------------------------------------------------------------
67.0 343435124 29 11842590.5 23172 100249843 poll
22.6 115645051 1102 104941.1 1286 25309244 ioctl
5.5 28249766 4 7062441.5 3763 15288473 fread
....
nsys tukee monia hyödyllisiä ajoasetuksia. Lisätietoja on Nvidian dokumentaatiossa.
Yllä oleva raportti voidaan tarkastella myös graafisella käyttöliittymällä. Analyysin tulokset tallennetaan määritettyyn tiedostoon <results_file>.qdrep, ja niitä voidaan tarkastella suoraan CSC:n palvelimilla ajamalla nsys-ui tai kopioida paikallisille tietokoneille ja tarkastella nsight-systems-työkalun paikallisella asennuksella.