[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