nvprof print precise kernel start time in --print-gpu-trace mode

I’m using nvprof to tace my cuda application with following command

nvprof -f -o nvvp.log --log-file nvprof.log --profile-from-start off --print-gpu-trace ./myApp

But the content of nvprof.log is inaccurate. Some kernels’ start time are identical due to this inaccuracy. For example,

Start  Duration            Grid Size      Block Size     Regs*    SSMem*    DSMem*      Size  Throughput  SrcMemType  DstMemType           Device   Context    Stream  Name
...
10.0681s  40.801us                    -               -         -         -         -  512.00KB  11.967GB/s      Device      Pinned     TITAN Xp (0)         1       109  [CUDA memcpy DtoH]
10.0681s  40.898us                    -               -         -         -         -  512.00KB  11.939GB/s      Device      Pinned     TITAN Xp (0)         1       109  [CUDA memcpy DtoH]

However, the content of nvvp.log shows accurate time in the fllowing format

Start 6.47823 s (6,478,233,261 ns)
End 6.47843 s (6,478,430,997 ns)

Then I change the time unit in nvprof.log with option

-u us

The result file nvprof.log is also inaccurate in fllowing format

Start  Duration            Grid Size      Block Size     Regs*    SSMem*    DSMem*      Size  Throughput  SrcMemType  DstMemType           Device   Context    Stream  Name
9.56e+06  36.06500           (2048 1 1)       (256 1 1)        16         0  0.000000         -           -           -           -     TITAN Xp (0)         1       110  fun(char*, long, int, int*) [772]
9.56e+06  34.97700           (2048 1 1)       (256 1 1)        16         0  0.000000         -           -           -           -     TITAN Xp (0)         1       107  fun(char*, long, int, int*) [774]
...

Is there any way to make the time in nvprof.log as precise as it in nvvp.log?

You can try using the nvprof --csv option.