[Numpy-discussion] Windows, blas, atlas and dlls

Dag Sverre Seljebotn d.s.seljebotn at astro.uio.no
Mon Feb 18 11:29:23 EST 2013


On 02/18/2013 05:28 PM, Dag Sverre Seljebotn wrote:
> On 02/18/2013 05:26 PM, rif wrote:
>> I have no answer to the question, but I was curious as to why directly
>> calling the cblas would be 10x-20x slower in
The statement was that directly (on the Cython level) calling cblas is 
10x-20x slower than going through the (slow) SciPy wrapper routines. 
That makes a lot of sense if the matrices are smalle nough.
  the first place.  That
>> seems surprising, although I'm just learning about python numerics.
>
> The statement was that directly (on the Cython level) calling cblas is
> 10x-20x slower than going through the (slow) SciPy wrapper routines.
> That makes a lot of sense if the matrices are smalle nough.
>

Argh. I meant:

The statement was that directly (on the Cython level) calling cblas is
10x-20x **faster** than going through the (slow) SciPy wrapper routines. 
That makes a lot of sense if the matrices are small enough.

Dag Sverre



> Dag Sverre
>
>>
>>
>> On Mon, Feb 18, 2013 at 7:38 AM, Sergio Callegari
>> <sergio.callegari at gmail.com <mailto:sergio.callegari at gmail.com>> wrote:
>>
>>     Hi,
>>
>>     I have a project that includes a cython script which in turn does
>>     some direct
>>     access to a couple of cblas functions. This is necessary, since some
>>     matrix
>>     multiplications need to be done inside a tight loop that gets called
>>     thousands
>>     of times. Speedup wrt calling scipy.linalg.blas.cblas routines is
>>     10x to 20x.
>>
>>     Now, all this is very nice on linux where the setup script can
>>     assure that the
>>     cython code gets linked with the atlas dynamic library, which is the
>>     same
>>     library that numpy and scipy link to on this platform.
>>
>>     However, I now have trouble in providing easy ways to use my
>> project in
>>     windows. All the free windows distros for scientific python that I
>> have
>>     looked at (python(x,y) and winpython) seem to repackage the windows
>>     version of
>>     numpy/scipy as it is built in the numpy/scipy development sites.
>>     These appear
>>     to statically link atlas inside some pyd files.  So I get no atlas
>>     to link
>>     against, and I have to ship an additional pre-built atlas with my
>>     project.
>>
>>     All this seems somehow inconvenient.
>>
>>     In the end, when my code runs, due to static linking I get 3
>>     replicas of 2
>>     slightly different atlas libs in memory. One coming with
>>     _dotblas.pyd in numpy,
>>     another one with cblas.pyd or fblas.pyd in scipy. And the last one
>>     as the one
>>     shipped in my code.
>>
>>     Would it be possible to have a win distro of scipy which provides
>> some
>>     pre built atlas dlls, and to have numpy and scipy dynamically link
>>     to them?
>>     This would save memory and also provide a decent blas to link to for
>>     things
>>     done in cython. But I believe there must be some problem since the
>>     scipy site
>>     says
>>
>>     "IMPORTANT: NumPy and SciPy in Windows can currently only make use
>>     of CBLAS and
>>     LAPACK as static libraries - DLLs are not supported."
>>
>>     Can someone please explain why or link to an explanation?
>>
>>     Unfortunately, not having a good, prebuilt and cheap blas
>>     implementation in
>>     windows is really striking me as a severe limitation, since you
>>     loose the
>>     ability to prototype in python/scipy and then move to C or Cython
>>     the major
>>     bottlenecks to achieve speed.
>>
>>     Many thanks in advance!
>>
>>     _______________________________________________
>>     NumPy-Discussion mailing list
>>     NumPy-Discussion at scipy.org <mailto:NumPy-Discussion at scipy.org>
>>     http://mail.scipy.org/mailman/listinfo/numpy-discussion
>>
>>
>>
>>
>> _______________________________________________
>> NumPy-Discussion mailing list
>> NumPy-Discussion at scipy.org
>> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>>
>




More information about the NumPy-Discussion mailing list