[webkit-dev] Fwd: Transformations precision: double -> float
tomhudson at chromium.org
Fri Oct 12 02:25:53 PDT 2012
(again from corrected account)
Originally To: Gabor Rapcsanyi <rgabor at inf.u-szeged.hu>, CC: Mike Reed
<reed at google.com>
Do you have particular bottleneck functions that you have reason to
believe would benefit from ARM SIMD optimizations? Under what
workloads, and how much benefit?
We've see a few ridiculously expensive transform functions in WebKit
that my colleagues in Chapel Hill might be able to recall, but usually
it's the rendering engines that are hot, not WebKit itself.
We have seen places where double math appears to be absolutely
required for correctness: matrix inversion and path convexity testing;
there are some other areas we're experimenting with that seem to
require it as well. You'd probably need to survey WebKit for stability
(or just hack in doubles and run layout tests) to see how many other
places will break if you throw away the extra precision.
The rest of Chromium's renderer (Skia) uses float, and we've deployed
SSE/NEON and played with float vs double quite a bit there. The
float->double conversion at the WebKit/Skia boundary doesn't seem to
be too much of a drag, but doing it in any sort of inner loop can
really kill performance.
Meanwhile, there are a lot of places where switching from ARM assembly
to NEON in the renderer hasn't given us as much win as we'd hoped for,
which is why the question "how much benefit?" seems important to
answer before spending too much time polishing a set of typedefs.
More information about the webkit-dev