Intel IGD for display and NVIDIA for compute

Hello community,
Have you any suggestion how to manage X11 to use Intel IGD for display and NVIDIA PGD for compute only.

Desktop is Lenovo ThinkStation P3 Tower
Intel i13900K
NVIDIA RTX A5500.

In BIOS mode is Auto that run first on PGD then IGD. For now when I plug a cable into motherboard DP no signal.
Before used an Arch based CachyOS and it was possible following this thread
https://bbs.archlinux.org/viewtopic.php?id=243402

When use lspci IGD got this

00:02.0 Display controller: Intel Corporation Raptor Lake-S GT1 [UHD Graphics 770] (rev 04)

Thank you.

@Sagicc Hi and welcome to the Forum :smile:
My experience with an integrated intel GPU and Nvidia in a desktop system (Intel Motherboard) was to set the primary device to the intel gpu, install. Add the nvidia card, install drivers and then use switcherooctl…

My current Tumbleweed setup uses two Nvidia cards… T400 for graphics, Tesla P4 for compute.

@malcolmlewis Hi and thak you!

I installed first intel, add NVIDIA and install headless NVIDIA drivers (without video drivers)
Please, can you suggest how to manage switcherooctl to do that? Looking for docs now.

Here is a list
Device: 0
Name: NVIDIA Corporation GA102GL [RTX A5500]
Default: yes
Environment: __GLX_VENDOR_LIBRARY_NAME=nvidia __NV_PRIME_RENDER_OFFLOAD=1 __VK_LAYER_NV_optimus=NVIDIA_only

Device: 1
Name: Intel Corporation Raptor Lake-S GT1 [UHD Graphics 770]
Default: no
Environment: DRI_PRIME=pci-0000_00_02_0

Thank you!

P.S. Lucky you with two :slight_smile:

@Sagicc So did you test the setup?

For example;


glxinfo | grep "OpenGL renderer"

OpenGL renderer string: NVIDIA T400/PCIe/SSE2

 __GLX_VENDOR_LIBRARY_NAME=nvidia __NV_PRIME_RENDER_OFFLOAD=1 __VK_LAYER_NV_optimus=NVIDIA_only glxinfo | grep "OpenGL renderer"

OpenGL renderer string: Tesla P4/PCIe/SSE2

switcherooctl glxinfo | grep "OpenGL renderer"

OpenGL renderer string: Tesla P4/PCIe/SSE2


zypper se -i switcheroo

S  | Name               | Summary                                             | Type
---+--------------------+-----------------------------------------------------+--------
i+ | switcheroo-control | D-Bus service to check the availability of dual-GPU | package

systemctl status switcheroo-control.service 
● switcheroo-control.service - Switcheroo Control Proxy service
     Loaded: loaded (/usr/lib/systemd/system/switcheroo-control.service; enabled; preset: disabled)
     Active: active (running) since Mon 2023-10-23 10:40:05 CDT; 22h ago
   Main PID: 1562 (switcheroo-cont)
      Tasks: 4 (limit: 5529)
        CPU: 1.361s
     CGroup: /system.slice/switcheroo-control.service
             └─1562 /usr/libexec/switcheroo-control

Oct 23 10:40:05 systemd[1]: Starting Switcheroo Control Proxy service...
Oct 23 10:40:05 systemd[1]: Started Switcheroo Control Proxy service.

@malcolmlewis Here is what I get
glxinfo | grep “OpenGL renderer”
OpenGL renderer string: llvmpipe (LLVM 17.0.2, 256 bits)
switcherooctl glxinfo | grep “OpenGL renderer”
OpenGL renderer string: llvmpipe (LLVM 17.0.2, 256 bits)

During installation blacklisted
libnvidia-egl-wayland1
nvidia-video-G06
nvidia-video-G06-32bit

Thank you!

@Sagicc never worried about blacklisting the drivers…

@malcolmlewis Yes. Still trying to set it work, when adding 20-intel.conf in /etc/X11/xorg.conf.d KDE won’t start…
Even make some changes in xorg.conf failed again.

How do you set to work? I try to find it…

Thank you!

@Sagicc there should be no requirement for any xorg conf files for either nvidia or intel (just use the defaults).

Can you show the output from;

cat /proc/cmdline
/sbin/lspci -nnk | grep -EA3 "VGA|Display|3D"
lsinitrd | grep nouveau

@malcolmlewis here is an output

cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-6.5.8-1-default root=/dev/mapper/system-root splash=silent mitigations=auto quiet security=apparmor nosimplefb=1


sbin/lspci -nnk | grep -EA3 "VGA|Display|3D"
00:02.0 Display controller [0380]: Intel Corporation Raptor Lake-S GT1 [UHD Graphics 770] [8086:a780] (rev 04)
        DeviceName: Onboard - Video
        Subsystem: Lenovo Device [17aa:1064]
        Kernel driver in use: i915
--
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA102GL [RTX A5500] [10de:2233] (rev a1)
        Subsystem: Lenovo Device [17aa:165a]
        Kernel driver in use: nvidia
        Kernel modules: nouveau, nvidia_drm, nvidia


lsinitrd | grep nouveau        
rwxr-xr-x   2 root     root            0 Oct 22 21:13 usr/lib/modules/6.5.8-1-default/kernel/drivers/gpu/drm/nouveau
-rw-r--r--   1 root     root      1321579 Oct 22 21:13 usr/lib/modules/6.5.8-1-default/kernel/drivers/gpu/drm/nouveau/nouveau.ko.zst

@Sagicc I suspect since no video driver that nouveau is not blacklisted… I don’t use nosimplefb=1 but do use vidia_drm.modeset=1 and also a /etc/modprobe.d/50-nvidia.conf containing;

blacklist nouveau
options nouveau modeset=0

If you add the blacklist, then need to run dracut -f --regenerate-all aftwerwards.

What about nvidia=smi output, this should show compute in use…

Thank you for your time and help.

Here is smi

+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.113.01             Driver Version: 535.113.01   CUDA Version: 12.2     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  NVIDIA RTX A5500               Off | 00000000:01:00.0  On |                  Off |
| 30%   25C    P8               5W / 230W |     12MiB / 24564MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
                                                                                        
+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|  No running processes found                                                           |
+---------------------------------------------------------------------------------------+

@malcolmlewis boot is defined default

@Sagicc what about if you fire up a terminal or two with switcherooctl and check smi output;

For example, I started alacritty and libreoffice calc here;

nvidia-smi 
Tue Oct 24 12:10:44 2023       
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 545.23.06              Driver Version: 545.23.06    CUDA Version: 12.3     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  Tesla P4                       On  | 00000000:03:00.0 Off |                    0 |
| N/A   42C    P0              23W /  75W |    126MiB /  7680MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
|   1  NVIDIA T400                    On  | 00000000:04:00.0  On |                  N/A |
| 38%   40C    P5              N/A /  31W |    718MiB /  2048MiB |      1%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
                                                                                         
+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|    0   N/A  N/A      2089      G   /usr/bin/Xorg.bin                            10MiB |
|    0   N/A  N/A     21416      G   alacritty                                     8MiB |
|    0   N/A  N/A     21513      C   ...b64/libreoffice/program/soffice.bin      104MiB |
|    1   N/A  N/A      2089      G   /usr/bin/Xorg.bin                           350MiB |
|    1   N/A  N/A      2291      G   /usr/bin/gnome-shell                        122MiB |
|    1   N/A  N/A      3731      G   ...,WinRetrieveSuggestionsOnlyOnDemand       77MiB |
|    1   N/A  N/A     13755    C+G   ...8262231,17662243796356486310,262144       89MiB |
+---------------------------------------------------------------------------------------+

Alacritty using offload with graphics, libreoffice calc using compute. Chrome uses compute as well (but on the T400).

@malcolmlewis here is a screenshot

The main problem is that there is no signal on motherboard as I have on CachyOS
no process is ok to me, and to work with Intel drivers …

Thank you!

@Sagicc should not need any signal, on my past setup with intel/nvidia I had three nvidia cards (just GT710’s) running as compute…

It knows the card is there and the drivers present, not sure if nvtop will show more… you could try installing that and see.

@malcolmlewis nvtop

This version of Nvtop is missing support for reporting Intel GPU memory, power, fan and temperature

                                                                       <Don't Show Again> <Ok>
                                                    Press Enter to select, arrows ">" and "<" to switch options

@Sagicc If it were me, I’d be looking at dumping the rpms and using the latest cuda/driver install run file… You need to install gcc and kernel-default-devel packages…

wget https://developer.download.nvidia.com/compute/cuda/12.3.0/local_installers/cuda_12.3.0_545.23.06_linux.run
chmod 0755 cuda_12.3.0_545.23.06_linux.run

Boot to multi-user target and install that at root user, just driver and cuda… after you accept the license.