9

Ever since the official Raspbian image came out, there has been much talking about hard-float - often cited as one of the most prominent Raspbian features, promising "tremendous performance boost".

I realize that floating point operations performed in hardware is many times faster than emulated, but I am sceptical about the real world performance improvements that it brings about. Floating point may be used extensively for scientific computation and yes, media encoding/decoding, but not so much for typical desktop usage and compiling.

How much effect does hard-float really have, artificial benchmarks left aside?

tlhIngan
  • 3,372
  • 5
  • 19
  • 33
  • For me, floating point calculation give tremendous boost on image processing project (at least for me, on the project i'm working on). – JeeShen Lee Jul 24 '12 at 01:45

1 Answers1

10

This caused some confusion for me as well and I spent some time spinning my wheels researching why web browsing in particular would receive such a great boost from hardware floating point operations as mentioned in raspberrypi's news.

There is a misunderstanding among software developers that the area of silicon in your computer dedicated to doing floating point operations is used only for Float data types (and similar) but this is not true. Luckily the wikipedia page on FPUs reminded me of what I learned in my digital logic design course. Most arithmetic done on a data type that includes a decimal can be done much faster in an FPU than it can be by a library that uses the regular CPU integer arithmetic. ARM's site talks a little bit about their version of an FPU and where it can be used to increase performance http://www.arm.com/products/processors/technologies/vector-floating-point.php.

As for day to day desktop performance consider any time a browser renders a page to your screen sub pixel values are calculated just for the font, and all browsers have a hard time just figuring out width of the page and getting everything to fit in. Any where that you can imagine decimal values are being used should see a performance increase from real hardware floating point operations rather than a software library faking it with integer operations.

Dan B
  • 2,907
  • 2
  • 20
  • 20