[Numpy-tickets] [NumPy] #497: The dot and inner products fail for large arrays on 64 bit linux using the ATLAS libraries.
NumPy
numpy-tickets@scipy....
Wed Apr 11 14:54:24 CDT 2007
#497: The dot and inner products fail for large arrays on 64 bit linux using the
ATLAS libraries.
-----------------------------+----------------------------------------------
Reporter: charris | Owner: somebody
Type: defect | Status: new
Priority: high | Milestone:
Component: Other | Version: none
Severity: blocker | Resolution:
Keywords: dot inner crash |
-----------------------------+----------------------------------------------
Comment (by charris):
I think this may be an error in the ATLAS libraries. I am running fc5 here
with the ATLAS libraries installed from extras repository, However, those
rpms are generated from a script borrowed from Debian, so the problems are
probably common to both. Anyway, the following c program also generates
the error:
{{{
#include <atlas/cblas.h>
int main(int argc, char **argv)
{
static double a[1000*1000];
static double b[1000*1000];
static double c[1000*1000];
double alpha=1, beta=0;
cblas_dgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans, 1000, 1000,
1000,
alpha, a, 1000, b, 1000, beta, c, 1000);
return 1;
}
}}}
Compiled with the command line :
gcc -L/usr/lib64/atlas -lcblas test.c
and which, when run, delivers:
$[charris@swamp blasdot]$ ./a.out
Illegal instruction
For Debian, I believe lib64 should be replaced by lib. Anyway, I think
this is either a compiler or ATLAS problem that exhibits itself when the
arrays get large enough to require blockiing or some such. I compiled with
gcc version 4.1.1. The program works fine if 1000 is replaced by 10
everywhere.
--
Ticket URL: <http://projects.scipy.org/scipy/numpy/ticket/497#comment:1>
NumPy <http://projects.scipy.org/scipy/numpy>
The fundamental package needed for scientific computing with Python.
More information about the Numpy-tickets
mailing list