Re: Best FPGA for floating point performance



glen herrmannsfeldt wrote:

Marc Battyani wrote:

(snip)

In fact I'm not sure that full IEEE floating point accuracy is needed. For
sure single precision is not enough but probably double precision is not
really needed. The problem is that people who write the algorithms do it in
C(++) using double precision floats and they use double precision libraries,
etc. So it's not obvious to see what precision is really needed. After all
in an FPGA we can use the exact number of bit needed. (In fact it is even
possible that a fixed point format could work)


If fixed point will do it, even significantly wider than floating
point, it is likely the best way. Floating point add is a lot more expensive than fixed point. The difference is much smaller for
multiply and divide, not counting any overhead specific to full IEEE implementations.


-- glen

Glen, for this application, I'd argue that the floating point might be cheaper if he needs the dynamic range, especially if fixed point pushes him to wider than 35x35 multipliers. a floating point multiplier has very little extra compared to fixed point, and you can get away with a considerably smaller multiply. He may find that he can get away with a 17 bit significand with floating point (in which case a single multiplier per node in the array is needed), or at worst 4 multipliers for single precision. On the other hand, if his dynamic range demands more than 35 bit multiplication if converted to fixed point, then he's got 9 embedded multipliers per multiply, plus adders to combine the partials. Generally speaking, using floating point for multiplication and division is cheaper than using fixed point. The opposite is true of addition and subtraction. In this case however, his addition has to essentially be done in fixed point, so he can do the conversion to fixed using denorms, do the row add and then renormalize the sum. In any event, I don't see any problems getting this matrix multiply into a spartan3 as a floating point implementation.

--
--Ray Andraka, P.E.
President, the Andraka Consulting Group, Inc.
401/884-7930 Fax 401/884-7950
email ray@xxxxxxxxxxx http://www.andraka.com


"They that give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety."
-Benjamin Franklin, 1759



.



Relevant Pages

  • Re: Using a GPU for supercomputing?
    ... GPU, because the floating point is single-precision only, and HPC ... Exploiting Single Precision Math in HPC ...
    (comp.sys.ibm.pc.hardware.chips)
  • Re: Variable Precision Problem
    ... Most computers do it in binary, including floating point. ... In C, C++, and Java constants default to double precision unless ... That is, 0.1 is double, 0.1f is float. ... float (single precision) variable. ...
    (comp.lang.fortran)
  • Re: Spartns (fast and flexible tensor representation for Common Lisp)
    ... as a user if I give integer arguments to floating point ... functions I expect double precision result. ... I consider this as a bug in Ansi ... single precision is accurate enough for you. ...
    (comp.lang.lisp)
  • Re: Speed of floating point double vs single precision
    ... since the floating processor and all the library functions are double precision. ... > faster to do floating point arithmetic in double precision, since the hardware floating ... > units on PC's double or single precision these days, and based on this which is faster ...
    (microsoft.public.windowsxp.general)
  • Re: Precision
    ... Whether one does the subsequent calculations in internal ie integer format ... I have always used external format with Precision 4 since my ... floating point calcs which are done in binary have around 3% error albeit at ... positions it is IMPOSIBLE to have a result of 4 decimals with the 2 ...
    (comp.databases.pick)