[Numpy-discussion] Disabling Extended Precision in NumPy (like -ffloat-store)

Jason Grout jason-sage@creativetrax....
Fri Apr 23 13:53:13 CDT 2010


On 04/21/2010 09:47 AM, Adrien Guillon wrote:
> Hello all,
>
> I've recently started to use NumPy to prototype some numerical
> algorithms, which will eventually find their way to a GPU (where I
> want to limit myself to single-precision operations for performance
> reasons).  I have recently switched to the use of the "single" type in
> NumPy to ensure I use single-precision floating point operations.
>
> My understanding, however, is that Intel processors may use extended
> precision for some operations anyways unless this is explicitly
> disabled, which is done with gcc via the -ffloat-store operation.
> Since I am prototyping algorithms for a different processor
> architecture, where the extended precision registers simply do not
> exist, I would really like to force NumPy to limit itself to using
> single-precision operations throughout the calculation (no extended
> precision in registers).
>
> How can I do this?
>    


If you want to avoid any assumptions the hardware might make that you 
aren't aware of, you might look at software libraries which emulate 
single precision numbers.  For example, in Sage [1], we have a floating 
point type that is a python object wrapped around an MPFR [2] number 
(look at the RealField class or email sage-support for details).  You 
might also look at minifloat libraries or related libraries.  For 
example, a google search turns up 
http://groups.google.com/group/comp.lang.python/browse_thread/thread/ba2b69a8fd8d45f6.  
The cool thing is that the numpy arrays can use these objects as 
naturally as other python objects.

Thanks,

Jason

[1] http://www.sagemath.org
[2] http://www.mpfr.org






More information about the NumPy-Discussion mailing list