JCuda not working after upgrading to Cuda 4.1


I recently upgraded to Cuda 4.1.
The examples provided by Nvidia are working fine.
I installed version 4.1.28 which is the current version available from Nvidia.
I also uninstalled the previous Cuda Version(4.0).
When I start my JCuda program, I get “UnsatisfiedLinkError: : Can’t find dependent libraries” but as mentioned before, the dll files should be visible cause the nvidia examples are working fine.

Does anybody have a suggestion what might be wrong?

I’m using Windows 7 64Bit and also have Visual Studio 2010 Ultimate installed.

Greetings Felix

Hi again,

some additional information:

I allready tested to put all needed dll files into the project root and also tried to set the library path directly as a java argument (pointing to the folder with the native dll’s including all jcuda dll’s).
So far nothing worked still not working.
I noticed, that the current Cuda version names the native dll’s like “cublas_x64_41_28”.

Greetings Felix


As mentioned on the download site, the current binaries are built for CUDA 4.1, build 21 (i.e. RC2). That means it is looking for files like “cublas_x64_41_21.dll”. I know that it’s not desirable that the binaries are so specific, but I don’t see any possibility to avoid this: There may always be functions added, removed or modified in a new CUDA version, and thus, the binaries have to match. I’ll try to update the binaries for the latest release as soon as possible.


EDIT: In “urgent” cases, you might try to compile the binaries for the new version on your own, but of course, there may be differences between the latest CUDA version and the RC2 that are not taken into account then.

Hi Marco,

thanks for the fat answer and sorry for not taking all information into account.
Strange thing at this point for me is, that on my mac it works just fine with the current version of Cuda.
It seems like the current compiled versions on the website are just working fine at least under mac os.
I just looked into the folder where the native libs are stored under mac os and the naming is different.
It’s just lib.dylib. No version number here. I’m not sure about linux but I guess it might be a windows specific thing to specify the version number in the file name.

I will try to make a copy of the dll’s and rename them. Maybe it works.
I will let you know.

Greetings Felix

Hi again,

I just tried to rename the dll’s ans it works like a charm.
I dupplicated the files and changed the 28 to a 21.
I also tried to a simple link in the filesystem but that doesn’t work.

Greetings Felix

OK, this may be a quick workaround, and as long as all entry points for the functions are still found, this may work. But of course: If they changed any function, it may crash when you try to call it…