Compiling BRP for AARCH64-Linux

Bikeman (Heinz-Bernd Eggenstein)
Bikeman (Heinz-...
Moderator
Joined: 28 Aug 06
Posts: 3522
Credit: 686127184
RAC: 579488

I don't have a 64 bit Linux

I don't have a 64 bit Linux installed on any of my ARMv8 boxes, so I won't be able to be of much help.

I wonder if your distribution has libFFTW available, perhaps they made a fork that is NEON enabled. You could then try to use the "official" lib from the repo instead of compiling your own.

Getting in touch with the contributor who made the AARCH64-Linux changes to FFTW would be another possibility.

JagDoc
JagDoc
Joined: 25 Feb 05
Posts: 3
Credit: 44684712
RAC: 52781

RE: You could then try to

Quote:

You could then try to use the "official" lib from the repo instead of compiling your own.


I run on my Odroid-C2 the 1.47 NEON_Beta as anonymus Platform without problem.
https://einsteinathome.org/host/12223533

Without app_info.xml i get only v1.06. Errors after 1-2 sec.

I think the problem is that BM can not find processor features like NEON.

N30dG
N30dG
Joined: 29 Feb 16
Posts: 89
Credit: 4805610
RAC: 0

RE: Getting in touch with

Quote:
Getting in touch with the contributor who made the AARCH64-Linux changes to FFTW would be another possibility.


I have opened a Issues on FFTW-Git-Repo https://github.com/FFTW/fftw3/issues/60

Quote:


I run on my Odroid-C2 the 1.47 NEON_Beta as anonymus Platform without problem.
https://einsteinathome.org/host/12223533

Without app_info.xml i get only v1.06. Errors after 1-2 sec.

I think the problem is that BM can not find processor features like NEON.


But the 1.47 NEON_Beta should be compiled for ARMv6 so it's 32bit. I don't understand why you can run these O.o.
And how to setup the App_Info to achieve the BRP 1.47?

JagDoc
JagDoc
Joined: 25 Feb 05
Posts: 3
Credit: 44684712
RAC: 52781

I have copied the

I have copied the 1.47_NEON_Beta from one of my XU4 to the C2.

You can download it from here:
http://einstein-dl3.phys.uwm.edu/download/einsteinbinary_BRP4_1.47_arm-unknown-linux-gnueabihf__NEON_Beta

    
        einsteinbinary_BRP4
    
    
        einsteinbinary_BRP4_1.47_arm-unknown-linux-gnueabihf__NEON_Beta
        
    
    
        einsteinbinary_BRP4
        147
        
           einsteinbinary_BRP4_1.47_arm-unknown-linux-gnueabihf__NEON_Beta
           
        
    

I run on all my Odroid with Linux first (to get no problem with Yoyo and other):
sudo apt-get install libsfstdc++6

On the C2 many projects run without problem.
(Universe, Pogs, Yoyo, Seti, Goofyxgrid, Wuprop)

You must put in the cc_config.xml :

 
arm-unknown-linux-gnueabihf 
 
N30dG
N30dG
Joined: 29 Feb 16
Posts: 89
Credit: 4805610
RAC: 0

What kind of Linux? I guess

What kind of Linux? I guess it's a 32bit-Debian or Ubuntu or maybe some kind of a Hybrid-Kernel? The libsfstdc++6 isn't available for pure AARCH64-Systems. (Can't find them in Package-List's).

Thank you for the link & App_Info :). But the einsteinbinary_BRP4_1.47_arm-unknown-linux-gnueabihf__NEON_Beta is not executable on my system.
bash: ./einsteinbinary_BRP4_1.47_arm-unknown-linux-gnueabihf__NEON_Beta: No such file or directory
As the name say's it's eabihf. I'm try to archive an pure 64bit-App.

But thank you for the Information.
If I don't able to get it running I'm using your way, for shure :)

JagDoc
JagDoc
Joined: 25 Feb 05
Posts: 3
Credit: 44684712
RAC: 52781

It is Ubuntu 16.04 (v1.1)

It is Ubuntu 16.04 (v1.1) from here:
http://odroid.com/dokuwiki/doku.php?id=en:c2_release_linux_ubuntu

I have set the owner and group to boinc for the app.
And set it to executable.

N30dG
N30dG
Joined: 29 Feb 16
Posts: 89
Credit: 4805610
RAC: 0

RE: It is Ubuntu 16.04


Okay it's the one provided by Hardkernel.
I never used this. And Hardkernel don't provide any usefull informations about the image.But I download and take a closer look. But in fakt that you can run the einsteinbinary_BRP4_1.47_arm-unknown-linux-gnueabihf__NEON_Beta it should be some kind of hybrid-kernel.
*Please correct me if I'm wrong*

Quote:
I have set the owner and group to boinc for the app.
And set it to executable.


I done this also(-rwxr-xr-x). But I can't execute it.
I'm running ArchLinuxARM and this is definitely a pure AARCH64-OS.

Don't get me wrong, I do that mainly for fun & learning.
I don't think that there are speed-benefit's running the BRP-App as 64bit.
And if I'm started a think! I finsh it ;)

koschi
koschi
Joined: 17 Mar 05
Posts: 86
Credit: 1655454430
RAC: 232001

root@odroidc2-1:~# dpkg -l |

root@odroidc2-1:~# dpkg -l | grep libsfstd
ii  libsfstdc++6:armhf                    5.3.1-12ubuntu4                            armhf        GNU Standard C++ Library v3 (soft float ABI)


So libsfstdc++6 is from the 32bit armhf branch, it might or might not be needed to run Einstein. Accidentally it's also installed on the 64bit host I got 1.47 NEON_beta to work.
Either way, if you fail because of a missing library, thats some ms/s into the computation, not showing the error you are getting.

Which directory did you place einsteinbinary_BRP4_1.47_arm-unknown-linux-gnueabihf__NEON_Beta in? Being in that directory, when you run ./einsteinbinary_BRP4_1.47_arm-unknown-linux-gnueabihf__NEON_Beta manually as root or boinc user, you still get the "No such file or directory" error?

I'm appreciating the effort to get a 64bit version with neon & fftw+neon compiled!

N30dG
N30dG
Joined: 29 Feb 16
Posts: 89
Credit: 4805610
RAC: 0

RE: Which directory did

Quote:

Which directory did you place einsteinbinary_BRP4_1.47_arm-unknown-linux-gnueabihf__NEON_Beta in? Being in that directory, when you run ./einsteinbinary_BRP4_1.47_arm-unknown-linux-gnueabihf__NEON_Beta manually as root or boinc user, you still get the "No such file or directory" error?


Yes I've placed it into /var/lib/boinc/projects/einstein.phys.uwm.edu and I'm root. I'm always root ;)
I get this error always I'm trying to run an armhf-App under ArchLinuxARM(AARCH64) because there is no multiLib-Support.
Under Ubuntu it works, There I can run the 1.47neon_beta. But it's not what I'm trying to achieve.

But what I can do for you by now, is to provide an armhf-BRP4-App(32bit) optimized for ARMv8+neon. That maybe gives an performance-increase. Because the 1.47_neon_beta is compiled for ARMv6. And the neon-engine under ARMv8 is 128bit instead of 64bit-wide for ARMv6/v7. So the Compiler may can optimzie better.

koschi
koschi
Joined: 17 Mar 05
Posts: 86
Credit: 1655454430
RAC: 232001

RE: RE: Which directory

Quote:
Quote:

Which directory did you place einsteinbinary_BRP4_1.47_arm-unknown-linux-gnueabihf__NEON_Beta in? Being in that directory, when you run ./einsteinbinary_BRP4_1.47_arm-unknown-linux-gnueabihf__NEON_Beta manually as root or boinc user, you still get the "No such file or directory" error?

Yes I've placed it into /var/lib/boinc/projects/einstein.phys.uwm.edu and I'm root. I'm always root ;)
I get this error always I'm trying to run an armhf-App under ArchLinuxARM(AARCH64) because there is no multiLib-Support.
Under Ubuntu it works, There I can run the 1.47neon_beta. But it's not what I'm trying to achieve.


Can't help it, the error looks weird. Eg. on my RPi3 (with 32bit OS) I get below messages when trying to run incompatible aarch64 or i386 binaries:

root@raspberrypi:/cluster# ./setiathome-8.0.aarch64-unknown-linux-gnu_3437_64bit
-bash: ./setiathome-8.0.aarch64-unknown-linux-gnu_3437_64bit: cannot execute binary file: Exec format error
root@raspberrypi:/cluster/Setibench/KWSN-Bench-Linux-MBv7_v2.01.08# ./rescmpv5_l
-bash: ./rescmpv5_l: cannot execute binary file: Exec format error
root@raspberrypi:/cluster/Setibench/KWSN-Bench-Linux-MBv7_v2.01.08# file ./rescmpv5_l
./rescmpv5_l: ELF 32-bit LSB executable, Intel 80386, version 1 (GNU/Linux), statically linked, for GNU/Linux 2.6.4, BuildID[sha1]=b5c397bf4e049bd3e9eb70772dd8b341d3d41d02, stripped


I would expect an error into that direction, able to access the file, but not able to work with / run it.

Quote:

But what I can do for you by now, is to provide an armhf-BRP4-App(32bit) optimized for ARMv8+neon. That maybe gives an performance-increase. Because the 1.47_neon_beta is compiled for ARMv6. And the neon-engine under ARMv8 is 128bit instead of 64bit-wide for ARMv6/v7. So the Compiler may can optimzie better.

I'd be happy testing that :-)

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.