<div dir="ltr">Oops, forgot to mention my NumPy version:<div><br></div><div><div>In [72]: np.__version__</div><div>Out[72]: '1.9.2'</div></div><div><br></div><div>Francesc</div></div><div class="gmail_extra"><br><div class="gmail_quote">2015-07-06 17:18 GMT+02:00 Francesc Alted <span dir="ltr"><<a href="mailto:faltet@gmail.com" target="_blank">faltet@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi,<div><br></div><div>I have stumbled into this:</div><div><br></div><div><div><div>In [62]: sa = np.fromiter(((i,i) for i in range(1000*1000)), dtype=[('f0', np.int64), ('f1', np.int32)])</div><div><br></div><div>In [63]: %timeit sa['f0'].sum()</div><div>100 loops, best of 3: 4.52 ms per loop</div><div><br></div><div>In [64]: sa = np.fromiter(((i,i) for i in range(1000*1000)), dtype=[('f0', np.int64), ('f1', np.int64)])</div><div><br></div><div>In [65]: %timeit sa['f0'].sum()</div><div>1000 loops, best of 3: 896 µs per loop</div><div><br></div></div><div>The first structured array is made of 12-byte records, while the second is made by 16-byte records, but the latter performs 5x faster.  Also, using an structured array that is made of 8-byte records is the fastest (expected):</div><div><br></div><div><div>In [66]: sa = np.fromiter(((i,) for i in range(1000*1000)), dtype=[('f0', np.int64)])</div><div><br></div><div>In [67]: %timeit sa['f0'].sum()</div><div>1000 loops, best of 3: 567 µs per loop</div><div><br></div><div>Now, my laptop has a Ivy Bridge processor (i5-3380M) that should perform quite well on unaligned data:<br></div></div><div><br></div><div><a href="http://lemire.me/blog/archives/2012/05/31/data-alignment-for-speed-myth-or-reality/" target="_blank">http://lemire.me/blog/archives/2012/05/31/data-alignment-for-speed-myth-or-reality/</a><br></div><div><br></div><div>So, if 4 years-old Intel architectures do not have a penalty for unaligned access, why I am seeing that in NumPy?  That strikes like a quite strange thing to me.</div><div><br></div><div>Thanks,</div><div>Francesc</div><span class="HOEnZb"><font color="#888888"><div><br></div>-- <br><div>Francesc Alted</div>
</font></span></div></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">Francesc Alted</div>
</div>