Join PrimeGrid
Returning Participants
Community
Leader Boards
Results
Other
drummers-lowrise
|
Message boards :
Sieving :
Help needed with CUDA CPU Load Issue
Author |
Message |
|
My System:
CPU: Intel P4 Prescott (LGA 775, Stepping: A, Revision: R0) @3.0Ghz
MB: ASRock 775xFire-RAID
RAM: 1GB DDR2-400
Video (2x) nVidia 8800 GT w/512MB GDDR3 OC'd 705/1757/975
OS: WinXP Pro x64
Uses: BOINC, FTP Server & Multimedia File Server
The Issue:
Today I started the CUDA app for PPSieve and noticed that each wu requires (0.77 CPU + 1.00 GPU). Is it possible to reduce the CPU load via an app_info.xml file?
I have no idea how to set one up from scratch.
Please help.
Thanks in advance,
Fire$torm
____________
Those who would give up essential Liberty, to purchase a little temporary Safety, deserve neither Liberty nor Safety. (Benjamin Franklin) | |
|
|
Hi Firestorm,
I had this same problem while running two GPUs (both had 0.52 CPU load). The CPU is actually not used as much as indicated in BOINC, and thus I had a needlessly idle core when crunching GPU and CPU tasks. To fix this, I edited my cc_config file to act as if there were 9 cores instead of 8 (go here: http://boinc.berkeley.edu/wiki/Client_configuration for more information on creating a cc_config file).
<cc_config>
<options>
<ncpus>9</ncpus>
</options>
</cc_config>
This allowed me to run 8 CPU tasks and 2 GPU tasks simultaneously and utilize 100% of my CPU rather than the 88% it was using before.
Hope this helps...
Cheers!
Alan
____________
| |
|
Michael Goetz Volunteer moderator Project administrator
 Send message
Joined: 21 Jan 10 Posts: 14011 ID: 53948 Credit: 433,244,369 RAC: 880,036
                               
|
each wu requires (0.77 CPU + 1.00 GPU)
You can pretty much ignore that 0.77 number, unless it's stopping BOINC from running a CPU task on each CPU core.
If BOINC is running 2 CPU tasks, just ignore what it says in terms of the CPU usage.
If it's only running one CPU task, what Alan suggested should work -- but I suspect he's running a core i7 with 8 threads. You would want to set ncpus to 3 rather than 9. Be warned, however, that if at any time you're NOT running two GPU tasks, BOINC will run THREE CPU tasks, which will use extra memory (you only have 1 gig), and will waste a lot of CPU cycles task switching the three WUs on your two cores.
I think the better approach is to use a custom app_info, which is what you asked for, but I don't know the details of setting that up.
____________
My lucky number is 75898524288+1 | |
|
|
If it's only running one CPU task, what Alan suggested should work -- but I suspect he's running a core i7 with 8 threads. You would want to set ncpus to 3 rather than 9. Be warned, however, that if at any time you're NOT running two GPU tasks, BOINC will run THREE CPU tasks, which will use extra memory (you only have 1 gig), and will waste a lot of CPU cycles task switching the three WUs on your two cores.
Yes, the example I describe was for a core i7 with 8 threads. I have indeed experienced the problem Michael describes when I ran out of GPU tasks (I had a 0 day work buffer at the time and was having problems obtaining new GPU work). My computer was running 9 CPU tasks on 8 logical cores and the memory load increased significantly. However, I haven't had this problem since I increased my work buffer.
If you or anyone else figures out the custom app_info approach, I'd be very interested in knowing how to set that up...
Cheers!
Alan
____________
| |
|
samuel7 Volunteer tester
 Send message
Joined: 1 May 09 Posts: 89 ID: 39425 Credit: 257,425,010 RAC: 0
                    
|
You can use this message (long thread) as a starting point. [It does have a little cosmetic typo.] For other apps, just copy corresponding sections from your client_state.xml. You can even use flops values [== app 'speed'] to control runtime estimates.
It is advisable to empty your cache before introducing the app_info file to BOINC.
EDIT: Forgot to answer the OQ: Add <avg_ncpus>0.040000</avg_ncpus>
<max_ncpus>0.040000</max_ncpus> in the CUDA app_version after <plan_class>, for instance.
Bed time now for me.
____________
| |
|
|
Thanks guys for the responses. Much appreciated. I prefer the app_info route but will keep the config file in mind. If/when I get the former working I will post and share. :)
Peace.
____________
Those who would give up essential Liberty, to purchase a little temporary Safety, deserve neither Liberty nor Safety. (Benjamin Franklin) | |
|
|
Update:
OK, here is what worked for me
<app_info>
<app>
<name>pps_sr2sieve</name>
<user_friendly_name>PPS-Sieve (CUDA)</user_friendly_name>
</app>
<file_info>
<name>primegrid_ppsieve_1.27_windows_intelx86__cuda23.exe</name>
<executable/>
</file_info>
<file_info>
<name>cudart.dll</name>
</file_info>
<app_version>
<app_name>pps_sr2sieve</app_name>
<version_num>127</version_num>
<file_ref>
<file_name>primegrid_ppsieve_1.27_windows_intelx86__cuda23.exe</file_name>
<main_program/>
</file_ref>
<file_ref>
<file_name>cudart.dll</file_name>
<open_name>cudart.dll</open_name>
</file_ref>
<plan_class>cuda23</plan_class>
<avg_ncpus>0.040000</avg_ncpus>
<max_ncpus>0.040000</max_ncpus>
<coproc>
<type>CUDA</type>
<count>1.000000</count>
</coproc>
</app_version>
</app_info>
There are two things to keep in mind....
1) This setup will only run the GPU app. I tried adding code for the CPU app but could not get both to run concurrently.
2) There is an issue/bug with PG. If primegrid_ppsieve_1.27_windows_intelx86__cuda23.exe and/or cudart.dll do not already exist in the project folder BOINC reports a URL error when trying to download them from primegrid.
Also if you are running BOINC on Linux then all references in the app_info.xml to cudart.dll must be replaced with libcudart.so and primegrid_ppsieve_1.27_windows_intelx86__cuda23.exe replaced with your Linux executable.
Thanks again for the help.
Sincerely,
Fire$torm
____________
Those who would give up essential Liberty, to purchase a little temporary Safety, deserve neither Liberty nor Safety. (Benjamin Franklin) | |
|
Message boards :
Sieving :
Help needed with CUDA CPU Load Issue |