Skip to content

Commit

Permalink
Fix TAU_METRICS with multiple GPU backends
Browse files Browse the repository at this point in the history
tau_exec was replacing `TIME with `TAUGPU_TIME` for every requested GPU
backend. So, for example, with ``-rocm -opencl`, we would get:
    `TIME` -> `TAUGPU_TIME` -> `TAUGPU_TAUGPU_TIME`
Fix by checking whether `TAUGPU_TIME` is already a metric before trying to
replace `TIME`.


Former-commit-id: f474932f751de7b5da131f813bdc397a6454d6d9
  • Loading branch information
nchaimov committed Feb 12, 2025
1 parent cdcc068 commit bc5c835
Showing 1 changed file with 39 additions and 27 deletions.
66 changes: 39 additions & 27 deletions tools/src/tau_exec
Original file line number Diff line number Diff line change
Expand Up @@ -967,12 +967,14 @@ if [ $track_l0 = "true" ]; then
fi

if [ $track_rocm = "true" ] ; then
if [ `echo $TAU_METRICS | grep "TIME"` ]; then
if [ `echo $TAU_METICS | grep "TAUGPU_TIME" ` ]; then
$dryrun export TAU_METRICS=`echo $TAU_METRICS | sed -e 's/TIME/TAUGPU_TIME/'`
if [ `echo $TAU_METRICS | grep -v "TAUGPU_TIME"` ]; then
if [ `echo $TAU_METRICS | grep "TIME"` ]; then
if [ `echo $TAU_METICS | grep "TAUGPU_TIME" ` ]; then
$dryrun export TAU_METRICS=`echo $TAU_METRICS | sed -e 's/TIME/TAUGPU_TIME/'`
fi
else
$dryrun export TAU_METRICS=TAUGPU_TIME:$TAU_METRICS
fi
else
$dryrun export TAU_METRICS=TAUGPU_TIME:$TAU_METRICS
fi
if [ $track_rocm_pc = "true" ] ; then
export ROCPROFILER_PC_SAMPLING_BETA_ENABLED=1
Expand Down Expand Up @@ -1070,10 +1072,12 @@ if [ $track_cuda = "true" ] ; then
#TAUEX_LD_PRELOAD=$BASEDIR/lib/$theBinding/libTAU-CUDA$TAU_SHLIBX:$TAUEX_LD_PRELOAD
TAUEX_LD_PRELOAD=$BASEDIR/lib/$theBinding/libTAU-CUDArt$TAU_SHLIBX:$TAUEX_LD_PRELOAD
TAUEX_LD_PRELOAD=$BASEDIR/lib/$theBinding/libTAU-CudaQP$TAU_SHLIBX:$TAUEX_LD_PRELOAD
if [ `echo $TAU_METRICS | grep "TIME"` ]; then
export TAU_METRICS=`echo $TAU_METRICS | sed -e 's/TIME/TAUGPU_TIME/'`
else
export TAU_METRICS=TAUGPU_TIME:$TAU_METRICS
if [ `echo $TAU_METRICS | grep -v "TAUGPU_TIME"` ]; then
if [ `echo $TAU_METRICS | grep "TIME"` ]; then
export TAU_METRICS=`echo $TAU_METRICS | sed -e 's/TIME/TAUGPU_TIME/'`
else
export TAU_METRICS=TAUGPU_TIME:$TAU_METRICS
fi
fi
fi
if [ $track_cupti = "true" ] ; then
Expand All @@ -1087,10 +1091,12 @@ if [ $track_cupti = "true" ] ; then
TAUEX_LD_PRELOAD=$BASEDIR/lib/$theBinding/libTAU-CUact$TAU_SHLIBX:$TAUEX_LD_PRELOAD
TAUEX_LD_PRELOAD=$BASEDIR/lib/$theBinding/libTAU-CUpti$TAU_SHLIBX:$TAUEX_LD_PRELOAD
TAUEX_LD_PRELOAD=$BASEDIR/lib/$theBinding/libTAU-CudaQP$TAU_SHLIBX:$TAUEX_LD_PRELOAD
if [ `echo $TAU_METRICS | grep "TIME"` ]; then
export TAU_METRICS=`echo $TAU_METRICS | sed -e 's/TIME/TAUGPU_TIME/'`
else
export TAU_METRICS=TAUGPU_TIME:$TAU_METRICS
if [ `echo $TAU_METRICS | grep -v "TAUGPU_TIME"` ]; then
if [ `echo $TAU_METRICS | grep "TIME"` ]; then
export TAU_METRICS=`echo $TAU_METRICS | sed -e 's/TIME/TAUGPU_TIME/'`
else
export TAU_METRICS=TAUGPU_TIME:$TAU_METRICS
fi
fi
fi

Expand Down Expand Up @@ -1121,17 +1127,21 @@ if [ $track_opencl = "true" ] ; then
# Add the OpenCL wrapper library to the LD_PRELOAD list
TAUEX_LD_PRELOAD=$BASEDIR/lib/$theBinding/libTAU-OpenCL$TAU_SHLIBX:$TAUEX_LD_PRELOAD
TAUEX_LD_PRELOAD=$BASEDIR/lib/$theBinding/libTAU-OCLci$TAU_SHLIBX:$TAUEX_LD_PRELOAD
if [ `echo $TAU_METRICS | grep "TIME"` ]; then
export TAU_METRICS=`echo $TAU_METRICS | sed -e 's/TIME/TAUGPU_TIME/'`
else
export TAU_METRICS=$TAU_METRICS:TAUGPU_TIME
if [ `echo $TAU_METRICS | grep -v "TAUGPU_TIME"` ]; then
if [ `echo $TAU_METRICS | grep "TIME"` ]; then
export TAU_METRICS=`echo $TAU_METRICS | sed -e 's/TIME/TAUGPU_TIME/'`
else
export TAU_METRICS=$TAU_METRICS:TAUGPU_TIME
fi
fi
fi
if [ $track_l0 = "true" -a $track_opencl = "false" ]; then
if [ `echo $TAU_METRICS | grep "TIME"` ]; then
export TAU_METRICS=`echo $TAU_METRICS | sed -e 's/TIME/TAUGPU_TIME/'`
else
export TAU_METRICS=$TAU_METRICS:TAUGPU_TIME
if [ `echo $TAU_METRICS | grep -v "TAUGPU_TIME"` ]; then
if [ `echo $TAU_METRICS | grep "TIME"` ]; then
export TAU_METRICS=`echo $TAU_METRICS | sed -e 's/TIME/TAUGPU_TIME/'`
else
export TAU_METRICS=$TAU_METRICS:TAUGPU_TIME
fi
fi
fi
if [ $track_openacc = "true" ] ; then
Expand Down Expand Up @@ -1471,14 +1481,16 @@ else
$dryrun export HSA_TOOLS_LIB=$TAU_HSA_TOOLS_LIB
#$dryrun export LD_PRELOAD=$TAUEX_LD_PRELOAD
if [ $track_rocm = "true" ] ; then
if [ `echo $TAU_METRICS | grep "TIME"` ]; then
if [ `echo $TAU_METICS | grep "TAUGPU_TIME" ` ]; then
$dryrun export TAU_METRICS=`echo $TAU_METRICS | sed -e 's/TIME/TAUGPU_TIME/'`
fi
else
if [ `echo $TAU_METRICS | grep -v "TAUGPU_TIME"` ]; then
if [ `echo $TAU_METRICS | grep "TIME"` ]; then
if [ `echo $TAU_METICS | grep "TAUGPU_TIME" ` ]; then
$dryrun export TAU_METRICS=`echo $TAU_METRICS | sed -e 's/TIME/TAUGPU_TIME/'`
fi
else
$dryrun export TAU_METRICS=TAUGPU_TIME:$TAU_METRICS
fi
fi
fi
fi
$dryrun export LD_PRELOAD=$TAUEX_LD_PRELOAD
fi
fi
Expand Down

0 comments on commit bc5c835

Please sign in to comment.