helm getting ARM support!
Moderators: MattKingUSA, khz
- sysrqer
- Established Member
- Posts: 2527
- Joined: Thu Nov 14, 2013 11:47 pm
- Has thanked: 320 times
- Been thanked: 153 times
- Contact:
Re: helm getting ARM support!
Well that's good news but it doesn't seem to be such a definite statement from reading that thread
-
- Established Member
- Posts: 1327
- Joined: Sun Aug 26, 2012 11:28 am
- Location: England
- Has thanked: 1 time
- Been thanked: 4 times
Re: helm getting ARM support!
I've updated the GH issue now as I've got Helm to build and run on my BPi but its not really usable as it xruns all over the place even with just one instance using the default patch.
I'm hoping Matt will add NEON support to helm to make it usable on ARM machines.
I'm hoping Matt will add NEON support to helm to make it usable on ARM machines.
-
- Established Member
- Posts: 2348
- Joined: Mon Jul 01, 2013 8:13 am
- Has thanked: 9 times
- Been thanked: 468 times
Re: helm getting ARM support!
You can do that by yourself, as falktx pointed out, that are just compile flags.danboid wrote:I'm hoping Matt will add NEON support to helm to make it usable on ARM machines.
run cat /proc/cpuinfo to see which flags be supported on your ARM maschine, then use them.
here is a example:
Code: Select all
cat /proc/cpuinfo
...
model name : ARMv7 Processor rev 5 (v7l)
...
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm
...
Code: Select all
-mcpu=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -fomit-frame-pointer -ftree-loop-linear -ffinite-math-only -fno-math-errno -fno-signed-zeros -fstrength-reduce -pipe
On the road again.
-
- Established Member
- Posts: 2348
- Joined: Mon Jul 01, 2013 8:13 am
- Has thanked: 9 times
- Been thanked: 468 times
Re: helm getting ARM support!
Well, I'm didn't use them by myself, no ARM devices here (except the MOD Quadra). This flags been suggested by Autostatic in the guitarix forum for running guitarix on the RPI2.
Yes, we use it in guitarix as default optimization flag.
falkTX wrote:-ftree-loop-linear is new to me, did you do some testing with that?
Yes, we use it in guitarix as default optimization flag.
gcc-4.4.1 wrote:-ftree-loop-linear
Perform linear loop transformations on tree. This flag can improve cache performance and allow further loop optimizations to take place.
gcc-5.2.0 wrote:-ftree-loop-linear
Perform loop interchange transformations on tree. Same as -floop-interchange. To use this code transformation, GCC has to be configured with --with-isl to enable the Graphite loop transformation infrastructure.
On the road again.
-
- Established Member
- Posts: 1327
- Joined: Sun Aug 26, 2012 11:28 am
- Location: England
- Has thanked: 1 time
- Been thanked: 4 times
Re: helm getting ARM support!
Thanks for your suggestions F and tramp!
F:
I'm using a Banana Pi not an RPi 2. Your flags should still apply as its basically the same CPU albeit dual instead of quad core and 1 Ghz instead of 900 Mhz.
Both:
I'll try your recommendations and see how much it improves things although I would imagine there is quite a lot more that could be done to properly optimize Helm for ARM. I grepped the source for sse2 and there is a fair bit of sse2-specific code. This would surely have to be rewritten for NEON to get the best performance.
F:
I'm using a Banana Pi not an RPi 2. Your flags should still apply as its basically the same CPU albeit dual instead of quad core and 1 Ghz instead of 900 Mhz.
Both:
I'll try your recommendations and see how much it improves things although I would imagine there is quite a lot more that could be done to properly optimize Helm for ARM. I grepped the source for sse2 and there is a fair bit of sse2-specific code. This would surely have to be rewritten for NEON to get the best performance.
-
- Established Member
- Posts: 1327
- Joined: Sun Aug 26, 2012 11:28 am
- Location: England
- Has thanked: 1 time
- Been thanked: 4 times
Re: helm getting ARM support!
Maybe I spoke too soon!
I've just had another look at the source and all the SSE2 stuff is within JUCE with the exception of mopo/src/utils.h but I'm not sure what that does.
With any luck Matt will find some way to increase performance for ARM devices beyond just changing build flags.
I've just had another look at the source and all the SSE2 stuff is within JUCE with the exception of mopo/src/utils.h but I'm not sure what that does.
With any luck Matt will find some way to increase performance for ARM devices beyond just changing build flags.
-
- Established Member
- Posts: 1327
- Joined: Sun Aug 26, 2012 11:28 am
- Location: England
- Has thanked: 1 time
- Been thanked: 4 times
Re: helm getting ARM support!
I rebuilt Helm tonight using all of the flags F recommended plus -ftree-loop-linear but Helm ran a lot worse than using the default flags. It takes just under 2 hours to build Helm and the included JUCE tree on my BPi so I think I'll wait to see what Matt comes up with before I try again.
I'm disappointed the RPi 3 still only has a 100Mb NIC and no SATA or USB 3. The faster, 64 bit CPU is nice but the lack of decent storage IO means I still prefer my BPi. It makes a massive difference for usability and responsiveness running off a SATA HD or SSD vs an SD card or USB 2 HD that is sharing the same bus as the NIC and the other USB devices.
I'm disappointed the RPi 3 still only has a 100Mb NIC and no SATA or USB 3. The faster, 64 bit CPU is nice but the lack of decent storage IO means I still prefer my BPi. It makes a massive difference for usability and responsiveness running off a SATA HD or SSD vs an SD card or USB 2 HD that is sharing the same bus as the NIC and the other USB devices.
Last edited by danboid on Tue Mar 01, 2016 7:46 am, edited 1 time in total.
-
- Established Member
- Posts: 2348
- Joined: Mon Jul 01, 2013 8:13 am
- Has thanked: 9 times
- Been thanked: 468 times
Re: helm getting ARM support!
@falkTXfalkTX wrote: @tramp:
I see you don't have -ffast-math in there, why is that?
I forgot to answer, well , -ffast-math gime wrong calculated float values in the old day's, That's why I didn't use it any more and use only selected flags from the list which -ffast-math activate. I didn't know if that behave is fixed with newer compilers, but I guess it is.
On the road again.