From ripley at stats.ox.ac.uk  Tue Jul 19 08:26:08 2011
From: ripley at stats.ox.ac.uk (Prof Brian Ripley)
Date: Tue, 19 Jul 2011 07:26:08 +0100 (BST)
Subject: [Rd] Manipulating single-precision (float) arrays in .Call
 functions
In-Reply-To: <1311048424023-3677232.post@n4.nabble.com>
References: <1311004330702-3675684.post@n4.nabble.com>
	<4E245D01.1010407@gmail.com>
	<1311027322959-3676667.post@n4.nabble.com>
	<CC044BB2-F9EA-440F-8A64-5B4639B2A529@r-project.org>
	<1311048424023-3677232.post@n4.nabble.com>
Message-ID: <alpine.LFD.2.02.1107190640280.28269@gannet.stats.ox.ac.uk>

On Mon, 18 Jul 2011, Alireza Mahani wrote:

> Simon,
>
> Thank you for elaborating on the limitations of R in handling float types. I
> think I'm pretty much there with you.
>
> As for the insufficiency of single-precision math (and hence limitations of
> GPU), my personal take so far has been that double-precision becomes crucial
> when some sort of error accumulation occurs. For example, in differential
> equations where boundary values are integrated to arrive at interior values,
> etc. On the other hand, in my personal line of work (Hierarchical Bayesian
> models for quantitative marketing), we have so much inherent uncertainty and
> noise at so many levels in the problem (and no significant error
> accumulation sources) that single vs double precision issue is often
> inconsequential for us. So I think it really depends on the field as well as
> the nature of the problem.

The main reason to use only double precision in R was that on modern 
CPUs double precision calculations are as fast as single-precision 
ones, and with 64-bit CPUs they are a single access.  So the extra 
precision comes more-or-less for free.  You also under-estimate the 
extent to which stability of commonly used algorithms relies on double 
precision.  (There are stable single-precision versions, but they are 
no longer commonly used.  And as Simon said, in some cases stability 
is ensured by using extra precision where available.)

I disagree slightly with Simon on GPUs: I am told by local experts 
that the double-precision on the latest GPUs (those from the last year 
or so) is perfectly usable.  See the performance claims on 
http://en.wikipedia.org/wiki/Nvidia_Tesla of about 50% of the SP 
performance in DP.

>
> Regards,
> Alireza
>
>
> --
> View this message in context: http://r.789695.n4.nabble.com/Manipulating-single-precision-float-arrays-in-Call-functions-tp3675684p3677232.html
> Sent from the R devel mailing list archive at Nabble.com.
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595



[Rd] Manipulating single-precision (float) arrays in .Call functions
Prof Brian Ripley