[Numpy-discussion] strange sin/cos performance
Charles R Harris
Mon Aug 3 13:09:49 CDT 2009
On Mon, Aug 3, 2009 at 11:51 AM, Andrew Friedley <firstname.lastname@example.org>wrote:
> Charles R Harris wrote:
> > What compiler versions are folks using? In the slow cases, what is the
> > timing for converting to double, computing the sin, then casting back to
> > single?
> I did this, is this the right way to do that?
> t =
> "import numpy\n"
> "a = numpy.arange(0.0, 1000, (2 * 3.14159) / 1000,
> print "sin converted float 32/64", min(t.repeat(3, 10))
> Timings on my opteron system (2-socket 2-core 2GHz):
> sin float32 1.13407707214
> sin float64 0.133460998535
> sin converted float 32/64 0.18202996254
> Not too surprising I guess.
> gcc --version shows:
> gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-44)
> My compile flags for my Python 2.6.1/NumPy 1.3.0 builds:
> -Os -fomit-frame-pointer -pipe -s -march=k8 -m64
That looks right. When numpy doesn't find a *f version it basically does
that conversion. This is beginning to look like a hardware/software
implementation problem, maybe compiler related. That is, I suspect the fast
times come from using a hardware implementation. What happens if you use -O2
instead of -Os?
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the NumPy-Discussion