The debugger supports debugging a program that offloads kernels to multiple GPU devices. Each device appears in the debugger as a separate inferior. The auto-attach feature initializes the devices for debugging and creates the corresponding inferiors. For example, for a program that runs on a machine with two GPUs (one integrated, one discrete), when you execute the
command from the
A possible output is as follows:
Starting program: ./multi-device-program
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
0x7ffff4871700 (LWP 394698)]
intelgt: gdbserver-gt started for process 394694.
intelgt: attached to device 1 of 2; id 0x3e92 (Gen9) on inferior 2.
intelgt: attached to device 2 of 2; id 0x9a40 (Gen12) on inferior 3.
Switching between the inferiors and threads is the same as explained in the