Message boards :
Number crunching :
Linux (ARM processor) app and alternatives
Message board moderation
Previous · 1 · 2 · 3 · 4 · 5 . . . 8 · Next
Author | Message |
---|---|
Raistmer Send message Joined: 16 Jun 01 Posts: 6325 Credit: 106,370,077 RAC: 121 |
EDIT: sudo apt-get install time did the trick. SETI apps news We're not gonna fight them. We're gonna transcend them. |
Claggy Send message Joined: 5 Jul 99 Posts: 4654 Credit: 47,537,079 RAC: 4 |
Sorry, was at work otherwise i'd would have told you that,. Claggy |
Tom Rinehart Send message Joined: 12 Dec 01 Posts: 113 Credit: 13,255,975 RAC: 6 |
sudo apt-get install time did the trick. I had to add this for Bench on one of my computers. I can't remember which one. I reran the slow cycle counter version on ARM64 after clearing all the testData. It gets the same fast result in time: KWSN-Linux-MBbench v2.1.08 Running on odroid64 at Fri 03 Feb 2017 05:37:23 AM UTC ---------------------------------------------------------------- Starting benchmark run... ---------------------------------------------------------------- Listing wu-file(s) in /testWUs : reference_work_unit_r3215.wu Listing executable(s) in /APPS : Listing executable in /REF_APPS : setiathome-8.slowcc.aarch64-unknown-linux-gnu ---------------------------------------------------------------- Current WU: reference_work_unit_r3215.wu ---------------------------------------------------------------- Running default app with command :... setiathome-8.slowcc.aarch64-unknown-linux-gnu -verb Elapsed Time: ....................... 15161 seconds ---------------------------------------------------------------- Done with reference_work_unit_r3215.wu ==================================================================== Done with Benchmark run! Removing temporary files! |
Tom Rinehart Send message Joined: 12 Dec 01 Posts: 113 Credit: 13,255,975 RAC: 6 |
EDIT2: from the other side it uses double. How ARM handles double type? I had not noticed this before that the chirp function takes two doubles and that the other functions are taking float pointers. From analyzeFuncs_vector.h: typedef int (*BaseLineSmooth_func)(sah_complex *, int, int, int); typedef int (*GetPowerSpectrum_func)(sah_complex *, float*, int); typedef int (*ChirpData_func)(sah_complex *, sah_complex *, int, double, int, double); typedef int (*Transpose_func)(int, int , float *, float *); Is the assembly code expecting a float but getting a double? |
Raistmer Send message Joined: 16 Jun 01 Posts: 6325 Credit: 106,370,077 RAC: 121 |
I'm not sure how assembly version handles input arguments but really used version not assembly one but C-based one Attempted to improve bench script adding BOINC computations suspension, but seems it doesn't work for Linux for some reason: root@parallella:/usr/bin# boinccmd --set_run_mode never 172800 Operation failed: Error -1 boinccmd present, it lists this option in own options list... but attempt to execute it fails (and both cores still busy with SETI indeed). And it fails both under user and root. What it could be? Error -1 doesn't provide hint... --set_run_mode mode duration set run mode for given duration mode = always | auto | never SETI apps news We're not gonna fight them. We're gonna transcend them. |
Juha Send message Joined: 7 Mar 04 Posts: 388 Credit: 1,857,738 RAC: 0 |
Error -1 is usually a problem with GUI RPC password. Try running the command in BOINC's data directory in /var/lib/boinc-client . |
Raistmer Send message Joined: 16 Jun 01 Posts: 6325 Credit: 106,370,077 RAC: 121 |
Error -1 is usually a problem with GUI RPC password. Try running the command in BOINC's data directory in /var/lib/boinc-client . I tried that with --quit - it worked (from other places it resulted in -1 too). So, what should I do to allow normal work from any location? Obviously I can't put bench in /var/lib/boinc-client ... EDIT: indeed I attempted to set own password in gui_rpc_auth.cfg but was not able to connect from Windows host BOINC manager anyway. SETI apps news We're not gonna fight them. We're gonna transcend them. |
Juha Send message Joined: 7 Mar 04 Posts: 388 Credit: 1,857,738 RAC: 0 |
Something like boinccmd --passwd `cat /var/lib/boinc-client/gui_rpc_auth.cfg` command ... (Those are backticks.) For remote control manual says to use remote_hosts.cfg or --allow_remote_gui_rpc. allow_remote_gui_rpc is in cc_config.xml too. |
Raistmer Send message Joined: 16 Jun 01 Posts: 6325 Credit: 106,370,077 RAC: 121 |
Something like
yes, I read that. It also says that RPC always accepted inside same host. But it's not in my case. Or just add 127.0.0.0 there? For now i'll try with cc_config modification. If it will not help will try other options. SETI apps news We're not gonna fight them. We're gonna transcend them. |
Juha Send message Joined: 7 Mar 04 Posts: 388 Credit: 1,857,738 RAC: 0 |
If password is set then it is always needed. |
Raistmer Send message Joined: 16 Jun 01 Posts: 6325 Credit: 106,370,077 RAC: 121 |
Well, initial results not very nice (for home-built binary): Current WU: #WisGen1_v8.wu Same with second wisdom trainer. stock: setiathome_v8 8.00 Revision: 3378 g++ (Raspbian 4.9.2-10) 4.9.2 libboinc: BOINC 7.7.0 Work Unit Info: ............... WU true angle range is : 424.000000 Getting CPU Capabilities from /proc/cpuinfo features: half thumb fastmult vfp edsp neon vfpv3 tls vfpd32 Optimal function choices: -------------------------------------------------------- name timing error -------------------------------------------------------- v_BaseLineSmooth (no other) v_GetPowerSpectrum 0.005161 0.00000 test vfp_GetPowerSpectrum 0.003134 0.00000 test neon_GetPowerSpectrum 0.003410 0.00000 test vfp_GetPowerSpectrum 0.003134 0.00000 choice v_ChirpData 0.163041 0.00000 test fpu_ChirpData 0.184977 1.51106 test fpu_opt_ChirpData 0.183226 0.00000 test v_ChirpData 0.163041 0.00000 choice v_Transpose 0.148885 0.00000 test v_Transpose2 0.076535 0.00000 test v_Transpose4 0.042304 0.00000 test v_Transpose8 0.058710 0.00000 test fftwf_transpose 0.027171 0.00000 test v_pfTranspose2 0.070728 0.00000 test v_pfTranspose4 0.041088 0.00000 test v_pfTranspose8 0.067429 0.00000 test v_vfpTranspose2 0.075300 0.00000 test fftwf_transpose 0.027171 0.00000 choice Test duration 29.97 seconds my build: setiathome_v8 8.00 Revision: 3623 g++ (Ubuntu/Linaro 4.9.2-10ubuntu13) 4.9.2 libboinc: BOINC 7.7.0 Work Unit Info: ............... WU true angle range is : 424.000000 Getting CPU Capabilities from /proc/cpuinfo features: half thumb fastmult vfp edsp neon vfpv3 tls vfpd32 Optimal function choices: -------------------------------------------------------- name timing error -------------------------------------------------------- v_BaseLineSmooth (no other) v_GetPowerSpectrum 0.005160 0.00000 test vfp_GetPowerSpectrum 0.003151 0.00000 test neon_GetPowerSpectrum 0.003409 0.00000 test vfp_GetPowerSpectrum 0.003151 0.00000 choice v_ChirpData 0.179222 0.00000 test fpu_ChirpData 0.174099 1.51106 test fpu_opt_ChirpData 0.195143 0.00000 test v_ChirpData 0.179222 0.00000 choice v_Transpose 0.148799 0.00000 test v_Transpose2 0.076601 0.00000 test v_Transpose4 0.042456 0.00000 test v_Transpose8 0.057253 0.00000 test fftwf_transpose 0.027033 0.00000 test v_pfTranspose2 0.071018 0.00000 test v_pfTranspose4 0.041940 0.00000 test v_pfTranspose8 0.068383 0.00000 test v_vfpTranspose2 0.075311 0.00000 test fftwf_transpose 0.027033 0.00000 choice Test duration 28.57 seconds SETI apps news We're not gonna fight them. We're gonna transcend them. |
Raistmer Send message Joined: 16 Jun 01 Posts: 6325 Credit: 106,370,077 RAC: 121 |
So, ~30 seconds takes own benchmark (each task) almost all rest of runtime for "wisdom trainer" task going to FFTW plan creation and writing wisdom.sah As one can see, my build took enormous amount of time for that. Some difference with stock one here. And another observation: function choices (!) and function elapsed times in this single-core-busy test were very different from ones from live run (supposed to be both-cores-busy one). Anyone explored load behavior for multicore ARM before? SETI apps news We're not gonna fight them. We're gonna transcend them. |
Raistmer Send message Joined: 16 Jun 01 Posts: 6325 Credit: 106,370,077 RAC: 121 |
If password is set then it is always needed. So should I make that file void? SETI apps news We're not gonna fight them. We're gonna transcend them. |
Raistmer Send message Joined: 16 Jun 01 Posts: 6325 Credit: 106,370,077 RAC: 121 |
More observations: 1)current codebase doesn't have ARM FPU initialization function that Mateusz codebase has. 2) even under Android on NEON-capable devices I saw VFP chirp used, not NEON. So, do we have example of device that uses neon_ChirpData and returns valid results? Android one of course cause for armhf this function disabled in stock codebase. Unfortunately, all old v7 results removed on SETI beta so I can't look what original Mateuzs v7 binary really did on NEON (from code reading it should hard-select NEON chirp) SETI apps news We're not gonna fight them. We're gonna transcend them. |
Raistmer Send message Joined: 16 Jun 01 Posts: 6325 Credit: 106,370,077 RAC: 121 |
Where human-readable defines for tags of .eabi_attribute located? Accordingly to https://sourceware.org/binutils/docs/as/ARM-Directives.html .eabi_attribute tag, value So, these human-readable tags should be defined somewhere... EDIT: https://gcc.gnu.org/ml/gcc-patches/2011-10/msg00961.html arm.h maybe... SETI apps news We're not gonna fight them. We're gonna transcend them. |
Raistmer Send message Joined: 16 Jun 01 Posts: 6325 Credit: 106,370,077 RAC: 121 |
Being much slower on startup, home-made build wins in VLAR: ==================================================================== Current WU: PG0009_v8.wu ---------------------------------------------------------------- Running default app with command :... setiathome_8.02_arm-unknown-linux-gnueabihf -st -verb -nog ./setiathome_8.02_arm-unknown-linux-gnueabihf -st -verb -nog 9510.79 sec 9446.96 sec 63.05 sec Elapsed Time: ....................... 9511 seconds ---------------------------------------------------------------- Running app with command : .......... setiathome-8.0.armv7l-unknown-linux-gnueabihf_R_default -st -verb -nog ./setiathome-8.0.armv7l-unknown-linux-gnueabihf_R_default -st -verb -nog 7955.50 sec 7888.90 sec 65.37 sec Elapsed Time : ...................... 7956 seconds Speed compared to default : ......... 119 % ----------------- Comparing results Result : Strongly similar, Q= 100.0% ---------------------------------------------------------------- Done with PG0009_v8.wu SETI apps news We're not gonna fight them. We're gonna transcend them. |
Raistmer Send message Joined: 16 Jun 01 Posts: 6325 Credit: 106,370,077 RAC: 121 |
How it "should" look: Attribute Section: aeabi File Attributes Tag_CPU_name: "7-A" Tag_CPU_arch: v7 Tag_CPU_arch_profile: Application Tag_ARM_ISA_use: Yes Tag_THUMB_ISA_use: Thumb-2 Tag_FP_arch: VFPv3 Tag_Advanced_SIMD_arch: NEONv1 Tag_ABI_PCS_wchar_t: 4 Tag_ABI_FP_rounding: Needed Tag_ABI_FP_denormal: Needed Tag_ABI_FP_exceptions: Needed Tag_ABI_FP_number_model: IEEE 754 Tag_ABI_align_needed: 8-byte Tag_ABI_align_preserved: 8-byte, except leaf SP Tag_ABI_enum_size: int Tag_ABI_HardFP_use: SP and DP Tag_ABI_VFP_args: VFP registers Tag_CPU_unaligned_access: v6 instead of .eabi_attribute 27, 3 .eabi_attribute 28, 1 .eabi_attribute 20, 1 .eabi_attribute 21, 1 .eabi_attribute 23, 3 .eabi_attribute 24, 1 .eabi_attribute 25, 1 .eabi_attribute 26, 2 .eabi_attribute 30, 2 .eabi_attribute 18, 4 And immediately we can see unneeded tags for MultiBeam: Tag_ABI_FP_denormal: Needed Tag_ABI_FP_exceptions: Needed both are wrong. Also: Tag_THUMB_ISA_use: Thumb-2 Does Parallella support Thumb-2 ? It was said "thumb", noth thumb-2 ... SETI apps news We're not gonna fight them. We're gonna transcend them. |
Raistmer Send message Joined: 16 Jun 01 Posts: 6325 Credit: 106,370,077 RAC: 121 |
Interesting to compare options for separate objects and whole binary: analyzeFuncs_vfp.o parallella@parallella:~/seti_boinc/client$ readelf -A analyzeFuncs_vfp.o Attribute Section: aeabi File Attributes Tag_CPU_name: "6" Tag_CPU_arch: v6 Tag_ARM_ISA_use: Yes Tag_THUMB_ISA_use: Thumb-1 Tag_FP_arch: VFPv2 Tag_ABI_PCS_wchar_t: 4 Tag_ABI_FP_denormal: Needed Tag_ABI_FP_exceptions: Needed Tag_ABI_FP_number_model: IEEE 754 Tag_ABI_align_needed: 8-byte Tag_ABI_align_preserved: 8-byte, except leaf SP Tag_ABI_enum_size: int Tag_ABI_HardFP_use: SP and DP Tag_ABI_VFP_args: VFP registers Tag_ABI_optimization_goals: Aggressive Speed analyzeFuncs_neon.o parallella@parallella:~/seti_boinc/client$ readelf -A analyzeFuncs_neon.o Attribute Section: aeabi File Attributes Tag_CPU_name: "7-A" Tag_CPU_arch: v7 Tag_CPU_arch_profile: Application Tag_ARM_ISA_use: Yes Tag_THUMB_ISA_use: Thumb-2 Tag_FP_arch: VFPv3 Tag_Advanced_SIMD_arch: NEONv1 Tag_ABI_PCS_wchar_t: 4 Tag_ABI_FP_denormal: Needed Tag_ABI_FP_exceptions: Needed Tag_ABI_FP_number_model: IEEE 754 Tag_ABI_align_needed: 8-byte Tag_ABI_align_preserved: 8-byte, except leaf SP Tag_ABI_enum_size: int Tag_ABI_HardFP_use: SP and DP Tag_ABI_VFP_args: VFP registers Tag_ABI_optimization_goals: Aggressive Speed seti_boinc-main.o parallella@parallella:~/seti_boinc/client$ readelf -A seti_boinc-main.o Attribute Section: aeabi File Attributes Tag_CPU_name: "7-A" Tag_CPU_arch: v7 Tag_CPU_arch_profile: Application Tag_ARM_ISA_use: Yes Tag_THUMB_ISA_use: Thumb-2 Tag_FP_arch: VFPv3-D16 Tag_ABI_PCS_wchar_t: 4 Tag_ABI_FP_number_model: Finite Tag_ABI_align_needed: 8-byte Tag_ABI_align_preserved: 8-byte, except leaf SP Tag_ABI_enum_size: int Tag_ABI_HardFP_use: SP and DP Tag_ABI_VFP_args: VFP registers Tag_ABI_optimization_goals: Aggressive Speed Tag_CPU_unaligned_access: v6 app binary: parallella@parallella:~/seti_boinc/client$ readelf -A setiathome-8.0.armv7l-unknown-linux-gnueabihf Attribute Section: aeabi File Attributes Tag_CPU_name: "7-A" Tag_CPU_arch: v7 Tag_CPU_arch_profile: Application Tag_ARM_ISA_use: Yes Tag_THUMB_ISA_use: Thumb-2 Tag_FP_arch: VFPv3 Tag_Advanced_SIMD_arch: NEONv1 Tag_ABI_PCS_wchar_t: 4 Tag_ABI_FP_rounding: Needed Tag_ABI_FP_denormal: Needed Tag_ABI_FP_exceptions: Needed Tag_ABI_FP_number_model: IEEE 754 Tag_ABI_align_needed: 8-byte Tag_ABI_align_preserved: 8-byte, except leaf SP Tag_ABI_enum_size: int Tag_ABI_HardFP_use: SP and DP Tag_ABI_VFP_args: VFP registers Tag_CPU_unaligned_access: v6 SETI apps news We're not gonna fight them. We're gonna transcend them. |
Raistmer Send message Joined: 16 Jun 01 Posts: 6325 Credit: 106,370,077 RAC: 121 |
So I will try with finite math, w/o directly specifying hard float and with NEON Chirp enabled. PG set looks too long for this tiny device. Each task takes ~2-3 hours... not very comfortable for trying many builds... SETI apps news We're not gonna fight them. We're gonna transcend them. |
Raistmer Send message Joined: 16 Jun 01 Posts: 6325 Credit: 106,370,077 RAC: 121 |
Current version of Linux KWSN benchmark isn't quite suitable to separate startup overhead and steady processing parts. It deletes all cache info between runs: rm -f boinc_* state.sah result.sah init_data.xml stderr.txt wisdom.sah work_unit.sah *.wisdom* *.bin* Underlined parts should be removed from script to allow real wisdom caching/retrieving between runs (also that make wisgen tasks meaningful, currently they are quite meaningless, especially in double quantity as usually used for Windows apps) SETI apps news We're not gonna fight them. We're gonna transcend them. |
©2024 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.