Problems with CUDA version when running eddy_cuda

Hi, all experts

When I running eddy_cuda, the choices are eddy_cuda8.0 eddy_cuda9.1, but the CUDA version installed on the workstation is 10.2,

(base) [liuyc@vgpu02 ~]$ /share/apps/fsl-6.0.4/bin/eddy_cuda9.1
/share/apps/fsl-6.0.4/bin/eddy_cuda9.1: error while loading shared libraries: libcublas.so.9.1: cannot open shared object file: No such file or directory

What is the problem with this error? Are there any solutions to solve this?

The problem is similar to this one on macOS, and is one of those headaches with CUDA. I’ve no idea what OS and version you’re running on, but in general the answer is to find a matching version of the CUDA libraries built for your system, and install that. I appreciate this is a fair bit easier said than done…

Depending on the specifics of your system, you may be able to install an older version of the CUDA library alongside your main (up to date) system one – this is how I cope with this. But I’ll admit the process for doing that can be a little unorthodox – there’s no guarantees it’ll work.

If you provide more details, I might be able to point you in the right direction?

Hi Dr @jdtournier, I’m facing a similar problem, I was running dwifslpreproc perfectly for some time, last week I updated my pc and now I’m gettitng and error when running dwifslpreproc

eddy_cuda9.1: error while loading shared libraries: libcublas.so.9.1: cannot open shared object file: No such file or directory

I suppose the problem is the actual CUDA version but I don’t know how to solve it.

My OS is Ubuntu 20.04 LTS; GPU NVIDIA GEFORCE GTX 1650, CUDA version 11.2

Could you help me?

Downgrade CUDA will have any problem with other programs on my pc? or is it possible to have two versions of CUDA?

Thanks

Dear @Al-yhuwert ,

Welcome to the community!

The way to get this to work is to install the required CUDA library without installing the CUDA driver associated with it. In CUDA package terms, you want to install the toolkit package without any other suggested (utils / driver) packages. This will ensure that you keep the correct driver for your card, while providing the specific libraries for your application (eddy_cuda9.1).

To install the CUDA 9.1 library you can follow the instructions on this page, under the “Install CUDA toolkit” section.

Hope this helps,
Nick

Thank you Nick!

I don’t really know what I did, I updated conda and the dwifslpreproc worked again, but using eddy_openmp. As far as I know this is slower than CUDA, that’s why I want it wworking with CUDA. I’ll try what you suggested. But, that means that I’ll keep both versions of CUDA? My ubuntu is 20.04, should it work as well?

Yes it should be a bit faster, but the real advantage of the CUDA version is that you have expanded functionality such as the slice to volume correction and movement by distortion correction. You can find out more about these here and further on that page.

Yes, you can have multiple CUDA libraries and it shouldn’t be a problem, as long as there are no driver clashes. If you want to be sure that an application only uses a particular CUDA library, you can set the PATH variable to point to that specific one. The way I understand it, is that the driver has to be OS and GPU card -specific, while libraries are application-specific. Drivers have backward compatibility with libraries, so there is no need to install the driver that comes with the library (installing the wrong driver for your graphics card and OS is usually what breaks CUDA execution most of the time).

All the best!

Hi Nick,

I got the CUDA version I needed and now dwifslpreproc is working well and much faster than before. Thanks for your advice!