[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: ATLAS for Octave-Cygwin
From: |
James R. Phillips |
Subject: |
Re: ATLAS for Octave-Cygwin |
Date: |
Thu, 9 Feb 2006 09:15:18 -0800 (PST) |
--- "James R. Phillips" wrote:
> --- Kostya Ryzhij wrote:
>
> > Dear James,
> > sometimes ago you have asked in Octave mailing list about user experience
> > with optimized BLAS (ATLAS) library on Cygwin.
> > (http://www.octave.org/octave-lists/archive/help-octave.2005/msg03605.html)
> > There was no response, unfortunately. Currently I have installed Cygwin
> with
> > Octave 2.1.72. Afterwards I compiled
> > ATLAS and Lapack into *.dll's. The question is: how can I say to Octave to
> > use these new libraries? As it is mentioned
> > in LAPACK.README both of them are copied into \cygwin\usr\local\bin\
> > directory. However:
> >
> > octave_config_info('BLAS_LIBS')
> > ans = -llapack -lblas
> >
> > For me especially interesting is the use of cygptblas.dll, because I have
> > dual-Opteron workstation. The timing of Octave
> > (benchmark2 from http://www.sciviews.org) is O'k, but I see, that it uses
> > only 1 processor.
> >
> > Thank you in advance for any suggestions
> >
>
> I believe that the config_info function is telling you what configuration
> options were set at compile time. As such, this information is accurate.
> Only
> the windows loader knows whether dynamic link references are being satisfied
> by
> dlls in c:\cygwin\usr\lib\lapack or c:\cygwin\usr\local\bin at load time.
>
> Check to see that /usr/local/bin precedes /usr/lib/lapack in the PATH
> environmental variable seen inside cygwin. Then check to see that your
> custom-compiled dlls are in that location, i.e., cygatlas.dll, cyglapack.dll,
> cygblas.dll. If this is so, then you may be reasonably sure that your
> configuration is working.
>
> As a further check, you may try timing some large floating point problems
> with
> and without the custom dll's present. When you see a large difference in
> timing results, you know that the custom dll's are doing their job. You may
> try the sequence
>
> x=randn(100,1); A=randn(100,100); t=cputime();
> y=x\A; t=cputime()-t;
> disp(t);
>
> This should be large enough to show a significant difference.
>
> Hope this helps,
>
> Jim Phillips
>
>
>
Um, ok I see on re-reading that you mentioned the one vs two processor issue.
This is a matter of configuring atlas properly before you do the compile. I
believe you need to enable posix threads in order to properly support SMP. To
make a new library, delete config.exe in the atlas source subdirectory, and
perform a "make config". This will create a new Make.xxxxx file, where .xxxx
is the new (smp) architecture you are defining. Then "make install arch=xxxxx"
should build the new smp atlas libraries for you. Continue at this point with
the instructions for building the cygwin dlls and installing them in the proper
location.
-------------------------------------------------------------
Octave is freely available under the terms of the GNU GPL.
Octave's home on the web: http://www.octave.org
How to fund new projects: http://www.octave.org/funding.html
Subscription information: http://www.octave.org/archive.html
-------------------------------------------------------------