Linux 64 bit - NVIDIA GPU driver version 304.60 - Errror in cuda application

Jeroen
Jeroen
Joined: 25 Nov 05
Posts: 379
Credit: 740030628
RAC: 0

RE: Today I got my fresh

Quote:

Today I got my fresh new computer up and run with the AMD FX8350 CPU, 16Gbyte RAM and GTX 680 GPU card with 4 GByte, Ubuntu 12.10 64 bit and BOINC 7.0.27.

Then I happily connected to the Einstein project, and what a disappointment. The standard CPU applications runs just fine, but the GPU versions are telling about too little memory, just as I have with my micro GPU (see the thread).

I know this may be a issue with the BOINC client, but all the Primegrid GPU applications runs just fine.

I really do wanna crunch Einstein GPU applications, but this silly bug do stop me. Is it possible, either by an extra option on the prefernece page or as a hardcoding to make an override of the memory test? Thus it will be possible to run the application despite this BOINC bug, just as the Primegrid applications do pretty well.

With very best regards

Bent Vangli, Oslo, Norway

PS! My older installations runs both CPU and GPU Einstein application.

I am seeing these errors on one of your 680 hosts:

error while loading shared libraries: libcuda.so.1: wrong ELF class: ELFCLASS64

It looks like the application may be referencing a 64-bit CUDA library when instead the application needs the 32-bit CUDA library. The NVIDIA driver installer should place the 32-bit libraries in /usr/lib and 64-bit libraries in /usr/lib64. Make sure the libcuda.so.1 in /usr/lib is in fact 32-bit.

Bent Vangli
Bent Vangli
Joined: 6 Apr 11
Posts: 23
Credit: 725742660
RAC: 0

Superb pointed out. I thought

Superb pointed out. I thought I have done this correctly by putting a symbolic link in the project directory.

root@vax04:/home/beva# locate libcuda.so
/usr/lib/libcuda.so
/usr/lib/libcuda.so.1
/usr/lib/libcuda.so.310.14
/usr/lib32/libcuda.so
/usr/lib32/libcuda.so.1
/usr/lib32/libcuda.so.310.14
/var/lib/boinc-client/projects/einstein.phys.uwm.edu/libcuda.so.1

root@vax04:/home/beva# ll /var/lib/boinc-client/projects/einstein.phys.uwm.edu/libcuda.so.1
lrwxrwxrwx 1 root root 23 nov. 8 09:22 /var/lib/boinc-client/projects/einstein.phys.uwm.edu/libcuda.so.1 -> /usr/lib32/libcuda.so.1

As you can see, the 32 bit libraries are put in /usr/lib32, while the 64 bit versions are placed in /usr/lib. Which libraries are in use?

root@vax04:/home/beva# lsof | grep libcuda.so

boinc 3733 boinc mem REG 8,19 10326030 8658336 /usr/lib/libcuda.so.310.14
acemd.256 9557 boinc mem REG 8,19 10326030 8658336 /usr/lib/libcuda.so.310.14
acemd.256 9557 9558 boinc mem REG 8,19 10326030 8658336 /usr/lib/libcuda.so.310.14
acemd.256 9557 9559 boinc mem REG 8,19 10326030 8658336 /usr/lib/libcuda.so.310.14

And indeed, boinc use the 64 bit library despite my genius symbolic link :-))).

Well, then I have to figure out how to circumvent this without introducing other errors, he-he :-)))

Bent Vangli
Bent Vangli
Joined: 6 Apr 11
Posts: 23
Credit: 725742660
RAC: 0

And then the solution (at

And then the solution (at least for me).

In the project directory I made a 'better' symbolic link.

ln -s /usr/lib32/libcuda.so.1 /var/lib/boinc-client/projects/einstein.phys.uwm.edu/libcuda.so

The local symbolic link should be named libcuda.so, not libcuda.so.1.

And now the Einstein GPU application is running so nicely. Thank for all help.

Best regards

Bent Vangli, Oslo, Norway

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.