Unsatisfied link error

Hello,

I’m trying to use JOCL on a windows 7 64bits with NVIDIA tools. I arleaddy succeeded in use it on a Windows 7 32bits with ATI tools.

But now I got this error :

Error while loading native library “JOCL-windows-x86_64” with base name “JOCL”
Operating system name: Windows 7
Architecture : amd64
Architecture bit size: 64
Stack trace:
java.lang.UnsatisfiedLinkError: E:\rvlander\WIP\OpenCL\jocl\JOCL-windows-x86_64.dll: La procédure spécifiée est introuvable
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1803)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1728)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1028)
at org.jocl.LibUtils.loadLibrary(LibUtils.java:72)
at org.jocl.CL.(CL.java:47)
at tests.JOCLSample.main(JOCLSample.java:58)
Exception in thread “main” java.lang.UnsatisfiedLinkError: Could not load the native library
at org.jocl.LibUtils.loadLibrary(LibUtils.java:83)
at org.jocl.CL.(CL.java:47)
at tests.JOCLSample.main(JOCLSample.java:58)

I’m runing on a 64bits jvm.
cudatoolkit 3.2.7, devdriver3.1 and gpucomputing sdk are installed for 64bits arch.

I tried to put %CUDA_INC_PATH% and %CUDA_LIB_PATH% in Path but it does not work.
Nvidia exe examples run well. I don’t know what else I can do.

Thanks for helping me,

Regards

Hello

I assume that the “cudatoolkit 3.2.7” means something like CUDA 3.2, build 7, and is part of the CUDA 3.2 Release Candidate? JOCL is currently compiled for the CUDA 3.1 Toolkit, so it might not work with the release candidate version. You may want to try compliling it on your own for the 3.2 version, if you have a Visual Studio installed.
I will update the binaries to use the CUDA 3.2 Toolkit (with OpenCL 1.1 support) as soon as this version is publicly available. I already applied for the NVIDIA developers program, but did not receive a response.

bye
Marco

Thanks for the reply.

I’ve got the same error with CUDA 3.1. Do you think I need to downgrade drivers ?

Hello

I would not recommend to try downgrading the drivers. (It might work, but I once tried this on my PC, and that messed everything up a little bit…).

I noticed that yesterday (September 22nd) NVIDIA has made CUDA 3.2 public (on this site). I’m wondering why they don’t say anyting about OpenCL on the website, and it particularly seems that even CUDA 3.2 will not include support for OpenCL 1.1. But I will try to update as soon as possible, maybe this helps to solve the problem.
I’ll be on some business trips in the next days, but hopefully be able to provide the update beginning of October.

bye
Marco

Hi!

I have the same problem on win7 64 bit, core2 quad, geforce 9800gt. I installed the latest nvidia drivers.

Error while loading native library „JOCL-windows-x86_64“ with base name „JOCL“
Operating system name: Windows 7
Architecture : amd64
Architecture bit size: 64
java.lang.UnsatisfiedLinkError: C:\Windows\JOCL-windows-x86_64.dll: The specified procedure could not be found

architecture amd64? isn’t that wrong?

Anyway, should I try to rebuild the dll somehow? Or its just complicated and I should wait till you build us a new one :slight_smile:

Thanks!

Hello

‘amd64’ basically stands for any 64 bit CPU - even for those produced by Intel. (This has some historical reasons, I think because AMD developed the first version of the 64bit instruction set…)

If you have Visual Studio installed, compiling the DLL should be easy:

  • Open the Visual Studio project file
  • Select the ‘x64’ platform in the Toolbar
  • Select ‘Build -> Rebuild Solution’ from the Menu.
    That’s it. The DLL should then reside in the ‘Release’ directory.

As I mentioned above, I’ll try to update to CUDA3.2 as soon as possible, hopefully I’ll find the time next week (I’m drowning in work the moment)

bye
Marco

any known configuration solution to the unsatisfied link? i assume the makers of jocl did not consider having everyone rebuild dll files

As in so many cases, the answer depends on the question…

The current version of JOCL (0.1.4 beta1) should work with the NVIDIA CUDA Toolkit 3.2 and the AMD Stream SDK 2.2. For NVIDIA, there is still no support for OpenCL 1.1 - they seem to focus on CUDA. AMD has recently released the Stream SDK 2.3. I could not test this yet, but don’t see a reason why it should not work.

So if you are someone who already posted about problems with an “UnsatisfiedLinkError”, please refer to the respective post or your user- or guest name. Otherwise, you might want to have a look at this post, which refers to JCuda, but might be helpful for JOCL as well. If all this does not help, post some information…

  • Which operating system / architecture you are using (Windows, Linux, MacOS, 32bit or 64bit)
  • Which driver and OpenCL version you have installed
  • Which version of JOCL you are using
  • Possibly, your directory structure, command line path, or other information that may be relevant…