Advanced search

Message boards : Graphics cards (GPUs) : 0.976 CPUs + 1 GPU

Author Message
tsmialek
Send message
Joined: 30 Nov 14
Posts: 3
Credit: 591,089,477
RAC: 0
Level
Lys
Scientific publications
watwatwat
Message 39251 - Posted: 22 Dec 2014 | 2:23:49 UTC

So... Does "0.976 CPUs + 1 GPU" indicate just over 97% of a core is available to the gpu? I want to reserve a full core but if that's what it means, looks like I'm already there. (or close anyway)

Btw. I'm not running any cpu jobs.

Profile Retvari Zoltan
Avatar
Send message
Joined: 20 Jan 09
Posts: 1960
Credit: 12,623,635,669
RAC: 6,597,616
Level
Trp
Scientific publications
watwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwat
Message 39258 - Posted: 22 Dec 2014 | 16:48:20 UTC - in response to Message 39251.
Last modified: 22 Dec 2014 | 16:48:40 UTC

So... Does "0.976 CPUs + 1 GPU" indicate just over 97% of a core is available to the gpu? I want to reserve a full core but if that's what it means, looks like I'm already there. (or close anyway)

No, it's just some kind of misinformation.
You can see if a full core id used by the GPUGrid application when the tasks' run time is equals (nearly) with their run time. (see this tasklist)
According to your hosts' task list (190367, 190294, 192211), they are not using a full CPU core.

To make the GPUGrid client use a full CPU core you should set the "SWAN_SYNC" environmental value to 1: (Windows 7 and up)
Right click on an empty area of the desktop ->
new -> shortcut ->
type systempropertiesadvanced in the input field, press enter ->
double click on the new shortcut you've just made (or press enter) ->
press the environmental variables button near the bottom of the window ->
press the new button near the bottom (in the "system variables" section) ->
type swan_sync to the upper box (name), and 1 (one) to the lower box (value)
Press OK three times.
After that, you need to restart the BOINC client (stop the scientific applications on close), or you can restart Windows.

Jacob Klein
Send message
Joined: 11 Oct 08
Posts: 1093
Credit: 1,429,761,464
RAC: 1,058,577
Level
Met
Scientific publications
watwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwat
Message 39268 - Posted: 22 Dec 2014 | 23:19:23 UTC
Last modified: 22 Dec 2014 | 23:28:29 UTC

I'd like to clarify a little bit more.

When you see the task status in BOINC say "0.976 CPUs + 1 GPU", that "CPU" value is simply a "budgeting" number used by the BOINC task scheduler to schedule CPU tasks. When GPU tasks are included in the list of scheduled tasks, it will schedule "up to #cpus + 1" worth of CPU. In your case, if you were on an 8-thread machine with the setting "Use at most X% CPUs" set to 100%, BOINC would schedule that GPU task, and 8 CPU tasks, since (8 + 0.976) is less than (#CPUs + 1 = 9).

This budgeting number doesn't actually result in more/less CPU usage. It is simply a way for BOINC to "budget as used" a certain amount of CPU for your GPU tasks.

You can control that "budgeting number" by setting the "cpu_usage" variable in an app_config.xml file for the app. For reference, at the bottom of this post is my GPUGrid app_config.xml file, where I basically use 0.667 "cpu_usage" to mean:
- if 1 GPU task is running, don't budget a core (since it'd add up to 0.667)
- if 2 GPU tasks are running, budget 1 core (since 0.667 + 0.667 ... is > 1)
- if 3 GPU tasks are running, budget 2 cores (since 0.667 + 0.667 + 0.667 ... is > 2)

Now, what Retvari is talking about, is different. He is referring to a way to tell the application/driver to perform better, at the cost of extra CPU. The app and driver has 2 modes for executing the app:
- Low-CPU-mode (which gets fairly good throughput performance) (this is the default)
- High-CPU-mode (which gets slightly better throughput performance) (must set Swan_Sync=1 to use this)

You can monitor the acemd.exe process in Task Manager or Process Explorer, to see it act different when Swan_Sync is set or not.

I'm pretty sure that each GPU task ends up using a full CPU core if you choose to use Swan_Sync... so, if you do that, you might want to either change the app_config.xml to have BOINC budget more CPU as used, or adjust your "Use at most X% CPUs" setting. I like controlling the exact amounts via app_config.xml.

Regards,
Jacob

My GPUGrid app_config.xml:

<!-- GPUGrid.net --> <app_config> <!-- Short runs (2-3 hours on fastest card) --> <app> <name>acemdshort</name> <gpu_versions> <gpu_usage>1</gpu_usage> <cpu_usage>0.667</cpu_usage> </gpu_versions> </app> <!-- Long runs (8-12 hours on fastest card) --> <app> <name>acemdlong</name> <gpu_versions> <gpu_usage>1</gpu_usage> <cpu_usage>0.667</cpu_usage> </gpu_versions> </app> <!-- ACEMD beta version --> <app> <name>acemdbeta</name> <gpu_versions> <gpu_usage>1</gpu_usage> <cpu_usage>0.667</cpu_usage> </gpu_versions> </app> </app_config>

tsmialek
Send message
Joined: 30 Nov 14
Posts: 3
Credit: 591,089,477
RAC: 0
Level
Lys
Scientific publications
watwatwat
Message 39269 - Posted: 22 Dec 2014 | 23:33:37 UTC

Much appreciated, both of you. I think I have a good grasp on this now.

Post to thread

Message boards : Graphics cards (GPUs) : 0.976 CPUs + 1 GPU