[Numpy-discussion] Unnecessarily bad performance of elementwise operators with Fortran-arrays
Fri Nov 9 13:39:59 CST 2007
On Freitag 09 November 2007, Travis E. Oliphant wrote:
> > While this is
> > a good idea (also probably quite some work), the real thing bugging me is
> > that the above DOUBLE_add could (and should!) be called by the ufunc
> > framework in such a way that it is equally efficient for C and Fortran
> > arrays.
> Yes, that's what I was talking about. There is actually a path through
> the ufunc code where this loop is called only once. The requirement
> right now is that all the arrays are C-contiguous, but this should be
> changed to all arrays have the same contiguousness (and the output-array
> creation code changed to create Fortran-order arrays when the inputs are
> all Fortran-order).
After some measurements, I must say that even the slower Fortran variant is
competitive (read: faster ;-) ), compared with our very flexible dynamic
functors used in the current interactive VIGRA. IOW: Good job. :-)
> > BTW: What are the "void *func" in core/src/umathmodule.c.src arguments
> > for? Shouldn't that be "void * /*func*/", since the parameters are
> > never used?
> Sure, it could be void * /* func*/
> You'll have to forgive my ignorance, but does that matter? Are we
> using up a register or something by naming an unused argument?
No, but it triggers a compiler warning ("unused parameter foo", if warnings
are enabled), which I even think to be useful. At least in g++, but that
obviously showed my ignorance of C, since gcc -W does not complain. ;-)
BTW: I am getting an interesting warning for
numpy/core/src/scalartypes.inc.src:288 (empty 'if' body), which indeed looks
suspicious. The rest of the warnings can be neglected I AFAICS.
Ciao, / / .o.
/ / ANS ooo
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 189 bytes
Desc: This is a digitally signed message part.
Url : http://projects.scipy.org/pipermail/numpy-discussion/attachments/20071109/cf7a66ae/attachment.bin
More information about the Numpy-discussion