Blender Says "No Compatible GPU Found"

Hi folks. I recently installed the official Nvidia driver from the Nvidia community repository and then I installed Steam so that I could install the current version of Blender and easily keep it up to date, however Blender is saying that it can’t find a compatible GPU for path tracing. I thought it might be caused by the fact that I forgot to uninstall the nouveau driver whilst I was installing the nvidiaG05 driver, but that doesn’t seem to be the case. The nvidia driver seems to be properly installed because I haven’t seen any warnings or anything and the Nvidia settings panel looks pretty normal (see below). I get the impression that the Nvidia settings panel is a little out of date because if I tell it to save to the X config file, it complains that the old style config file isn’t there, rather than writing into the more modular style config directory with separate files for each section, but the information it presents seems to be correct. Does anybody have any suggestions for what I might be able to do to figure out why blender can’t find my GPU and how to fix it?

Edit:
Tried uploading a screenshot of the Nvidia settings panel showing that the card is an NVidia Geforce GTX 970, but it just posted as a YUGE base 64 sencoded string, sorry.

Hmmm…

Minutes after I posted this thread, an update for the GPU driver popped up. I was kinda’ hoping that it was the update that’d render the original post pointless because it was going to allow Blander to be able to use the CUDA cores again, but unfortunately it didn’t. As far as I can tell, it’s just dropped the display resolution to ~640x360 and killed the Nvidia setting panel, because it doesn’t even try to start now. With any luck, Nvidia will release a patch to patch their patch fairly soon. Blender still says it can’t find a CUDA enabled GPU, though.

Okay, so as I expected, there was indeed an update to the official Nvidia drivers which restored the resolution to my television’s native resolution of 1920 × 1080, and it also put the the nvidia settings tool back again. I realised that the reason why the Nvidia settings tool can’t write to the X11 configuration is probably because I’m running it as a regular user, so it just doesn’t have the permissions to write the configuration to /etc/X11/. Hever, given that it seems to want to try to write a configuration in a layout that I’m guessing X doesn’t look for any more, I’m worried it might cause more problems than it solves.

With the latest drivers installed, though, I still have Blender complaining that it can’t find a CUDA-enabled GPU. I’m fairly sure had the same setup in on 15.1 (Blender installed via steam and Nvidia drivers from Nvidia repos) and Blender was able to use the CUDA cores without a problem. I think the only difference is that I used Blender 2.83 on Opensuse 15.1, but during my transition to 15.2, a minor version increase for Blender was released. (2.83.2).

I saw another thread about this same issue, but I struggled to follow it. I noticed Malcom made reference to CUDA versions in one of his replies, but I couldn’t find any information about which CUDA version was installed by the packages in the Nvidia community repositories. I looked in the various tabs in YaST which give information about dependencies and versions of packages, and in the Nvidia settings tools itself, but neither seemed to have that information.

Any help would be greatly appreciated.

Hi
The nvidia-smi command will show that information…

Thanks for the reply Malcom. The output from the command is the following

stephen@home:~> nvidia-smi
Fri Jul 17 21:41:19 2020       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 450.57       Driver Version: 450.57       CUDA Version: 11.0     |
|-------------------------------+----------------------+----------------------+
| 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  GeForce GTX 970     Off  | 00000000:01:00.0  On |                  N/A |
|  0%   54C    P0    46W / 201W |    303MiB /  4039MiB |      1%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      1789      G   /usr/bin/X                        140MiB |
|    0   N/A  N/A      2235      G   /usr/bin/kwin_x11                  81MiB |
|    0   N/A  N/A      2519      G   /usr/bin/plasmashell               57MiB |
|    0   N/A  N/A      2944      G   /usr/bin/krunner                   14MiB |
+-----------------------------------------------------------------------------+


Hi
My expectation is when running blender it should show your gpu present (preferences->system)?

If you’re talking about the System section from the Preferences window which is accessed from the Edit menu at the top of the Blender window, then yeah, that’s exactly what my expectation was too. It was the first place I went to after starting Blender for the first time. When I clicked the CUDA option, though it said

No compatible GPUs found for path tracing
Cycles will render on the CPU

I had a quick look on Google, and I found that it said that this message is likely to be displayed when a newer GPU is being used and the support for any differences might not have been added to Blender yet, but my GPU is fairly old (in GPU years) now, and it works fine on the same Version of Blender running on Windows 7. I’m fairly certain it also worked perfectly well in the previous version of OpenSUSE with the same methods of installation for Blender and the Nvidia drivers too. The same message also appears for all three of the other options for non-CPU rendering.

The only significant difference I can think of between my installations of 15.1 and 15.2 is that I had Wine installed on 15.1 to see if it would allow me to run games through steam. I haven’t bothered installing Wine or re-downloading any games through steam yet, because I wanted to make sure that Blender was working properly before I bother with anything else, and I don’t see why having Wine installed would have any effect on Blender or the Nvidia drivers. Although, I’m starting to think it might be worth a try, just to see if trying to play a game might cause it to complain about not having a GPU installed.

Hi
This is Leap 15.2 (qemu and gpu passthrough) and blender 2.82;

https://forums.opensuse.org/attachment.php?attachmentid=907&stc=1

This is Tumbleweed and blender 2.83;

https://forums.opensuse.org/attachment.php?attachmentid=910&stc=1
All systems run manual install of the Nvidia, cuda 11 and cudann files, no rpm install.

Maybe it’s the blender version and cuda support… at present they only list 10.1 or 10.2 (https://wiki.blender.org/wiki/Building_Blender/CUDA), the openSUSE packaging does enable cuda cycles, but I do see the cards present (blender isn’t my thing either, I only use cuda for seti@home and lc0).

Yeah that’s exactly the place I was talking about. I did try to post a small screenshot of the window in one of my first posts, but whenever I tried to post it, the forum just automatically converted it to a base64 encoded string which caused the forum to say that the post exceeds the maximum character limit whenever I hit Submit. I’m guessing there’s just a standard restriction on new accounts being able to post images, so I just had to quote the error message instead.

Hi
So is the video group part of your user groups?


id

I have absolutely no idea, but if I were to take a wild guess from looking at the output of the id command, I’d say no.

stephen@home:~> id
uid=1000(stephen) gid=100(users) groups=100(users)

Although running the id command as root yields fairly similar looking results, so I’ve no idea what to make of that.

home:~ # id
uid=0(root) gid=0(root) groups=0(root)

I can watch YouTube videos etc. without much of a problem, or would that not be related to whether or not the video group is part of my user group? Before I installed the Nvidia drivers, I uninstalled the nouveau driver to avoid any possible problems caused by having two drivers installed for the same task. When I uninstalled the nouveau driver, I did notice that it also took a large number of other packages with it, but I wasn’t worried about that because YaST was going to reinstall any necessary packages when I installed the Nvidia driver anyway. Could this be why the video group is not part of my user groups? If it is, is it likely that there is anything else I’d need to do to resolve any other likely problems?

Hi
It’s worth a shot to add yourself, fir up YaST -> Security and Users-> User and Groups Management, edit your username and under the details tab under additional groups select video, save log out, log in (or reboot) and see if that helps.

I tried it, but it didn’t make any difference.

I wonder if there’s something about installing Blender via Steam on Leap 15.2 that’s different to doing the same thing on 15.1, in some small but significant way? Do you have a Steam account, Malcolm? I’m wondering if Blender might do the same thing to you if you try to use Blender 2.83.2 via Steam?

Just to make sure that I haven’t done something stupid like install the wrong driver, nvidia-gfxG05-kmp-default was the correct driver to install for a GeForce GTX 970, wasn’t it?I’m not too well-up on Nvidia’s (or anyone else’s) GPU card naming conventions, so I just assumed that the “GTX” in my GPU’s model name was just some irrelevant marketing guff, and the only reason it’s got a “GTX” in the name is to make it sound like it goes faster. I ask because I notice the description in YaST makes no mention of “GTX”.

This package provides the closed-source NVIDIA graphics driver kernel module for GeForce 600 series and newer GPUs.

I.e. using it via Proton/Wine?
But why?

Hi
Yes it’s supported in the 450.57 driver, see Linux x64 (AMD64/EM64T) Display Driver | 450.57 | Linux 64-bit | NVIDIA “Supported Products” tab…

This happened to me recently. I actually don’t know when it stopped working but it had worked just fine in the past. Also just updated to 15.2 last week. Adding my user to ‘video’ group didn’t fix the issue. I stumbled upon a “solution” to use CUDA for cycles rendering tonight. I should mention that I use the official versions of Blender - no package manager installation - just extract the bzipped tarball to my user’s ‘Programs’ folder, pop a link in ~/bin and good to go.

I decided to see if it was available to root so I started blender as root(from my user’s Programs directory). Lo and behold, there was my 1050 ti available to blender for cycles compute device. Great! So what is the disconnect? What does root have that I don’t?

So I closed root’s blender and tried my user’s blender. The GPU is available to my regular user now. It’s gone after a restart though. So have to start blender as root first and then it’s all good until next restart. I have no idea how to go about automating the fix or doing it properly.

Hope this helps.

No. I do hope to be able to play games through Steam, but my first priority is to have Blender running natively. The reason I run it through Steam is so that it’ll automatically keep blender up to date. The software installed through YaST’s repositories is mature software which has proven itself to be reliable and I assume it has undergone quite a bit of stability/compatibility testing. However, the rate of development in Blender has massively accelerated recently with long standing bugs being fixed, performance improvements being made, and even entirely new features being frequently added. Any problems caused by this increased rate of addition to Blender’s feature set, seems to be matched by an increased rate of bug fixes so, in the case of this one piece of software, I have been willing to make the trade-off, and assume that anything added to Blender is (or soon will be) good to go, and have Steam take responsibility for directly updating Blender without relying on the official openSUSE repositories to act as a kind of Quality Assurance intermediary.

I’m not even considering installing WINE or using Proton until I have a better idea of what the cause of this error is. Sodsm_live’s post would suggest that the method of installation is not the cause of the problem, but I didn’t expect Steam would be because,as far as I know, all it does is just automatically install whatever the Blender Foundation hands over to it. I’m hoping people will be able to help me find the cause of the problem so that it could be reported to the appropriate people, and also so that I might be able to use a work-around, whilst whoever would be responsible for it (Nvidia/Blender Foundation) could create a long term solution.

Ah, some components of Nvidia’s driver requires root privileges to start.
Are you using secure boot?
If yes, you need to sign Nvidia’s driver.

https://software.opensuse.org/package/blender
You may use “experimental” packages.

No, not using secure boot.

After some more investigation, I found that /dev/nvidia-uvm and /dev/nvidia-uvm-tools nodes were not created until blender was run as root. I followed the procedure in the 50-nvidia-default.conf file to make a little modprobe script to create them and set the proper permissions. This is unnecessary, however, as a simple:

 # nvidia-modprobe -u -c=0

does the trick.

From nvidia-modprobe -h:

-c MINOR-NUMBER, --create-nvidia-device-file=MINOR-NUMBER
Create the NVIDIA device file with the given minor number; this option can be specified
multiple times to create multiple NVIDIA device files.

-u, --unified-memory
Load the NVIDIA Unified Memory kernel module or create device files for it, instead of
the NVIDIA kernel module.

I am not sure why the -c=0 option is necessary as the device file already exists(see below examples) but it doesn’t work without it.

Before running the nvidia-modprobe command from above:

bryan@localhost:~> ls -la /dev/nvidia*
crw-rw----+ 1 root video 195, 0 Jul 23 15:27 /dev/nvidia0
crw-rw----+ 1 root video 195, 255 Jul 23 15:27 **/**dev/nvidiactl
crw-rw----+ 1 root video 195, 254 Jul 23 15:27 /dev/nvidia-modeset

After running the command:

bryan@localhost:~> ls -la /dev/nvidia*
crw-rw----+ 1 root video 195, 0 Jul 23 15:27 /dev/nvidia0
crw-rw----+ 1 root video 195, 255 Jul 23 15:27 /dev/nvidiactl
crw-rw----+ 1 root video 195, 254 Jul 23 15:27 /dev/nvidia-modeset
crw-rw-rw- 1 root root 240, 0 Jul 23 20:28 /dev/nvidia-uvm
crw-rw-rw- 1 root root 240, 1 Jul 23 20:28 **/**dev/nvidia-uvm-tools

So this needs to be run before one can use CUDA as a normal user.

Hi
That has to be a bug with the rpm build… I use manual install and see (and blender works/shows cuda);

Tumbleweed;


ls -la /dev/nvidia*
crw-rw-rw- 1 root root 195,   0 Jul 22 18:29 /dev/nvidia0
crw-rw-rw- 1 root root 195,   1 Jul 22 18:29 /dev/nvidia1
crw-rw-rw- 1 root root 195,   2 Jul 23 20:38 /dev/nvidia2
crw-rw-rw- 1 root root 195, 255 Jul 22 18:29 /dev/nvidiactl
crw-rw-rw- 1 root root 195, 254 Jul 22 18:29 /dev/nvidia-modeset

Leap 15.2;


ls -la /dev/nvidia*
crw-rw-rw- 1 root root 195,   0 Jul 23 21:30 /dev/nvidia0
crw-rw-rw- 1 root root 195, 255 Jul 23 21:30 /dev/nvidiactl
crw-rw-rw- 1 root root 195, 254 Jul 23 21:30 /dev/nvidia-modeset