Blender 2.92 alpha not detecting CUDA-capable dGPU

So… I have the CUDA toolkit installed from the Ubuntu repositories (Nsight and such got installed along with what actually matters) and TechPowerUp lists the dGPU as CUDA-capable, yet Blender is not detecting the dGPU. It’s not even detecting the dGPU as an OpenCL device, even though it should detect both GPUs (the iGPU has OpenCL 2 support).

My laptop (i5), Ubuntu Groovy installed. I have the latest driver version (455) installed. I tried both the on-demand and the NVIDIA PRIME profiles (I first used on-demand, but then I tried NVIDIA just in case that the two environment variables were not enough to entirely point Blender towards the dGPU), but still nothing. Any and all help is appreciated!

Which Kernel are you running?

The latest nvidia driver is currently not compatible with Kernel 5.9:

I’m currently running in the NVIDIA (Performance) PRIME profile by the way:

[email protected]:~$ uname --all && glxinfo | grep NVIDIA
Linux sandys-inspiron 5.9.2-050902-generic #202010290646 SMP Thu Oct 29 11:11:09 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
server glx vendor string: NVIDIA Corporation
client glx vendor string: NVIDIA Corporation
OpenGL vendor string: NVIDIA Corporation
OpenGL core profile version string: 4.6.0 NVIDIA 455.28
OpenGL core profile shading language version string: 4.60 NVIDIA
OpenGL version string: 4.6.0 NVIDIA 455.28
OpenGL shading language version string: 4.60 NVIDIA
OpenGL ES profile version string: OpenGL ES 3.2 NVIDIA 455.28

Edit

From what I understand, the kernel modules should not have been compiled, but they were. They were not able to compile back when I was on 5.9.0 though.

Downgrade your Kernel.

:sweat_smile:

Booting with Ubuntu’s 5.8 kernel made it work and I’m now left wondering how the OpenGL driver works on 5.9. Also, the Intel iGPU is detected as a CUDA device for some reason and neither are detected as OpenCL devices.

I really didn’t think that it was necessary to boot with an older kernel because the OpenGL driver worked. The NVIDIA X server settings even showed the CUDA core count on 5.9!

There was an article on phoronix explaining the issue I think.
They changed something in the Kernel so the driver can’t access the compute units for some reason. The driver still loads and shows everything, and graphics work fine, but the CUDA cores are not accessible. The same for NVENC since that is partly handled by the CUDA cores.

2 Likes

Are you referring to the GPL-only symbols? Yeah, things were made stricter to ward off GPL shims. I though that that affected all of the drivers though. Go figure…

Yeah there was a link to nvidia’s dev forums about it

Well both AMD and Intel are using open source driver so it doesn’t affect them. Nvidia is the only proprietary driver where it is immediately noticeable.
There are probably a lot of other drivers affected, but not quite as common.

For the record, I mostly just coast on the Intel profile because of the situation with NVIDIA and Wayland, so I’m kind of clueless about things half a year later (I got this laptop in April and my previous one was a 2016 AMD dual-core one).

I was referring to all of NVIDIA’s drivers, not all in general. What I mean by that is that I did not expect for the graphics to work for example.

Oh, yeah, no idea how that works TBH… I never really looked at the nvidia driver stack because I never needed or cared to.