[boinc-app-seti] 04/05: Add a patch from Claggy (Stephen Maclagan)

Gianfranco Costamagna locutusofborg-guest at moszumanska.debian.org
Mon Feb 23 14:19:48 UTC 2015


This is an automated email from the git hooks/post-receive script.

locutusofborg-guest pushed a commit to branch master
in repository boinc-app-seti.

commit 440236a7112391d44e39c9037d511c3d003aa8c7
Author: Gianfranco Costamagna <costamagnagianfranco at yahoo.it>
Date:   Mon Feb 23 15:18:36 2015 +0100

    Add a patch from Claggy (Stephen Maclagan)
---
 debian/patches/215-remove-vfp-Chirp.patch | 235 ++++++++++++++++++++++++++++++
 debian/patches/series                     |   1 +
 2 files changed, 236 insertions(+)

diff --git a/debian/patches/215-remove-vfp-Chirp.patch b/debian/patches/215-remove-vfp-Chirp.patch
new file mode 100644
index 0000000..af4b1a2
--- /dev/null
+++ b/debian/patches/215-remove-vfp-Chirp.patch
@@ -0,0 +1,235 @@
+Description: (mail thread)
+
+Hi Gianfranco,
+ 
+ I've been hard at work the last month building and testing Seti apps, first at an old revision,
+ i choose r1924 (from the Seti source) as that predates the Android arm apps,
+ Got my Parallella and my New Pi 2 running that O.K,
+ this weekend i jumped headlong into trying out the app from head,
+ i already knew the repository app never found any signals at all, from my testing,
+ I kept applying the Jackman38 mod, But with one difference,
+ the repository only has it applied to the first function in each file:
+  
+ http://anonscm.debian.org/cgit/pkg-boinc/boinc-app-seti.git/diff/debian/patches/214_fix_armhf.patch
+  
+ While Jackyman says:
+  
+ to all 3 functions in the file.
+  
+ http://setiweb.ssl.berkeley.edu/beta/forum_thread.php?id=2164&postid=50939
+  
+ As in a total of Six functions, not two, I have been applying the mod to all six functions,
+  
+ the app still produces the wrong output, and has a very short vfp_ChirpData timing:
+  
+ shmget in attach_shmem: Invalid argument
+ 21:07:47 (9495): Can't set up shared mem: -1. Will run in standalone mode.
+ setiathome_v7 7.28 Revision: 2849 g++ (Ubuntu/Linaro 4.8.1-10ubuntu8) 4.8.1
+ libboinc: BOINC 7.5.0
+ 
+ Work Unit Info:
+ ...............
+ WU true angle range is :  0.775000
+ Getting CPU Capabilities from /proc/cpuinfo
+ features:  swp half thumb fastmult vfp edsp neon vfpv3 tls vfpd32
+  
+ Optimal function choices:
+ --------------------------------------------------------
+                             name   timing   error
+ --------------------------------------------------------
+                 v_BaseLineSmooth (no other)
+             vfp_GetPowerSpectrum 0.003361 0.00000
+                    vfp_ChirpData 0.000021 0.00000
+                   v_pfTranspose4 0.051149 0.00000
+                 opt NEON folding 0.028261 0.00000
+ 
+ Flopcounter: 220369260532.503113
+ 
+ Spike count:    0
+ Autocorr count: 0
+ Pulse count:    1
+ Triplet count:  2
+ Gaussian count: 0
+ 21:28:25 (9495): called boinc_finish(0)
+  
+ And when i make a change so only Neon routines are called that also has a very short timing for neon_ChirpData:
+  
+ shmget in attach_shmem: Invalid argument
+ 16:41:37 (9286): Can't set up shared mem: -1. Will run in standalone mode.
+ setiathome_v7 7.28 Revision: 2849 g++ (Ubuntu/Linaro 4.8.2-19ubuntu1) 4.8.2
+ libboinc: BOINC 7.5.0
+ 
+ Work Unit Info:
+ ...............
+ WU true angle range is :  0.775000
+ Getting CPU Capabilities from /proc/cpuinfo
+ features:  swp half thumb fastmult vfp edsp neon vfpv3 tls vfpd32
+  
+ Optimal function choices:
+ --------------------------------------------------------
+                             name   timing   error
+ --------------------------------------------------------
+                 v_BaseLineSmooth (no other)
+            neon_GetPowerSpectrum 0.003354 0.00000
+                   neon_ChirpData 0.000031 0.00000
+                     v_Transpose4 0.049429 0.00000
+                 opt NEON folding 0.026321 0.00000
+ 
+ Flopcounter: 251779500013.901245
+ 
+ Spike count:    0
+ Autocorr count: 0
+ Pulse count:    1
+ Triplet count:  6
+ Gaussian count: 0
+ 17:16:06 (9286): called boinc_finish(0)
+  
+  
+ I've now managed to fix the app by not calling vfp_ChirpData or neon_ChirpData
+ (until someone writes hardfloat ChirpData code)
+  
+ I did that by first deleting the following lines in analyzeFuncs_vector.cpp:
+ 
+ #if defined(__arm__) && defined(__VFP_FP__) && !defined(__SOFTFP__)
+      vfp_ChirpData, BA_VFP, "vfp_ChirpData",
+ #ifdef USE_NEON
+      neon_ChirpData, BA_NEON, "neon_ChirpData",
+ #endif
+ #endif
+  
+ Later i changed it to the following, so only Android calls these functions:
+ 
+ #if defined(__arm__) && defined(ANDROID) && defined(__VFP_FP__) && !defined(__SOFTFP__)
+      vfp_ChirpData, BA_VFP, "vfp_ChirpData",
+ #ifdef USE_NEON
+      neon_ChirpData, BA_NEON, "neon_ChirpData",
+ #endif
+ #endif
+  
+  
+ Now the app produces the correct output and is faster too (and is even faster on longer Wu's):
+ (I also managed to get our Bench program working on Arm too)
+  
+ KWSN-Linux-MBbench v2.1.08
+ Running on linaro-nano at Sat 21 Feb 2015 10:07:26 PM UTC
+ ----------------------------------------------------------------
+ Starting benchmark run...
+ ----------------------------------------------------------------
+ Listing wu-file(s) in /testWUs :
+ refquick_v7.wu
+ 
+ Listing executable(s) in /APPS :
+ setiathome-7.28r2852.armv7l-unknown-linux-gnueabihf
+ setiathome-7.28slowchirp.armv7l-unknown-linux-gnueabihf
+ 
+ Listing executable in /REF_APPS :
+ setiathome-7.0r1924.armv7l-unknown-linux-gnu
+ ----------------------------------------------------------------
+ Current WU: refquick_v7.wu
+ 
+ ----------------------------------------------------------------
+ Skipping default app setiathome-7.0r1924.armv7l-unknown-linux-gnu, displaying saved result(s)
+ Elapsed Time: ....................... 1831 seconds
+ ----------------------------------------------------------------
+ Running app with command : .......... setiathome-7.28r2852.armv7l-unknown-linux-gnueabihf -st -verb -nog
+ ./setiathome-7.28r2852.armv7l-unknown-linux-gnueabihf -st -verb -nog 1575.20 sec 1555.09 sec 16.08 sec
+ Elapsed Time : ...................... 1575 seconds
+ Speed compared to default : ......... 116 %
+ -----------------
+ Comparing results
+ Result      : Strongly similar,  Q= 99.86%
+ 
+ ----------------------------------------------------------------
+ Running app with command : .......... setiathome-7.28slowchirp.armv7l-unknown-linux-gnueabihf -st -verb -nog
+ ./setiathome-7.28slowchirp.armv7l-unknown-linux-gnueabihf -st -verb -nog 1653.89 sec 1635.95 sec 15.15 sec
+ Elapsed Time : ...................... 1654 seconds
+ Speed compared to default : ......... 110 %
+ -----------------
+ Comparing results
+ Result      : Strongly similar,  Q= 100.0%
+ 
+ ----------------------------------------------------------------
+ Done with refquick_v7.wu
+ 
+ ====================================================================
+ Hosts CPU data ...
+ model name   : ARMv7 Processor rev 0 (v7l)
+ 
+ Done with Benchmark run! Removing temporary files!
+  
+  
+ Here is the full stderr.txt using the -verbose cmdline, see there are only three functions available for ChirpData now,
+ they might be slower, but they work:
+  
+  
+ shmget in attach_shmem: Invalid argument
+ 19:38:41 (18739): Can't set up shared mem: -1. Will run in standalone mode.
+ setiathome_v7 7.28 Revision: 2849 g++ (Ubuntu/Linaro 4.8.2-19ubuntu1) 4.8.2
+ libboinc: BOINC 7.5.0
+ 
+ Work Unit Info:
+ ...............
+ WU true angle range is :  0.775000
+ Getting CPU Capabilities from /proc/cpuinfo
+ features:  swp half thumb fastmult vfp edsp neon vfpv3 tls vfpd32
+  
+ Optimal function choices:
+ --------------------------------------------------------
+                             name   timing   error
+ --------------------------------------------------------
+                 v_BaseLineSmooth (no other)
+ 
+               v_GetPowerSpectrum 0.005271 0.00000  test
+             vfp_GetPowerSpectrum 0.003207 0.00000  test
+            neon_GetPowerSpectrum 0.003288 0.00000  test
+             vfp_GetPowerSpectrum 0.003207 0.00000  choice
+ 
+                      v_ChirpData 0.132193 0.00000  test
+                    fpu_ChirpData 0.188260 0.00000  test
+                fpu_opt_ChirpData 0.147560 0.00000  test
+                      v_ChirpData 0.132193 0.00000  choice
+ 
+                      v_Transpose 0.167430 0.00000  test
+                     v_Transpose2 0.086018 0.00000  test
+                     v_Transpose4 0.047464 0.00000  test
+                     v_Transpose8 0.063180 0.00000  test
+                   v_pfTranspose2 0.079027 0.00000  test
+                   v_pfTranspose4 0.045056 0.00000  test
+                   v_pfTranspose8 0.072683 0.00000  test
+                  v_vfpTranspose2 0.084969 0.00000  test
+                   v_pfTranspose4 0.045056 0.00000  choice
+ 
+                  FPU opt folding 0.038549 0.00000  test
+                  opt VFP folding 0.031100 0.16705  test
+                 opt NEON folding 0.024321 0.00000  test
+                 opt NEON folding 0.024321 0.00000  choice
+ 
+                    Test duration    21.29 seconds
+ 
+ 
+ Flopcounter: 251613885178.901245
+ 
+ Spike count:    7
+ Autocorr count: 5
+ Pulse count:    5
+ Triplet count:  5
+ Gaussian count: 6
+ 20:06:05 (18739): called boinc_finish(0)
+  
+ Claggy
+ 
+Author: Stephen Maclagan <stephen.maclagan at hotmail.com>
+
+Index: boinc-app-seti/client/vector/analyzeFuncs_vector.cpp
+===================================================================
+--- boinc-app-seti.orig/client/vector/analyzeFuncs_vector.cpp	2015-02-23 15:16:25.912498655 +0100
++++ boinc-app-seti/client/vector/analyzeFuncs_vector.cpp	2015-02-23 15:16:25.908498648 +0100
+@@ -391,7 +391,7 @@
+      avx_ChirpData_d, BA_AVX, "avx_ChirpData_d", 
+ #  endif
+ #endif
+-#if defined(__arm__) && defined(__VFP_FP__) && !defined(__SOFTFP__)
++#if defined(__arm__) %% defined(ANDROID) && defined(__VFP_FP__) && !defined(__SOFTFP__)
+      vfp_ChirpData, BA_VFP, "vfp_ChirpData",
+ #ifdef USE_NEON
+      neon_ChirpData, BA_NEON, "neon_ChirpData",
diff --git a/debian/patches/series b/debian/patches/series
index 0e70135..4fdb8ef 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -11,3 +11,4 @@
 #005_powerpc_altivec.patch
 006_omitting_archs.patch
 007_worker_comments.patch
+215-remove-vfp-Chirp.patch

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-boinc/boinc-app-seti.git



More information about the pkg-boinc-commits mailing list