Use iGPU with dGPU
NVIDIA Developer Kits like the NVIDIA IGX Orin or the NVIDIA Clara AGX have both a discrete GPU (dGPU - optional on IGX Orin) and an integrated GPU (iGPU - Tegra SoC).
As of this release, when these developer kits are flashed to leverage the dGPU, there are two limiting factors preventing the use of the iGPU:
- Conflict between the dGPU kernel mode driver and the iGPU display kernel driver (both named
nvidia.ko). This conflict is not addressable at this time, meaning that the iGPU cannot be used for display while the dGPU is enabled. - Conflicts between the user mode driver libraries (ex:
libcuda.so) and the compute stack (ex:libcuda_rt.so) for dGPU and iGPU.
We provide utilities to work around the second conflict:
IGX SW 1.0
HoloPack 1.2+
- From an IGX developer kit flashed for dGPU, run the following command to enable iGPU container support:
Refer to the IGX user guide for details.
-
To leverage both GPUs in Holoscan, you can either:
-
create separate Holoscan applications running concurrently, where the iGPU application must run in the Holoscan iGPU container, and the dGPU application can run bare metal or in the Holoscan dGPU container. Refer to the IGX user guide for details on how to launch a Holoscan container using the iGPU.
-
create a single distributed application that leverages both the iGPU and dGPU by executing separate fragments on the iGPU and on the dGPU.
The example below shows the ping distributed application between the iGPU and dGPU using Holoscan containers:
Attention
These utilities enable using the iGPU for capabilities other than display only, since they do not address the first conflict listed above.