[Numpy-discussion] ticket #551

Pauli Virtanen pav at iki.fi
Sat Apr 12 21:01:23 EDT 2008


http://projects.scipy.org/scipy/numpy/ticket/551

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