Setiathome_v8 for Raspberry Pi?

Message boards : SETI@home Enhanced : Setiathome_v8 for Raspberry Pi?
Message board moderation

To post messages, you must log in.

1 · 2 · 3 · 4 . . . 5 · Next

AuthorMessage
MarkJ
Volunteer tester

Send message
Joined: 18 Oct 09
Posts: 48
Credit: 73,283
RAC: 0
Australia
Message 55845 - Posted: 11 Jan 2016, 12:02:48 UTC
Last modified: 11 Jan 2016, 12:04:20 UTC

I attached a Pi2 to the project and it can't get any work. The message in the BOINC log says:

SETI@home Beta Test 11-01-2016 10:57 PM Sending scheduler request: To fetch work.
SETI@home Beta Test 11-01-2016 10:57 PM Requesting new tasks for CPU
SETI@home Beta Test 11-01-2016 10:57 PM Scheduler request completed: got 0 new tasks
SETI@home Beta Test 11-01-2016 10:57 PM No tasks sent
SETI@home Beta Test 11-01-2016 10:57 PM No tasks are available for SETI@home v8
SETI@home Beta Test 11-01-2016 10:57 PM Tasks for NVIDIA GPU are available, but your preferences are set to not accept them
SETI@home Beta Test 11-01-2016 10:57 PM Tasks for AMD/ATI GPU are available, but your preferences are set to not accept them
SETI@home Beta Test 11-01-2016 10:57 PM Tasks for Intel GPU are available, but your preferences are set to not accept them

Its this host

Do we have a v8 app for the Raspberry Pi2?
ID: 55845 · Report as offensive
William
Volunteer tester
Avatar

Send message
Joined: 14 Feb 13
Posts: 606
Credit: 588,843
RAC: 0
Message 55848 - Posted: 11 Jan 2016, 12:27:01 UTC

Claggy emailed to Eric on the 8th

Built Armv7 apps at r3304 in the meantime, a generic one, and a slightly faster one with fast maths selected,
Benched them with the latest reference wu, and the PGv8 wu set, attached both apps, and the result file.

Feel free to deploy one of them at Seti Beta.


Looks like a v7 raspberry pi app to me - also Claggy wrote n the news thread there would eventually be armv7 apps for pi 2 (not arm av6/pi), so I guess that was it.

if it doesn't turn up in a few days amongst the deployed apps you may want to ask Eric about them in the news thread - Claggy is taking a break from SETI/BOINC so he will probably not follow up himself in the near future.
A person who won't read has no advantage over one who can't read. (Mark Twain)
ID: 55848 · Report as offensive
mimo
Volunteer tester

Send message
Joined: 4 Aug 08
Posts: 11
Credit: 1,437,079
RAC: 0
Slovakia
Message 56384 - Posted: 31 Jan 2016, 12:50:21 UTC - in response to Message 55848.  

yesterday builded latest rev from svn - need to add one minssing include there - for both PIs
used native in march, mcpu and mtune, hard float , fast math and fpu is neon-vfpv4 for PI 2, vfp for PI

builds are on lunatics website, use app info xml for usage.
now running successfully on mine PIs (have both of them)
ID: 56384 · Report as offensive
MarkJ
Volunteer tester

Send message
Joined: 18 Oct 09
Posts: 48
Credit: 73,283
RAC: 0
Australia
Message 56486 - Posted: 4 Feb 2016, 12:22:45 UTC

Just picked up an app from the project. Unfortunately it's for the armv6l so not really suitable for a Pi2. It looks like the scheduler isn't using the CPU features being reported to give the best app, which should be an armv7l using the neon extensions as mimo mentioned.

I expect they'll take over a week to complete due to being the wrong app, maybe if not much progress by tomorrow I'll abort them.
ID: 56486 · Report as offensive
MarkJ
Volunteer tester

Send message
Joined: 18 Oct 09
Posts: 48
Credit: 73,283
RAC: 0
Australia
Message 56501 - Posted: 4 Feb 2016, 20:38:11 UTC

One task completed after 1000+ seconds. Next request for work picked up an armv7l task, so hopefully it will be quicker. The 3 remaining armv6l tasks are about 36% done after 9 hours so I will let them run to completion.
ID: 56501 · Report as offensive
MarkJ
Volunteer tester

Send message
Joined: 18 Oct 09
Posts: 48
Credit: 73,283
RAC: 0
Australia
Message 56535 - Posted: 6 Feb 2016, 2:20:54 UTC
Last modified: 6 Feb 2016, 2:26:29 UTC

armv7l finished in 100,000 sec, the remaining armv6l tasks came in at 97,000 sec apart from the one that overflowed. The angle range was totally different between the v7l and v6l tasks. The app outputs the cpu features so I suspect it might choose neon extension if they're available regardless of it being an armv6l or armv7l.

Everything seems to be validating.

@mimo,
I presume computer 77324 is your Pi2. It doesn't have any tasks listed. Have you run that optimised app you mentioned before on it, if so what are your run times like?
ID: 56535 · Report as offensive
mimo
Volunteer tester

Send message
Joined: 4 Aug 08
Posts: 11
Credit: 1,437,079
RAC: 0
Slovakia
Message 56562 - Posted: 7 Feb 2016, 10:57:30 UTC - in response to Message 56535.  

i resumed my PI 2 for this project so i will compute some tasks now and compare it with non beta tasks

on my PI2 i am using now an app wich is more optimized (now really using neon in fftw and app) and in meanwhile i am trying to compile them both with linaro toolchain to see if there will be even more speedup
ID: 56562 · Report as offensive
Claggy
Volunteer tester

Send message
Joined: 29 May 06
Posts: 1037
Credit: 8,440,339
RAC: 0
United Kingdom
Message 56569 - Posted: 8 Feb 2016, 12:00:04 UTC - in response to Message 56535.  

armv7l finished in 100,000 sec, the remaining armv6l tasks came in at 97,000 sec apart from the one that overflowed.

My slightly earlier revision armv7l app comes in at ~95,000 secs, without using any extra options, not even fast mathes,

Using all the 'march, mcpu and mtune, hard float, fast math and fpu is neon-vfpv4 for PI 2, vfp for PI' options is a bad idea,
the point of the project supplying armv6l and armv7l apps is that they should work on any compatible host.

The armv7l app doesn't work on the Parallella, It doesn't have vfpv4:

host 74287
features: swp half thumb fastmult vfp edsp neon vfpv3 tls vfpd32


<core_client_version>7.6.22</core_client_version>
<![CDATA[
<message>
process exited with code 193 (0xc1, -63)
</message>
<stderr_txt>
SIGILL: illegal instruction
Stack trace (2 frames):
[0xe1144]
[0x2c7080]

Exiting...


Claggy
ID: 56569 · Report as offensive
Tom Rinehart
Volunteer tester

Send message
Joined: 22 Jul 15
Posts: 21
Credit: 113,162
RAC: 0
United States
Message 56577 - Posted: 8 Feb 2016, 17:52:23 UTC - in response to Message 56569.  

I built the two apps that are being served by Beta. I have since sent Eric revised builds that are more generic, but I don't think he has posted them to the server. I will resend them to Eric. My latest build of the armv7l app uses just -mfpu=neon. It should run on any armhf with neon.

My experience is that the more generic builds run faster. I will share my latest build notes this evening. I'd like to figure out the best builds for both the basic armv6 (Pi1) and the armv7 (neon armhf devices and Pi2).

I also sent Eric an e-mail about a file issue with the armv6l app. The server is pushing out an app_info.xml file with the armv6l app. If you restart your computer or Boinc, you will get an error and Boinc will abandon the tasks. I had to detach from the project and reattach to get it to work again.
ID: 56577 · Report as offensive
Tom Rinehart
Volunteer tester

Send message
Joined: 22 Jul 15
Posts: 21
Credit: 113,162
RAC: 0
United States
Message 56579 - Posted: 8 Feb 2016, 20:21:20 UTC

I got an email from Eric that he is updating Beta today with my latest app builds and fixing the app_info.xml file problem. Please post if the armv7l app works on other Linux armhf devices. Eric noted and I have noticed that the current armv6l runs about 15% faster than the armv7l on a Pi2. It is interesting and should be the other way around. Hopefully the new builds will be better.

- Tom
ID: 56579 · Report as offensive
MarkJ
Volunteer tester

Send message
Joined: 18 Oct 09
Posts: 48
Credit: 73,283
RAC: 0
Australia
Message 56580 - Posted: 8 Feb 2016, 20:46:39 UTC

I noticed the armv6l seem to be slightly faster than v7l. I haven't tried mimo's optimised build yet. I couldn't find it on the Lunatics site.

As for testing on other arm devices I have a couple of Parallella's so I will attach one of them to the project to see how they go.

Is there any advantage in having fftw wisdom files, if so what fft lengths? That is does the app read them if they are present. I have some wisdom files due to an earlier Einstein app that would use them.
ID: 56580 · Report as offensive
Tom Rinehart
Volunteer tester

Send message
Joined: 22 Jul 15
Posts: 21
Credit: 113,162
RAC: 0
United States
Message 56583 - Posted: 9 Feb 2016, 4:13:48 UTC

The two Linux armhf 8.01 apps were built with the following:

Start with a fresh installation of Raspbian version: 2015-11-21-raspbian-jessie-lite on a SD card.

sudo apt-get update
sudo apt-get dist-upgrade

Get prerequisites

sudo apt-get update
sudo apt-get install git make m4 libtool autoconf pkg-config automake subversion libcurl4-openssl-dev libssl-dev gettext docbook2x docbook-xml libxml2-utils zlib1g-dev libsm-dev libice-dev libxmu-dev libxi-dev libx11-dev libnotify-dev freeglut3-dev libfcgi-dev libjpeg8-dev libxss-dev libxcb-util0-dev libxcb-dpms0-dev libxext-dev libstdc++6-4.7-dev libfftw3-dev

Note - The Debian-based versions of libfftw3-dev have a patch that does run-time detection of neon (see the details in the patches folder: http://http.debian.net/debian/pool/main/f/fftw3/fftw3_3.3.4-2.debian.tar.xz).

Get and build the Boinc libraries - Current Version

git clone https://github.com/BOINC/boinc boinc
cd boinc
./_autosetup
./configure --disable-server --disable-manager LDFLAGS=-static-libgcc --with-boinc-platform=arm-unknown-linux-gnueabihf
make (“make -j 4” on the Pi2 to make with all 4 cores)
cd ~

Now get the Seti_boinc source, and build the app:

svn checkout https://setisvn.ssl.berkeley.edu/svn/seti_boinc@3304 seti_boinc
(Currently revisions after 3304 don’t compile, so get 3304)

cd seti_boinc

./_autosetup

On the Pi1:
./configure CFLAGS="-O3" CXXFLAGS="-O3" BOINCDIR=/home/pi/boinc --enable-client --enable-static --disable-shared --disable-server --enable-fast-math --with-float-abi=hard --with-fpu=vfp --disable-neon

On the Pi2:
./configure CFLAGS="-O3" CXXFLAGS="-O3" BOINCDIR=/home/pi/boinc --enable-client --enable-static --disable-shared --disable-server --enable-fast-math --with-float-abi=hard --with-fpu=neon

make (“make -j 4” on the Pi2 to make with all 4 cores)

ls -l client

On Pi1: if setiathome-8.0.armv6l-unknown-linux-gnueabihf exists, compilation has been successful.
On Pi2: if setiathome-8.0.armv7l-unknown-linux-gnueabihf exists, compilation has been successful.

Please let me know if you have other ideas on building the apps. Strangely the armv6l and armv7l apps are exactly the same size which makes me think that the two builds produce the same code (I just noticed this tonight on one of my Pi2's that downloaded both apps). I'm building the armv6l app on a Raspberry Pi Model B Rev. 2 (Pi1) and the armv7l on a Raspberry Pi 2 Model B (Pi2).

- Tom
ID: 56583 · Report as offensive
Tom Rinehart
Volunteer tester

Send message
Joined: 22 Jul 15
Posts: 21
Credit: 113,162
RAC: 0
United States
Message 56584 - Posted: 9 Feb 2016, 6:36:17 UTC - in response to Message 56583.  

I read through the Makefiles built by configure on both the Pi1 and Pi2.

The Pi1 Makefile has the following CFLAGS/CXXFLAGS:

CFLAGS = -O3 -I/usr/local/include -ffast-math -I/usr/include -I/usr/include/openssl


It also has:

FP_ABI_FLAGS = -mfloat-abi=hard
FP_FLAGS = -mfpu=vfp



The Pi2 Makefile has the following CFLAGS/CXXFLAGS:

CFLAGS = -O3 -DUSE_NEON -I/usr/local/include -ffast-math -I/usr/include -I/usr/include/openssl


and:

FP_ABI_FLAGS = -mfloat-abi=hard
FP_FLAGS = -mfpu=neon


In the configure options, it looks like I can drop the CXXFLAGS. Reading the configure script, it looks like it will make them the same.

For the armv6l build, it looks like the CFLAGS should be "-O3 -mfloat-abi=hard -mfpu=vfp" since configure isn't adding them.

For the armv7l build, it looks like the CFLAGS should be ""-O3 -mfloat-abi=hard -mfpu=neon"

Claggy - My assumption is that all computers running Linux armhf (arm-unknown-linux-gnueabihf reported by Boinc) at a minimum would work with mfloat-abi=hard and mfpu=vfp. So we would want an app that works with these (the armv6l app) and one that works with the neon extensions (the armv7l app). Am I wrong about this?

Also, should I drop --enable-fast-math from the configure line. It looks like configure does add this to the CFLAGS. Have you had a faster app without it?

I'd also suggest changing the naming of the apps to setiathome-8.0.arm-unknown-linux-gnueabihf for the armv6l app since it isn't really tied to the armv6l processor. It should work on any Linux armhf computer that supports vfp including an armv5 with vfp if there are any that are running Linux armhf (I doubt this though). I'd also call the armv7l app setiathome-8.0.arm-unknown-linux-gnueabihf_NEON since it should run on any Linux armhf computer that supports neon including some of the armv6 processors (also doubtful since Debian requires armv7 to run armhf - this is one of the reasons Raspbian had to port to Debian armhf to the armv6 for the Pi1s).
ID: 56584 · Report as offensive
MarkJ
Volunteer tester

Send message
Joined: 18 Oct 09
Posts: 48
Credit: 73,283
RAC: 0
Australia
Message 56585 - Posted: 9 Feb 2016, 8:02:04 UTC
Last modified: 9 Feb 2016, 8:26:18 UTC

We could use mimo's options as an optimised app.

Do any of you rebuild fftw of are we just using the Debian build which auto-detects neon? It might produce faster results with the same options mimo's used for the multi beam app. Again I'd reserve it for an optimised app otherwise you'll have the portability issue Claggy mentioned.
ID: 56585 · Report as offensive
MarkJ
Volunteer tester

Send message
Joined: 18 Oct 09
Posts: 48
Credit: 73,283
RAC: 0
Australia
Message 56589 - Posted: 9 Feb 2016, 9:53:34 UTC
Last modified: 9 Feb 2016, 10:13:03 UTC

Found an old email from Josef W Segur regarding fftw3 and wisdom. This was for MB v7 so there may be additional fft lengths used in v8. I am not sure if the v8 app will check for a wisdom file or not. Maybe Tom or Claggy could let me know what directory and file name it expects or does it use the default one (according to fftw docs its called /etc/fftw/wisdom)

sudo apt-get update
sudo apt-get install libfftw3-dev
cd /etc/fftw
sudo fftwf-wisdom -v -o wisdom.sah ko131072e10 cob131072 cob65536 cob16384 cob32768 cob8192 cob4096 cob2048 cob1024 cob512 cob256 cob128 cob64 cob32 cob16 cob8 cif32768


CPU features
Pi B+
half thumb fastmult vfp edsp java tls
Pi2
half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm
Parallella
swp half thumb fastmult vfp edsp neon vfpv3 tls vfpd32
ID: 56589 · Report as offensive
mimo
Volunteer tester

Send message
Joined: 4 Aug 08
Posts: 11
Credit: 1,437,079
RAC: 0
Slovakia
Message 56590 - Posted: 9 Feb 2016, 10:11:50 UTC - in response to Message 56589.  

be aware that the neon autovectorize in gcc is used only when -funsafe-math-optimizations is used
ID: 56590 · Report as offensive
Profile Raistmer
Volunteer tester
Avatar

Send message
Joined: 18 Aug 05
Posts: 2423
Credit: 15,878,738
RAC: 0
Russia
Message 56592 - Posted: 9 Feb 2016, 12:31:13 UTC - in response to Message 56589.  
Last modified: 9 Feb 2016, 12:32:43 UTC

Parallella
swp half thumb fastmult vfp edsp neon vfpv3 tls vfpd32


BTW, this device can be used as GPU to enable its Epiphany massive-parallel part.
Try to build OpenCL app's sources for this device.
AFAIK no one did it so far and in my list it's always delayed due to other tasks.
Performance of its ARM part should be much lower than its massive-parallel chip.
News about SETI opt app releases: https://twitter.com/Raistmer
ID: 56592 · Report as offensive
Tom Rinehart
Volunteer tester

Send message
Joined: 22 Jul 15
Posts: 21
Credit: 113,162
RAC: 0
United States
Message 56594 - Posted: 9 Feb 2016, 13:44:06 UTC - in response to Message 56590.  

be aware that the neon autovectorize in gcc is used only when -funsafe-math-optimizations is used


Thanks for the reminder. I'll add that back in.
ID: 56594 · Report as offensive
Tom Rinehart
Volunteer tester

Send message
Joined: 22 Jul 15
Posts: 21
Credit: 113,162
RAC: 0
United States
Message 56605 - Posted: 10 Feb 2016, 2:46:33 UTC - in response to Message 56594.  

I've rebuilt the armv7l app with:

./configure CFLAGS="-O3 -mfloat-abi=hard -mfpu=neon -funsafe-math-optimizations" BOINCDIR=/home/pi/boinc --enable-client --enable-static --disable-shared --disable-server --enable-fast-math --with-float-abi=hard --with-fpu=neon


I will start testing in on one of my Pi2s tonight. If it works better, I will send it to Eric to post.

- Tom
ID: 56605 · Report as offensive
mimo
Volunteer tester

Send message
Joined: 4 Aug 08
Posts: 11
Credit: 1,437,079
RAC: 0
Slovakia
Message 56610 - Posted: 10 Feb 2016, 7:50:12 UTC - in response to Message 56605.  

add -march=armv7-a and -mtune=cortex-a7 for PI 2 it will be even better
ID: 56610 · Report as offensive
1 · 2 · 3 · 4 . . . 5 · Next

Message boards : SETI@home Enhanced : Setiathome_v8 for Raspberry Pi?


 
©2021 University of California
 
SETI@home and Astropulse are funded by grants from the National Science Foundation, NASA, and donations from SETI@home volunteers. AstroPulse is funded in part by the NSF through grant AST-0307956.