[Numpy-discussion] ticket #551

Pauli Virtanen pav@iki...
Sat Apr 12 20:01:23 CDT 2008


This ticket (milestone 1.0.5 critical) seems to occur because
cblas_DGEMV in SSE2-enabled Atlas, at least the one shipped with
Debian/Ubuntu, apparently requires that doubles are aligned on 8-byte
boundaries in memory. If not, a segmentation fault ensues. When
unpickling arrays, numpy uses data directly from a Python string, which
is consistently not aligned on a 8-byte boundary => crash.

[I'm quite sure this is the reason. There is a minimal testcase in
comment 22 in the ticket is someone wants to confirm this.]


So should numpy try to work around this by reallocating the memory when
unpickling, and forcibly aligning it as required by SSE2-Atlas?

Or, should dotblas_matrixproduct in _dotblas.c check check the alignment?

Or, should the ticket be closed as WONTFIX, and the bug forwarded to
upstream + Debian? In principle there's the possibility that this is a
compiler bug.

Pauli Virtanen

More information about the Numpy-discussion mailing list