Koen's right gcc vectorization is terrible.
You don't need to build the Angstrom image with the Neon enabled to use
Neon instructions in your programs. Build Angstrom with the standard gcc
compiler options. Then, when you compile your programs for the Neon,
reference the Angstrom compiler, but add the -mfpu=neon
-mfloat-abi=softfp flags to the compiler.
I recommend staying with -mfloat-abi=softfp. This flag controls how
floating point data is passed to subroutines, so it won't effect
performance except on the entrance/exit of these routines. I have seen
multiple inquires made on the CodeSourcery-Arm alias dealing with the
-mfloat-abi=hard option. It doesn't work in CodeSourcery-Lite, which is
basically GNU gcc. They talk about special premium libraries being
needed to make it functional.
To use the Neon effectively, programs need to be structured specifically
for the Neon. I recommend either using the Neon Intrinsics or inserting
Neon assembler instructions into the gcc program. The intrinsics
sometimes generate extra vmov instructions and have a have difficulty
updating in-place (e.g. matrix transpose without using additional work
variables).
To program effectively in gcc assembly you will need to use some
undocumented gcc constraints (see
http://hardwarebug.org/2010/07/06/arm-inline-asm-secrets/).
Regards,
Bob Feretich
On 2/20/2011 3:00 AM, [email protected] wrote:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 20-02-11 17:05, Jonathan Wilson wrote:
>/ On Sun, 2011-02-20 at 09:14 +0100, Koen Kooi wrote:
/>>/ -----BEGIN PGP SIGNED MESSAGE-----
/>>/ Hash: SHA1
/>>/
/>>/ On 19-02-11 20:28, Jonathan Wilson wrote:
/>>>/ Bitbake bombs out with:-
/>>>/
/>>>/ ERROR: Build
/>>>/ of
/home/wilsonjonathan/oebeagle/angstrom-setup-scripts/sources/openembedded/recipes/gnome/pyorbit_2.24.0.bb
do_configure failed
/>>>/ ERROR: Task 8977
/>>>/
(/home/wilsonjonathan/oebeagle/angstrom-setup-scripts/sources/openembedded/recipes/gnome/pyorbit_2.24.0.bb,
do_configure) failed with exit code 1
/>>>/
/>>>/ Changes manually made to files before compilation.
/>>>/
/>>>/ local.conf
/>>>/ BB_NUMBER_THREADS = "2"
/>>>/
/>>>/ DISTRO = "angstrom-2010.x"
/>>>/ MACHINE ?= "beagleboard"
/>>>/
/>>>/ # Set TMPDIR instead of defaulting it to /tmp
/>>>/ TMPDIR =
/>>>/
"/home/wilsonjonathan/oebeagle/angstrom-setup-scripts/build/tmp-angstrom_2010.x"
/>>>/
/>>>/ tune-cortexa8.inc
/>>>/ ARM_FP_MODE ?= "hardfp"
/>>/
/>>/ Why are you changing that there? You are supposed to set that in
local.conf
/>/
/>/ Total lack of understanding of the language used in .bb files. Re: "?="
/>/ which I'm guessing does mean if variable is not set then set it.
/>/
/>/ I'm not a pc programmer, AS/400's application programmer by trade, but
/>/ rather a hobbyist playing around with arm linux since getting some
/>/ rather cool NAT's to store my photo library.
/>/
/>>/
/>>>/ To produce hard float, -funsafe... was added due to a note on the TI
/>>>/ website.
/>>/
/>>/ It works well without that flag, which website told you to add it?
/>/
/>/ As per the gcc website :
/>/ http://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html
/>/
/>/ If the selected floating-point hardware includes the NEON
/>/ extension (e.g. -mfpu=`neon'), note that floating-point
/>/ operations will not be used 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.
/>/
/>/ Which as I read it means that it wont vectorise causing a possible
/>/ performance hit, although its debatable how much of difference in
/>/ performance there would be in practise.
/
The vectorizer in gcc sucks, so in the rare cases when it vectorizes, it
generally is a lot slower than plain old vfp. The default sets in
angstrom are basically as fast as you can safely get :)
regards,
Koen
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Darwin)
iD8DBQFNYUCJMkyGM64RGpERAkqXAJ4x5a0zkiiesfXMAYalM5uXeTX8RwCeNVJS
BIwEqDc0njaSITdlI/9IhXk=
=jvOi
-----END PGP SIGNATURE-----
_______________________________________________
Angstrom-distro-devel mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/angstrom-distro-devel