Guide:TAUGPU
Configure TAU with:
./configure -cuda=<path to cuda toolkit> -bfd=download
or
./configure -opencl=<opencl headaers/libaries> -bfd=download
(along with any other options you would normally give to TAU.)
Then:
make install
Add <arch>/bin to your path and add <arch>/lib to your LD_LIBRARY_PATH.
Now to collect performance data run your application with tau_exec giving either the option '-cupti' (for CUDA applications) or '-opencl' for OpenCL applications.
tau_exec -T serial,cupti <-cupti|-opencl> ./a.out
MPI applications can be run like this:
mpirun -np 4 tau_exec -T mpi,cupti <-cupti|-opencl> ./a.out
(For CUDA version < 4.1 use -cuda instead of -cupti.)
For traces type:
export TAU_TRACE=1
before the tau_exec command.
And post-process the trace files by doing:
tau_multimerge tau2slog2 tau.trc tau.edf -o tau.slog2
Viewing data
To view profiles type:
paraprof
To view slog2 traces type:
jumpshot tau.slog2
CUPTI Counters
The CUPTI counters available for a given machine can assessed by typing:
tau_cupti_avail
Set the counters you wish to collect by exporting them as a colon separated list to the TAU_METRICS variable. ex:
export TAU_METRICS=CUDA.GeForce_GT_240.domain_b.instructions
Then run the application with tau_exec.
PGI OpenACC compiler
PGI uses the driver API to generate CUDA code for its accelerated regions so you need to set:
export TAU_CUPTI_API=driver
before running a PGI OpenACC application.