Page 1 of 1

Matlab 2012a Link Interface broken?

PostPosted: Thu Apr 26, 2012 5:19 am
by prisma
Hi,

i'm having some problems with the link interface with Matlab 2012a. When i do f.ex. a polyfit in Matlab (setting LAPACK_VERBOSITY=1) i get:

Code: Select all
cpu_id: x86 Family 31 Model 9 Stepping 1, AuthenticAMD
libmwlapack: trying environment...
libmwlapack: loading /usr/local/cula/lib64/libcula_lapack_link.so
libmwlapack: loaded /usr/local/cula/lib64/libcula_lapack_link.so@0x24c8320
libmwlapack: /usr/local/cula/lib64/libcula_lapack_link.so is not a
compatibility layer.
libmwlapack: load error: /usr/local/cula/lib64/libcula_lapack_link.so:
undefined symbol: cbbcsd_
libmwlapack: unloading libraries
Caught "std::exception" Exception message is:
/usr/local/cula/lib64/libcula_lapack_link.so: undefined symbol: cbbcsd_


OS is Ubuntu 11.10 64bit, GPU GTX580, driver is 285 from the cuda hp, cudatoolkit is 4.1.28 and CULA R14.
Doing exactly the same with 2010b everything works perfectly.

Another thing that i have been spoting is that the GPU accel. does not work for 2012a, for 2010b it does. (Testcase A=rand(5000); B=rand(5000); C=A*B;)
I've attached the cula debug outputs.

2010b:
Code: Select all
cula info:  parsing crossover list '/usr/local/cula/crossover.list'
cula info:  setting crossover for dgemm to '22500'
cula info:  setting crossover for dsyrk to '2500'
cula info:  setting crossover for zgetrf to '10000'
cula info:  dgemm (N, N, 5000, 5000, 5000, 1.000000, 0x7f38d4143010, 5000, 0x7f38c8286010, 5000, 0.000000, 0x7f38bc0e2010, 5000)
cula info:  issuing to GPU (over threshold)
cula info:  done


2012a:
Code: Select all
cula error: culaInitialize failed (CUDA runtime or driver is not supported)
cula info:  forwarding all calls to CPU
cula info:  parsing crossover list '/usr/local/cula/crossover.list'
cula info:  setting crossover for dgemm to '22500'
cula info:  setting crossover for dsyrk to '2500'
cula info:  setting crossover for zgetrf to '10000'
cula info:  dgemm (N, N, 5000, 5000, 5000, 1.000000, 0x7f5894143020, 5000, 0x7f5888286020, 5000, 0.000000, 0x7f587c3c9020, 5000)
cula info:  issuing to CPU (cula not available)
cula info:  CPU library is /usr/local/cula/lib64/lapackcpu.so
cula info:  done


Any help appreciated
Sebastian

Re: Matlab 2012a Link Interface broken?

PostPosted: Thu Apr 26, 2012 11:34 am
by john
It appears that despite Mathworks having added a new lapack function (cbbcsd) that the link interface still managed to load up - otherwise you wouldn't get the debug log printed out.

This message in the 2012a line "CUDA runtime or driver is not supported" indicates to me that something has interfered with CULA's loading process. I'm guessing that Matlab has loaded up a pre-4.1 toolkit for you prior to you getting CULA loaded.

Re: Matlab 2012a Link Interface broken?

PostPosted: Fri Apr 27, 2012 3:31 am
by prisma
It appears that despite Mathworks having added a new lapack function (cbbcsd) that the link interface still managed to load up - otherwise you wouldn't get the debug log printed out.

Ok, the link interface itself is of course not broken, but still in this state it is not usable to me. Any chance that cbbcsd will be supportet soon? If not in the GPU then at least forward it to the cpu library (wich is a mkl if I got it right).

This message in the 2012a line "CUDA runtime or driver is not supported" indicates to me that something has interfered with CULA's loading process. I'm guessing that Matlab has loaded up a pre-4.1 toolkit for you prior to you getting CULA loaded.

That can be very well. Does anyone know a way of enforcing Matlab to load nothing? I have tried to move the parallel computing toolbox out of the way (where the gpu parts are in), but that did not help.

Re: Matlab 2012a Link Interface broken?

PostPosted: Tue Jul 03, 2012 9:17 am
by metaheuristic
I am noticing a similar issue. When I try loading it in Matlab I get:

Code: Select all
>> randn('seed',1);A=randn(4000,4000,'single');
>> tic;svd(A);toc                             
cpu_id: x86 Family 6 Model 45 Stepping 7, GenuineIntel
libmwlapack: trying environment...
libmwlapack: loading /usr/local/cula/lib64/libcula_lapack_link.so
libmwlapack: loaded /usr/local/cula/lib64/libcula_lapack_link.so@0x1a654200
libmwlapack: /usr/local/cula/lib64/libcula_lapack_link.so is not a compatibility layer.
libmwlapack: load error: /usr/local/cula/lib64/libcula_lapack_link.so: undefined symbol: cbbcsd_
libmwlapack: unloading libraries
Caught "std::exception" Exception message is:
/usr/local/cula/lib64/libcula_lapack_link.so: undefined symbol: cbbcsd_
>>


I also have the parallel computing toolbox installed. My Matlab version is:
7.14.0.739 (R2012a). I am using the free basic version of CULA, but if I can get this working I would be interested in the others.

Re: Matlab 2012a Link Interface broken?

PostPosted: Fri Jul 06, 2012 11:10 am
by kyle
Code: Select all
undefined symbol: cbbcsd_


That looks like an issue with MATLAB 2012a. It seems Mathworks has updated their LAPACK library to include new functions for 2012a. We'll need to see what changed and mirror the functionality in the link library. Thanks for the report!

Re: Matlab 2012a Link Interface broken?

PostPosted: Tue Jul 24, 2012 7:29 am
by metaheuristic
Any ETA on this being updated to work with Matlab 2012a? We are anxious to try and buy once we know it will work. Also what is the best way to notified when this is ready? Thanks

Re: Matlab 2012a Link Interface broken?

PostPosted: Thu Jul 26, 2012 8:23 am
by kyle
To update on this matter:

The next version of link interface has been updated to support the new functionality of LAPACK 3.3.1 and 3.4. Previously, we only supported LAPACK 3.3.

This means you'll be able to successfully use the link interface in MATLAB 2012a which requires a LAPACK version of 3.3.1. MATLAB 2011a was still using LAPACK 3.2.2.

In MATLAB you can type 'version -lapack' to see which version of the library they are expecting.

Re: Matlab 2012a Link Interface broken?

PostPosted: Thu Jul 26, 2012 11:25 am
by metaheuristic
When will the next version be ready to download and test?
-Ben