Dear All,
I would like to ask about floating-point HW on i.MX6.
In the document which describes about GCC options, the description about NEON is as follows.
“If the selected floating-point hardware includes the NEON extension (e.g. -mfpu=‘neon’), note that floating-point operations are not generated by GCC's auto-vectorization pass unless -funsafe-math-optimizations is also specified. This is because NEON hardware does not fully implement the IEEE 754 standard for floating-point arithmetic (in particular denormal values are treated as zero), so the use of NEON instructions may lead to a loss of precision.“
You can see the full document at the following URL.
http://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html
In my customer’s lab, he saw the execution time was reduced by half when –funsafe-math-optimization flag was specified in GCC command.
So, the customer has the following question on that.
(1)
Can I understand that the flag, –funsafe-math-optimization, enables NEON H/W?
(2)
According to the documentation of GCC, the use of NEON instructions may lead to a loss of precision.
Could you show me in what use-cases the loss of precision may occur exactly?
(3)
The customer supposes that he use NEON for MAC operation of the finite numbers and denormal numbers in his application software.
And, he thinks the precision loss will not be problem in the above usage.
Is he correct?
Thanks,
Miyamoto
Hi
Here is response from our engineer.
--------------------------------------------------------------------------
We are not familar with GCC toolchain. There are some descriptions about this option: http://gcc.gnu.org/wiki/FloatingPointMath
The user can also post the question to GCC maillist. http://gcc.gnu.org/lists.html to get more helps.
--------------------------------------------------------------------------
If you still have question please feel free to contact us.
Thanks,
Yixing
Hi All,
I am still waiting for your reply.
BR,
Miyamoto