On 06/29/2011 07:59 PM, Nick Copeland wrote:
- Mobile
processors generally do NOT have good
floating point power. Sometimes by a factor
of 1000 flops.
It can be a factor of 1000 if the binaries are built assuming there is
an FPU.
What happens is you get a system call for every failed float operation.
If the
toolset is geared to understand that none is available then it generates
soft
floating point operations that just occur in the user thread.
Performance hit
is about two zeroes less than you are discussing here. Android appears to
generate softfloat code.
No, when building with Android NDK using the armeabi-v7a ABI, hard floats are
used. This works on ARMv7, which means a lot of devices, and certainly the
majority.
The ARM
softfloat overhead is not that great and the coding required to get
access to the GPUs is suitable that developers will implement them
for optimisations.
Soft floats are insanely slow on Android in my experience.
You got an FPU on most devices, you can compile for hard floats, activate ARM
NEON if you wish too, and even check for cpu features at runtime. I don't see
why you want to use the GPU for optimization.
--
Olivier