Brook/CAL ATI for 32-bit Linux
log in

Advanced search

Message boards : News : Brook/CAL ATI for 32-bit Linux

Author Message
Profile Slicker
Volunteer moderator
Project administrator
Project developer
Project tester
Project scientist
Avatar
Send message
Joined: 11 Jun 09
Posts: 2447
Credit: 675,942,722
RAC: 139,414
Message 18853 - Posted: 14 Mar 2014, 21:00:33 UTC

I added a 6.00 version for 32-bit Linux app w/ ATI Brook+/CAL SDK 1.4. It compiles, but I have no idea whether it actually works as it was built on an Ubuntu 12.04 machine. That build machine does not have an AMD GPU installed which mean getting a little creative in order to get the Brook/CAL libraries installed.

If it will not run on your machine at all, please run "ldd solo_collatz_6.00_i686-pc-linux-gnu__ati14" and post the output. If it runs but errors out, please post the stderr.txt (the normal BOINC output).

If it does run, let me know as well. It uses the same command line parameters as the v2.09 ATI apps.

Profile Overtonesinger
Avatar
Send message
Joined: 16 Jul 10
Posts: 21
Credit: 33,523,386
RAC: 0
Message 18858 - Posted: 15 Mar 2014, 12:04:39 UTC - in response to Message 18853.

Solo_Collatz WU: http://boinc.thesonntags.com/collatz/result.php?resultid=1454037

is weird! It still reports the same: that it uses 0.913 CPU (1.6 GHz Core i7 720QM), but in fact, it uses 12 times less CPU, just about 0.085 CPU.

According to this screenshot, I expet that it will use 11 or 12 percent of the 8-logical-core CPU.
Instead, it uses only about 1.5 on average. See it? :-)

https://dl.dropboxusercontent.com/u/69462289/Errors/Solo_Collatz_NOT_913_promile_of_CPU_just_096.png

What is so different on this WU?

Greetings from Prague,
The Overtonesinger
____________
Melwen - child of the Fangorn Forest

Szymon Jaranowski
Send message
Joined: 5 Feb 14
Posts: 4
Credit: 12,645,423
RAC: 0
Message 18860 - Posted: 16 Mar 2014, 11:19:18 UTC - in response to Message 18853.

OK, I'm running 64-bit Linux, unfortunately, but I've set up 32-bit BOINC client. I'm relatively new to BOINC, so I don't know if I've done everything right, but the results are somehow strange; this is my ./boinccmd --get_tasks (seems less informative than BOINC manager, but I haven't manage to set it up yet due to thin 32-bit environment):

======== Tasks ========
1) -----------
name: solo_collatz_2382840039469834052723_51539607552_1
WU name: solo_collatz_2382840039469834052723_51539607552
project URL: http://boinc.thesonntags.com/collatz/
report deadline: Sat Mar 22 22:44:15 2014
ready to report: no
got server ack: no
final CPU time: 0.000000
state: downloaded
scheduler state: scheduled
exit_status: 0
signal: 0
suspended via GUI: no
active_task_state: EXECUTING
app version num: 600
checkpoint CPU time: 0.000000
current CPU time: 20.632860
fraction done: 0.651035
swap size: 0.000000
working set size: 0.000000
estimated CPU time remaining: -2310.938731
(...)
It looks like fraction done is slowly emerging, but estimated CPU time remaining looks rather weird. After restart of whole BOINC client, the fraction done counter restarts from 0%. The process is in fact executing:
spj@ciastko ~ $ ps aux | grep solo
spj 1954 0.0 0.5 36396 21948 pts/1 SNl+ Mar15 0:20 \
../../projects/boinc.thesonntags.com_collatz/solo_collatz_6.00_i686-pc-linux-gnu__ati14 --device 0
It takes some RAM (~0.5%), no CPU, but if I read GPU hardware clocks, the load stays at 0%:
spj@ciastko ~ $ aticonfig --adapter=0 --od-getclocks
Adapter 0 - ATI Mobility Radeon HD 3650
Core (MHz) Memory (MHz)
Current Clocks : 600 500
Current Peak : 600 500
Configurable Peak Range : [300-600] [500-500]
GPU load : 0%
The clock is OK, as I can start some OpenGL application (fgl_glxgears for example) and the load reaches 90% at once. Applications' stderr.txt (after one restart of the client):
spj@ciastko ~/BOINC/slots/0 $ cat stderr.txt
Solo Collatz Conjecture Brook+/CAL for ATI GPUs v6.04
Based on version 2.09 by Gipsel
instructed by BOINC client to use device 0
Reading input file ... done.
Checking 51539607552 numbers starting with 2382840039521373660275
2382840039521373660275 2382840039572913267827
CAL Runtime: 1.4.1734
Found 1 CAL device

Device 0: ATI Radeon HD 2600 (RV630) 512 MB local RAM (remote 486 MB cached + 1714 MB uncached)
GPU core clock: 600 MHz, memory clock: 500 MHz
240 shader units organized in 3 SIMDs with 16 VLIW units (5-issue), wavefront size 64 threads
not supporting double precision

Initializing lookup table (16384 kB) ... done
Starting WU on GPU 0
Copy lookup table to GPU memory (16384 kB)
Solo Collatz Conjecture Brook+/CAL for ATI GPUs v6.04
Based on version 2.09 by Gipsel
instructed by BOINC client to use device 0
Reading input file ... done.
Checking 51539607552 numbers starting with 2382840039521373660275
2382840039521373660275 2382840039572913267827
CAL Runtime: 1.4.1734
Found 1 CAL device

Device 0: ATI Radeon HD 2600 (RV630) 512 MB local RAM (remote 486 MB cached + 1714 MB uncached)
GPU core clock: 600 MHz, memory clock: 500 MHz
240 shader units organized in 3 SIMDs with 16 VLIW units (5-issue), wavefront size 64 threads
not supporting double precision

Initializing lookup table (16384 kB) ... done
Starting WU on GPU 0
Copy lookup table to GPU memory (16384 kB)
I've tried running it on 64-bit BOINC client, but it seems applications hangs at 0% (stderr.txt looked exactly the same). Output of ldd:
spj@ciastko ~/BOINC/projects/boinc.thesonntags.com_collatz $ ls -l
total 2984
-rwxr-xr-x 1 spj spj 677092 Mar 15 22:44 libbrook32.so.1.4
lrwxrwxrwx 1 spj spj 17 Mar 16 11:47 libbrook.so -> libbrook32.so.1.4
-rw-r--r-- 1 spj spj 46 Mar 15 22:44 solo_collatz_2382840039469834052723_51539607552
-rw-r--r-- 1 spj spj 46 Mar 15 23:01 solo_collatz_2382844901883914232947_51539607552
-rwxr-xr-x 1 spj spj 2365234 Mar 15 22:44 solo_collatz_6.00_i686-pc-linux-gnu__ati14
spj@ciastko ~/BOINC/projects/boinc.thesonntags.com_collatz $ ldd \
solo_collatz_6.00_i686-pc-linux-gnu__ati14
linux-gate.so.1 (0xf772d000)
libpthread.so.0 => /lib32/libpthread.so.0 (0xf76d6000)
libbrook.so (0xf7657000)
libaticalrt.so => /usr/lib32/libaticalrt.so (0xf7646000)
libm.so.6 => /lib32/libm.so.6 (0xf7602000)
libgcc_s.so.1 => /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.2/32/libgcc_s.so.1 (0xf75e6000)
libc.so.6 => /lib32/libc.so.6 (0xf743b000)
/lib/ld-linux.so.2 (0xf772e000)
libstdc++.so.6 => /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.2/32/libstdc++.so.6 (0xf734d000)
librt.so.1 => /lib32/librt.so.1 (0xf7344000)
libdl.so.2 => /lib32/libdl.so.2 (0xf733e000)
I've only made symlink libbrook.so pointing to libbrook32.so.1.4. Last thing - event log:
spj@ciastko ~/BOINC $ ./run_client
./boinc: /usr/lib32/libssl.so.1.0.0: no version information available (required by ./boinc)
./boinc: /usr/lib32/libcurl.so.4: no version information available (required by ./boinc)
./boinc: /usr/lib32/libcrypto.so.1.0.0: no version information available (required by ./boinc)
16-Mar-2014 11:47:58 [---] cc_config.xml not found - using defaults
16-Mar-2014 11:47:58 [---] Starting BOINC client version 7.2.42 for x86_64-pc-linux-gnu
16-Mar-2014 11:47:58 [---] log flags: file_xfer, sched_ops, task
16-Mar-2014 11:47:58 [---] Libraries: libcurl/7.31.0 OpenSSL/1.0.1e zlib/1.2.7
16-Mar-2014 11:47:58 [---] Data directory: /home/spj/BOINC
boinc: /usr/lib32/libssl.so.1.0.0: no version information available (required by boinc)
boinc: /usr/lib32/libcurl.so.4: no version information available (required by boinc)
boinc: /usr/lib32/libcrypto.so.1.0.0: no version information available (required by boinc)
16-Mar-2014 11:47:58 [---] CAL: ATI GPU 0: ATI Radeon HD 2600/3650 (RV630/RV635) (CAL version 1.4.1734, 512MB, 442MB available, 288 GFLOPS peak)
16-Mar-2014 11:47:58 [---] Host name: ciastko
16-Mar-2014 11:47:58 [---] Processor: 2 GenuineIntel Intel(R) Core(TM)2 Duo CPU P8600 @ 2.40GHz [Family 6 Model 23 Stepping 6]
16-Mar-2014 11:47:58 [---] Processor features: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 lahf_lm dtherm tpr_shadow vnmi flexpriority
16-Mar-2014 11:47:58 [---] OS: Linux: 3.4.75-gentoo
16-Mar-2014 11:47:58 [---] Memory: 3.83 GB physical, 6.00 GB virtual
16-Mar-2014 11:47:58 [---] Disk: 222.83 GB total, 65.66 GB free
16-Mar-2014 11:47:58 [---] Local time is UTC +1 hours
16-Mar-2014 11:47:58 [---] VirtualBox version: 4.3.8_Gentoor92456
16-Mar-2014 11:47:58 [SETI@home] URL http://setiathome.berkeley.edu/; Computer ID 7240545; resource share 200
16-Mar-2014 11:47:58 [Collatz Conjecture] URL http://boinc.thesonntags.com/collatz/; Computer ID 141497; resource share 100
16-Mar-2014 11:47:58 [SETI@home] General prefs: from SETI@home (last modified 09-Feb-2014 10:51:12)
16-Mar-2014 11:47:58 [SETI@home] Computer location: home
16-Mar-2014 11:47:58 [SETI@home] General prefs: no separate prefs for home; using your defaults
16-Mar-2014 11:47:58 [---] Preferences:
16-Mar-2014 11:47:58 [---] max memory usage when active: 3531.97MB
16-Mar-2014 11:47:58 [---] max memory usage when idle: 3531.97MB
16-Mar-2014 11:47:58 [---] max disk usage: 65.58GB
16-Mar-2014 11:47:58 [---] max download rate: 1024000 bytes/sec
16-Mar-2014 11:47:58 [---] max upload rate: 1024000 bytes/sec
16-Mar-2014 11:47:58 [---] (to change preferences, visit a project web site or select Preferences in the Manager)
16-Mar-2014 11:47:58 [---] Not using a proxy
16-Mar-2014 11:47:58 Initialization completed
Maybe my setup of the whole client is not OK. I'm running Windows 7 x64 on the same machine and I had a problem with SETI@Home Brook+/CAL application - it was constantly restarting the driver. The solution was to downgrade drivers to some really old Catalyst (9.x or so, one of the first versions to support Windows 7 at all). Maybe there is a problem with CAL 1.4.1734. I can do more tests on request.

Hope this post helps.

--
kind regards,
Szymon Jaranowski

Profile Slicker
Volunteer moderator
Project administrator
Project developer
Project tester
Project scientist
Avatar
Send message
Joined: 11 Jun 09
Posts: 2447
Credit: 675,942,722
RAC: 139,414
Message 18864 - Posted: 16 Mar 2014, 18:48:17 UTC
Last modified: 16 Mar 2014, 18:49:50 UTC

Estimated CPU time is garbage. It is based on floating point operations per second which is totally useless on Collatz. It will remain garbage until you have completed several WUs and BOINC finally realizes that using flops is stupid and adjusts itself accordingly.

If the percent complete is increasing at all, let it run. You may also want to enable your preferences in BOINC to allow computing while the computer is in use. Otherwise, every time you go to check to see how it is doing, it will show 0% utilization because it suspends itself as soon as you touch the mouse or keyboard.

Lastly, BOINC should be creating a symbolic link from libbrook32.so.1.4 to libbrook.so at runtime as well as adding the project folder to the library path. At least, that's what I'm told and I have no reason to think otherwise.

Szymon Jaranowski
Send message
Joined: 5 Feb 14
Posts: 4
Credit: 12,645,423
RAC: 0
Message 18870 - Posted: 19 Mar 2014, 17:41:55 UTC - in response to Message 18864.

I think there is still something wrong. Here is the news:

If the percent complete is increasing at all, let it run.
The task was running almost 3 days, and the fraction done counter was slowing down (first day ~ 90%, second ~5%, third ~2%). After three days it barely moves. On Windows the "big" workunits were finishing in 12 hrs or so. boinccmd --get_tasks:
1) -----------
name: solo_collatz_2382840039469834052723_51539607552_1
WU name: solo_collatz_2382840039469834052723_51539607552
project URL: http://boinc.thesonntags.com/collatz/
report deadline: Sat Mar 22 22:44:15 2014
ready to report: no
got server ack: no
final CPU time: 0.000000
state: downloaded
scheduler state: scheduled
exit_status: 0
signal: 0
suspended via GUI: no
active_task_state: EXECUTING
app version num: 600
checkpoint CPU time: 0.000000
current CPU time: 65.751000
fraction done: 0.979750
swap size: 0.000000
working set size: 0.000000
estimated CPU time remaining: -126946.523672
You may also want to enable your preferences in BOINC to allow computing while the computer is in use. Otherwise, every time you go to check to see how it is doing, it will show 0% utilization because it suspends itself as soon as you touch the mouse or keyboard.
Is there a canonical way to do that using boinccmd (or by any other method)? I have set several options, but I'm not sure they will imply this; these are: --set_run_mode always and --set_gpu_mode always. Still, I haven't use the computer almost at all, so the task should be at 100% by now.

Link
Avatar
Send message
Joined: 9 Jul 11
Posts: 14
Credit: 956,410
RAC: 0
Message 18893 - Posted: 20 Mar 2014, 21:41:41 UTC
Last modified: 20 Mar 2014, 22:00:16 UTC

Do you plan to release this app also as optimized application, i.e. in a zip with all needed files and an app_info like it was with the old apps?

EDIT: actually I mean the Windows CAL app, I see now I posted in the wrong thread.
____________
.


Post to thread

Message boards : News : Brook/CAL ATI for 32-bit Linux


Main page · Your account · Message boards


Copyright © 2016 Jon Sonntag; All rights reserved.