Because CUDA threads are in the same share group as are their host Linux processes, the Source Pane can visibly display a unified view of lines and breakpoints set in both the host code and the CUDA code. TotalView determines the equivalence of host and CUDA source files by comparing the base name and directory path of each file in the share group; if they are equal, the line number information is unified in the Source Pane.
NOTE >> A unified display is not specific to CUDA but is particularly suited to debugging CUDA programs. It is discussed in more detail in "The Source Pane".
This is particularly visible when breakpoints are set. For example, Figure 266 shows source code before the CUDA thread has launched. A breakpoint has been set at line 130 which slid to line 134 in the host code.
Figure 266 – Source Pane before CUDA kernel launch
After CUDA kernel launch, Figure 267 shows that TotalView has read the line number information for the CUDA image and the slid breakpoint now displays according to the full breakpoint expression in the Action Points tab.
Figure 267 – Source Pane after CUDA kernel launch
Notice also that the source-line breakpoint boxes for the CUDA code have been unified with the CPU code. For example, lines 132 and 133 appeared with no breakpoint boxes before runtime, but after the CUDA threads have launched, TotalView is able to identify line symbol information there, so they now appear with gray boxes.