[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] Volk: Am I getting all that's available for ARM?

From: Marcus Müller
Subject: Re: [Discuss-gnuradio] Volk: Am I getting all that's available for ARM?
Date: Wed, 07 Aug 2013 22:55:10 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130625 Thunderbird/17.0.7

On 08/07/2013 09:48 PM, Monahan-Mitchell, Tim wrote:
Because of the 'abi_softfp' test failing on my x86, I decided I did not need to 
re-build the ARM tool chain to support soft ABI to try and help Volk. Is that 
still correct? (I have been able to build and run gnuradio without the soft 
flag just fine).
I don't think -mfloat_abi=softfp (or even =soft) applies to x86; I think I 
remember the equivalent flag being something along the ways of -msoft-float... 
Or am I misunderstanding you and you talk about cross-compiling on x86 for arm?

However, whenever you use a float library function (that is, with abi_softfp whenever you 
do something with a float), the library needs to "understand" your kind of 
float, so, yes, if you want to use softfp in GNU Radio, I _think_ you'd need to rebuild 
your ARM toolchain to support that. I don't know if that improves performance at all...

But since I'm right now reading my GCC manual[1], I stumbled across one stance:

This specifies what floating-point hardware (or hardware emulation) is 
available on the target. Permissible names are: ‘vfp’, ‘vfpv3’, ‘vfpv3-fp16’, 
‘vfpv3-d16’, ‘vfpv3-d16-fp16’, ‘vfpv3xd’, ‘vfpv3xd-fp16’, ‘neon’, ‘neon-fp16’, 
‘vfpv4’, ‘vfpv4-d16’, ‘fpv4-sp-d16’, ‘neon-vfpv4’, ‘fp-armv8’, ‘neon-fp-armv8’, 
and ‘crypto-neon-fp-armv8’.
If -msoft-float is specified this specifies the format of floating-point values.

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.

So it might make sense to include -funsafe-math-optimizations, if 
vectorize-with-neon-quad does not do that implicitly.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]