Hyppää sisältöön

Docs CSC now features an automatic Finnish translation. Click here for more information.

Warning!

Puhti and Mahti will be decommissioned after Roihu becomes available. Users should clean up unnecessary files and move any required data by the end of August 2026. See the Roihu data preparation instructions for details.

Puhti scratch is very full: keep only active data there and move or delete everything else. No new Puhti scratch quota will be granted.

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:

module load cuda

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.

Suomenkielinen tekoälykäännös

Sisällössä voi esiintyä virheellistä tietoa tekoälykäännöksestä johtuen.

Klikkaa tästä antaaksesi palautetta