[Numpy-discussion] numpy setup.py too restrictive, prevents use of fblas with cblas

Robert Kern robert.kern at gmail.com
Wed Apr 16 16:00:12 EDT 2008


On Wed, Apr 16, 2008 at 9:11 AM, Travis E. Oliphant
<oliphant at enthought.com> wrote:
> George Nurser wrote:
>  > Apologies for coming out of the woodwork so late here..
>  >
>  > For blas/atlas etc in numpy & scipy on an opteron I use the AMD
>  > libraries (which only have fblas) together with cblas. This works very
>  > well.
>  >
>  > Current-ish SVN (v4779) in line 295-296 of numpy/core/setup.py  has:
>  >
>  >             if ('NO_ATLAS_INFO',1) in blas_info.get('define_macros',[]):
>  >                 return None # dotblas needs ATLAS, Fortran compiled
>  > blas will not be sufficient
>  >
>  > To get my AMD fblas/cblas approach to work, I have to comment out
>  > these two lines.
>  > Can this restriction preventing use of AMD fblas be removed for v1.1?
>  >
>  > Should I file a bug here?
>  >
>  Yes, you should put a ticket together.   The more information you can
>  provide, the more likely someone will act on the ticket.  Some kind of
>  info on why you had to comment out those two lines would be helpful.

I am guessing that he built the cblas interface from here:

  http://www.netlib.org/blas/blast-forum/cblas.tgz

Note that this is same C interface provided by ATLAS, the MKL, and
GOTO and is *not* the version simply converted from the FORTRAN using
f2c. It calls the (hopefully accelerated) FORTRAN subroutine where
possible after manipulating the arguments to tell the subroutine that
the matrices are transposed if row-major.

The correct fix needs to be more sophisticated than removing those two
lines. We need to recognize the MKL and the GOTO BLAS and allow them,
too. It might also be worth including the appropriate subset of the
cblas code provided in the tarball such that we can use any
accelerated FORTRAN BLAS without the standard cblas interface. Then
George wouldn't have the build the cblas library himself, either.

-- 
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless
enigma that is made terrible by our own mad attempt to interpret it as
though it had an underlying truth."
 -- Umberto Eco



More information about the NumPy-Discussion mailing list