[Numpy-discussion] Numpy 1.9.1, zeros and alignement

Julian Taylor jtaylor.debian at googlemail.com
Tue Nov 18 14:05:59 EST 2014


32 bit windows should not provide 16 byte alignment, at least it doesn't
for me. That is typically a property of 64 bit OS.

But that does not explain why normal double is not aligned for you, that
only needs 4 bytes on i386 which even 32 bit OS should provide.

I though I tested scipy on 32 bit linux which has very similar
properties to win32, time to rerun the test.

On 18.11.2014 19:56, David Cournapeau wrote:
> 
> 
> On Tue, Nov 18, 2014 at 6:40 PM, Julian Taylor
> <jtaylor.debian at googlemail.com <mailto:jtaylor.debian at googlemail.com>>
> wrote:
> 
>     < 1.9 lies about alignment it doesn't actually check for new arrays.
> 
> 
> When I do the following on 1.8.1 with win 32 bits:
> 
> x = np.zeros(12, "D")
> print x.aligned.flags  == (x.__array_interface__["data"][0] % 16 == 0) #
> always true
> print x.aligned.flags # always true
> 
> but on 1.9.1:
> 
> x = np.zeros(12, "D")
> print x.aligned.flags == (x.__array_interface__["data"][0] % 16 == 0) #
> always true
> print x.aligned.flags # not always true
> 
> I wonder why numpy 1.8.1 always returned 16 bytes aligned arrays in this
> case (unlikely to be a coincidence, as I try quite a few times with
> different sizes).
>  
> 
> 
>     is the array aligned?
> 
>     On 18.11.2014 19:37, David Cournapeau wrote:
>     > Additional point: it seems to always return aligned data on 1.8.1 (same
>     > platform/compiler/everything).
>     >
>     > On Tue, Nov 18, 2014 at 6:35 PM, David Cournapeau <cournape at gmail.com <mailto:cournape at gmail.com>
>     > <mailto:cournape at gmail.com <mailto:cournape at gmail.com>>> wrote:
>     >
>     >     It is on windows 32 bits, but I would need to make this work for
>     >     complex (pair of double) as well.
>     >
>     >     Is this a bug (I  assumed array creation methods would always create
>     >     aligned arrays for their type) ? Seems like quite a bit of code out
>     >     there would assume this (scipy itself does for example).
>     >
>     >     (the context is > 100 test failures on scipy 0.14.x on top of numpy
>     >     1.9., because f2py intent(inout) fails on work arrays created by
>     >     zeros, this is a windows-32 only failure).
>     >
>     >     David
>     >
>     >     On Tue, Nov 18, 2014 at 6:26 PM, Julian Taylor
>     >     <jtaylor.debian at googlemail.com <mailto:jtaylor.debian at googlemail.com>
>     >     <mailto:jtaylor.debian at googlemail.com
>     <mailto:jtaylor.debian at googlemail.com>>> wrote:
>     >
>     >         On 18.11.2014 19:20, David Cournapeau wrote:
>     >         > Hi,
>     >         >
>     >         > I have not followed closely the changes that happen in 1.9.1,
>     >         but was
>     >         > surprised by the following:
>     >         >
>     >         > x = np.zeros(12, "d")
>     >         > assert x.flags.aligned # fails
>     >         >
>     >         > This is running numpy 1.9.1 built on windows with VS 2008. Is it
>     >         > expected that zeros may return a non-aligned array ?
>     >         >
>     >
>     >         what is the real alignment of the array? Are you on 32 bit or 64
>     >         bit?
>     >         What is the alignment of doubles in windows (linux its 4 byte on
>     >         32 bit
>     >         8 byte on 64 bit (% special compiler flags)?
>     >         print x.__array_interface__["data"]
>     >
>     >         there are problems with complex types but doubles should be
>     >         aligned even
>     >         on 32 bit.
>     >         _______________________________________________
>     >         NumPy-Discussion mailing list
>     >         NumPy-Discussion at scipy.org
>     <mailto:NumPy-Discussion at scipy.org>
>     <mailto: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 <mailto:NumPy-Discussion at scipy.org>
>     > http://mail.scipy.org/mailman/listinfo/numpy-discussion
>     >
> 
>     _______________________________________________
>     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