Boinc + Ubuntu + Nvidia = No usable GPUs found.

Hello: The new Nvidia drivers > 331.49 (331.67, 334.21 and 337.12) are causing problems for Ubuntu BOINC giving the error that is not Boinc GPUs to work, when in fact if any and functioned before the upgrade of Nvidia driver.

Specifically 331.49 version is the latest that has worked flawlessly.

Currently the only way you can upgrade to the new drivers from Nvidia is mounting them manually but “NO Registering the NVIDIA Kernel Module with DKMS” for everything to work properly.

If anyone has more information it’s time to discuss it.

I hope that soon the Ubuntu and Nvidia offer a solution.

Could it be nvidia-uvm failing to compile? That’s a problem I’m experiencing myself when trying to install nvidia-337-uvm from the xorg-edgers ppa.

Try running BOINC as root, running my CUDA application as root gave me a slightly more detailed error message pointing to uvm.

Trying to install nvidia-334-uvm on an otherwise fresh install of Kubuntu 14.04 I get:

Preparing to unpack .../nvidia-334-uvm_334.21-0ubuntu1~xedgers14.04.1_amd64.deb ...
Unpacking nvidia-334-uvm (334.21-0ubuntu1~xedgers14.04.1) ...
Setting up nvidia-334-uvm (334.21-0ubuntu1~xedgers14.04.1) ...
Loading new nvidia-334-uvm-334.21 DKMS files...
First Installation: checking all kernels...
Building only for 3.13.0-24-generic
Building for architecture x86_64
Building initial module for 3.13.0-24-generic
Error! Application of patch buildfix_kernel_3.12.patch failed.
Check /var/lib/dkms/nvidia-334-uvm/334.21/build/ for more information.

Going to try nvidia’s manual .RUN installer again next.

It seems a bug in the xorg-edgers package for ubuntu 14.04.

I have edited /usr/src/nvidia-337-uvm-337.12/dkms.conf and removed the last line with

PATCH[0]=“buildfix_kernel_3.12.patch”

and executed

sudo dkms build nvidia-337-uvm/337.12
sudo dkms install nvidia-337-uvm/337.12

then it seems works.

Hi, Thanks for the reply generalov

Turns out “/ usr/src/nvidia-337-uvm-337.12/dkms.conf” there instead have “/ usr/src/nvidia-337-337.12/dkms.conf” and the line indicating (PATCH [0] = "buildfix_kernel_3.12.patch) is commented out with # that is not active.

I have Ubuntu 14.04 Kernel-3.14.1-031401-lowlatency (x86_64).

The Nvidia driver 337.12 works perfectly on everything else, but BOINC is “No usable GPUs found” I have GTX770 and GT640 working perfectly.

Note: On line (PATCH [0] = “… it’s actually … _3.14.patch” which is the kernel installed.

Remember to manually installing the 337.12 driver (or other previous above 331.49) and NO recorded in DKMS during installation everything works perfectly including BOINC.

I’ve tried Ubuntu 13.10 and other kernel with the same results NVIDIA> 331.49 divers - NOT WORK IN BOINC.

It would seem like BOINC is the problem and not the NVIDIA drivers, especially if you’re able to run other CUDA programs.

Try debugging like they do here:
http://boinc.berkeley.edu/dev/forum_thread.php?id=9054&sort=7

Edit: CUDA would probably work fine and BOINC will probably still error out since they seem to be using OpenCL… I’d check that the nvidia OpenCL icd’s are in the right place/path.

Basically /etc/OpenCL/vendors should have a nvidia.icd file that points to /usr/lib/nvidia-current/libnvidia-opencl.so.1 or wherever your nvidia opencl library lives

Hello: BOINC (7.2.42) is the same in all tests and works seamlessly with NVIDIA driver 331.49.

Simply install the new NVIDIA drivers 331.67, 334.21 or 337.12 is not the GPUs. CUDA only Boinc.

If you uninstall and mounted again 331.49 or 331.38 all inclusive Boinc works perfectly.

The hardware is the same.

Review what the OpenCL libraries comments

Your post makes no sense.

Did you make sure that /etc/OpenCL/vendors points to the correct libnvidia-opencl library? This is most likely the cause of the issue, as installations of nvidia drivers on certain distributions frequently forget to add a symbolic link to another location of nvidia.icd or an nvidia.icd file pointing to the library. That would explain why previous versions work, but not later ones. Do remember that NVIDIA is not actively developing OpenCL support, and it wouldn’t surprise me that they’d just forget to place the link in the right place.

I would ask about this in the BOINC forum as opposed to here if you still can’t get it to work after that suggestion.

Hi, I think may be interested in this information about the problem of OpenCL and updates to the latest drivers from Nvidia.

Subject: Bug#745715: nvidia device not available for
compute in OpenCL and CUDA - msg#42729

Yes, as I said again, I’m pretty certain that what I quoted above is the issue, if not that the uvm module has not compiled/is not available. I recently upgraded to the 337 driver with the uvm module and I had to work around some incorrect patches to be able to compile the uvm module and have everything work correctly. See this thread:

https://devtalk.nvidia.com/default/topic/699610/334-21-driver-returns-999-on-cuinit-cuda-/

Out of curiosity, I tried out BOINC on Ubuntu 14.04 and it works just fine for me…

Setup… NVIDIA 337.12 drivers, BOINC 7.3.11, and able to run work units from PrimeGrid on CUDA and OpenCL on my GTX Titan Black and Quadro K6000 GPUs just fine… so it’s not a BOINC or NVIDIA issue, simply a misconfiguration on your system.

Hello: Well perfect, do a new reinstall of Ubuntu 14.04 and see what happens.

He commented that before (about 30 days ago) and I did a complete reinstall and the problem was still the same, I’m not the only one reporting this problem … we’ll see.

The 337.12 as it has, or manually installed in the normal way via software update + additional drivers.

I have commented before installing Nvidia manually everything works perfectly including BOINC.

Hello: Well unfortunately it does not.

Made a complete clean install of Ubuntu 14.04-64bit to install the Nvidia 331.67 driver fails to locate BOINC GPUs.

Ubuntu to install it only gives an option if the Nvidia 331.38 BOINC works with, as I said before, but when you upgrade from “Software Updates + Additional Drivers”, a top driver system works perfectly but fails to locate BOINC GPUs installed.

Event Log:

NVIDIA GPUs drivers present but not found
No library found ATI
OpenCL library not found
No usable GPUs found

Note: You must install the ppa “xorg-edgers fresh X crack” to access all of Nvidia drivers.

We return to the top, if not manually installed NVIDIA registering with DKMS everything works perfectly, including BOINC

I never said there wasn’t a problem with the drivers that Ubuntu has in their repositories, in fact I know that the xorg-edgers repository’s 337 drivers include an older kernel 3.12 patch that fails to build nvidia-uvm, probably causing the issues you’re experiencing, possibly mingled with a missing /etc/OpenCL/vendors/nvidia.icd file pointing to the OpenCL library like I mentioned before. That issue is neither NVIDIA’s or BOINC’s… it’s an issue of who packaged the drivers and any relevant bugs should be filed against it.

I directed you to the thread below, where myself and others mentioned how to overcome the issues of the later NVIDIA drivers running on newer kernels/ubuntu distros: https://devtalk.nvidia.com/default/topic/699610/334-21-driver-returns-999-on-cuinit-cuda-/

It seems some GPU features work with JUST the nvidia module loaded, but CUDA was certainly not working without the nvidia-uvm module compiled/loaded, not to mention the creation of the node mappings with too restrictive permissions, thus why some saw they needed to call nvidia-smi as root to create them correctly.

Sometimes in Linux you have to do things the hard way… use the terminal and watch for error messages… they won’t necessarily appear when you do it the GUI way. Since that’s what I usually do, when I saw the error about nvidia-uvm not compiling, I roughly knew how to proceed.

Hi, Thanks for your answers and patience.

Unfortunately my domain Linux is currently very limited and will continue to use the new drivers but installed manually (as I said before) that’s how I work well.

I will try to understand the problem a little more and be aware of their possible solution but at least understand that it is not only my problem.

These are the things that make a Linux user despair occasionally.

Hello: Well the solution has been to install “nvidia-modprobe” and GPU Boinc is no need to mount the Nvidia drivers manually as before.

Previously installing “nvidia-modprobe” on Ubuntu 14.04.1 Nvidia can mount the driver normally and recognizes Boinc GPUs and works perfectly.

Thanks to all the previous comments and greetings.

Confirming the problem on Fedora 20 64bit

Having had this problem myself, it may be useful to someone if I post my solution:

  • Ubuntu 14.04 with packaged 331 driver installed - didn’t work.
  • installed latest 346.47 driver manually downloaded from Nvidia … still didn’t work.
  • discovered from earlier post above that nvidia-uvm module was needed, but this wasn’t loading.
  • found that nvidia and nvidia-uvm modules had been aliased to nvidia_331 and nvidia_331-uvm in
    /etc/modprobe.d/nvidia-graphics-drivers.conf. Commented these out and rebooted - the correct nvidia
    and nvidia-uvm modules were now loaded, and BOINC worked.

HTH.

I just finished going though this myself, seeing all of the great help online with fixes that probably do work for some was getting frustrating. But nothing was working for me.

It sounds simple, but the way to get boinc communicating with your cards is to get rid of all of your previous driver software (if possible) and manually install the newest drivers from the website.

This requires downloading the setup.run file, making that file executable (right click, go to permissions or sudo chmod -x filename.run) and then booting into recovery mode and executing the setup (go to directory and ./filename.run) have it register with dkms but do not change your default desktop (unless you want to). I was unable to remove my previous drivers or install the new ones manually, something got corrupted with the ppa’s and a fresh install was needed, which might be the case for you too if you have been trying to get it working with numerous setups.

After I installed the drivers I just installed boinc through package manager, nothing special, and it loaded and recognized the gpu’s! I was good to go!

I am currently running debian 7.8 xfce but it did also for me on a FRESH Linux Mint 17.1 install, which was what I started with and had all the problems the first time around. With the ubuntu distros like Mint it seems to have the most trouble, and usually due to having opened or messed with the proprietary hardware driver selection app that is pre-installed on the system. Since I had the driver pre-downlaoded I forced it in before first boot and it worked fine. Also just installing the main boinc program, no mods or extra downloads.

I am using Fedora 21 and was getting the BOINC “No usable GPUs found” message. The solution that worked for me:

I downloaded the BOINC client source code to examine what tests were failing to cause BOINC to not find my GPU.

In clients/gpu_nvidia.cpp LINE 107 shows a call to Linux “dlopen(“libnvidia-ml.so”, RTLD_NOW);” dlopen checks in /lib and /usr/lib for the libraries but not /lib64/*.

Fedora 21 was installing libnvidia-ml.so and other NVidia libraries in /usr/lib64/NVidia/ and not finding them.

I linked the NVidia libraries into /lib and BOINC found the GPU. BOINC client is dumb and the package installers do not make up for it.

as superuser …

cd /lib
ln -s /usr/lib64/nvidia/lib* .

This is how I fixed my NO GPUS but there are likely other/better solutions. It is now munching MilkyWay@Home jobs.