Reserve a part of the CPU only for GPU support?


log in

Advanced search

Message boards : Number crunching : Reserve a part of the CPU only for GPU support?

Author Message
Profile [seti.international] Dirk Sadowski
Volunteer tester
Avatar
Send message
Joined: 6 Apr 07
Posts: 7016
Credit: 59,129,033
RAC: 20,662
Germany
Message 1283458 - Posted: 14 Sep 2012, 5:22:49 UTC

It's possible to reserve a part of the CPU only for GPU support?

Example:
The GPU application use +/- 10 % CPU.
I could set some-where/how (in BOINC or with a tool) 15 % CPU only for GPU support?
So max. 85 % of the CPU for CPU WUs (and maybe also for all other programs on the PC?).

Thanks!


* Best regards! :-) * Sutaru Tsureku, team seti.international founder. * Optimize your PC for higher RAC. * SETI@home needs your help. *
____________
BR



>Das Deutsche Cafe. The German Cafe.<

Richard Haselgrove
Volunteer tester
Send message
Joined: 4 Jul 99
Posts: 8373
Credit: 46,542,270
RAC: 13,724
United Kingdom
Message 1283501 - Posted: 14 Sep 2012, 7:47:09 UTC - in response to Message 1283458.

Yes, that's what your operating system does. Have a look at Task Manager sometime, to see how many other programs are running on your CPUs when the GPU support threads don't need it.

Profile Mr. Kevvy
Volunteer tester
Avatar
Send message
Joined: 15 May 99
Posts: 675
Credit: 69,457,226
RAC: 76,218
Canada
Message 1283556 - Posted: 14 Sep 2012, 12:21:59 UTC - in response to Message 1283458.
Last modified: 14 Sep 2012, 12:37:58 UTC

It's possible to reserve a part of the CPU only for GPU support?


How come? Is the GPU not being properly utilized?

I was having this problem on my newest system. It turned out to not be scheduling of the GPU app. Instead, the NVidia drivers and EVGA Precision were conspiring to throttle the GPU to 405MhZ always, regardless of the clock speed I chose.

I uninstalled EVGA Precision and reinstalled the NVidia drivers using "Clean install" mode to get rid of any previous settings, and went from 45 mins. per CUDA WU to about 11.5 mins.

Hope this helps. :^)
____________
“Never doubt that a small group of thoughtful, committed citizens can change the world; indeed, it's the only thing that ever has.”
--- Margaret Mead

Richard Haselgrove
Volunteer tester
Send message
Joined: 4 Jul 99
Posts: 8373
Credit: 46,542,270
RAC: 13,724
United Kingdom
Message 1283576 - Posted: 14 Sep 2012, 13:25:10 UTC - in response to Message 1283556.

It's possible to reserve a part of the CPU only for GPU support?

How come? Is the GPU not being properly utilized?

I was having this problem on my newest system. It turned out to not be scheduling of the GPU app. Instead, the NVidia drivers and EVGA Precision were conspiring to throttle the GPU to 405MhZ always, regardless of the clock speed I chose.

I uninstalled EVGA Precision and reinstalled the NVidia drivers using "Clean install" mode to get rid of any previous settings, and went from 45 mins. per CUDA WU to about 11.5 mins.

Hope this helps. :^)

There are many, many reasons for nVidia GPUs entering that protective downclocked state. Don't be too quick to assume that it was the fault of EVGA Precision.

Other causes that have been discussed on these boards include (off the top of my head):

Overheating
Undervolting
Bus contention (latency)
RAM timings
Non-threadsafe application exits

and probably many more. Keep an eye on it to see if it happens again.

(Voltage - my laptop tends to get into that state if I leave CUDA tasks running on battery for too long, when moving from one wall outlet to another)

Profile Mr. Kevvy
Volunteer tester
Avatar
Send message
Joined: 15 May 99
Posts: 675
Credit: 69,457,226
RAC: 76,218
Canada
Message 1283621 - Posted: 14 Sep 2012, 14:36:12 UTC - in response to Message 1283576.

Wasn't overheating... both Precision and SpeedFan agreed that the GPU was underutilized at 44°C. It's now about 65°C. Yeah, that's where I want it... it's a beater cruncher. :^)

Don't know about the rest, but I did find the 405MhZ thing mentioned elsewhere on the internet when I was trying to find the cause of this. Google "cuda 405MhZ" and there will be others who noted the same problem. It was probably drivers, as at least one other indicated just a reinstall with the "Clean install option" fixed it. YMMV. Worked for me at least.
____________
“Never doubt that a small group of thoughtful, committed citizens can change the world; indeed, it's the only thing that ever has.”
--- Margaret Mead

Profile [seti.international] Dirk Sadowski
Volunteer tester
Avatar
Send message
Joined: 6 Apr 07
Posts: 7016
Credit: 59,129,033
RAC: 20,662
Germany
Message 1283694 - Posted: 14 Sep 2012, 18:18:16 UTC

Richard, my PCs crunch CUDA since SETI@home released the first CUDA application ..

- - - - - - - - - -

If I let idle one CPU-thread the GPU calculation time decrease (~ 5 or 10 %, if I remember correct).

But it's wasted performance to let idle one whole CPU-thread - for only one GPU.

Of course, I use Fred's nice tool eFMer Priority - priority at *high*.

Current the CUDA application use ~ 10 % CPU (~ 20 % CPU-thread) average (Intel Core2 Duo E7600 with GTX260 O/C).

I would like to let idle ~ 15 % CPU (~ 30 % CPU-thread) - and only the GPU application is allowed to use this.
I guess then the GPU calculation time will decrease also the above mentioned value.
But ~ 70 % of the CPU-thread still calculate CPU WUs (or do other things).


Is this possible with help of the computing preferences, cc_config.xml or app_info.xml file, special tool ..?

Thanks!


* Best regards! :-) * Sutaru Tsureku, team seti.international founder. * Optimize your PC for higher RAC. * SETI@home needs your help. *
____________
BR



>Das Deutsche Cafe. The German Cafe.<

Horacio
Send message
Joined: 14 Jan 00
Posts: 536
Credit: 68,646,032
RAC: 90,699
Argentina
Message 1283726 - Posted: 14 Sep 2012, 19:26:12 UTC - in response to Message 1283694.

But ~ 70 % of the CPU-thread still calculate CPU WUs (or do other things).
Is this possible with help of the computing preferences, cc_config.xml or app_info.xml file, special tool ..?

Thanks!

Each CPU core (phisical or virtual) is just one device and it could be used or not. When you see its used at 10% that means that on given time 10% of that time it was used at 100% and the rest of the time it was idle.

So the only way to do that would be by throtelling specific apps so they can use the CPU only, lets say, 70% of the time leaving the CPU idle the other 30%... but, first, there is not guarantee that when the GPU needs the core, it will be just in the right moment in which it was iddling, second, this throtelling will be using some CPU power and third, this is exactly what the operating sytems do -dynamically- when several processes need to use the same core.
All this switching thing between apps is what drags down the performance of the CPU to feed the GPU.

When you rise the priority of a certain tasks, the OS suspend the other tasks without waiting until they have used their whole assigned time slice, wich speeds up a little the response of the higher priority tasks, but the task switching is still needed, so while there is some rise of the performance there is not a hughe improovement...
____________

Richard Haselgrove
Volunteer tester
Send message
Joined: 4 Jul 99
Posts: 8373
Credit: 46,542,270
RAC: 13,724
United Kingdom
Message 1283803 - Posted: 14 Sep 2012, 22:29:44 UTC - in response to Message 1283726.

The only way I can think of to make this work in practice is for a single application to run science on both the GPU and CPU. By having control of both devices, it could handle much more fine-grained scheduling - switching between the GPU-support role and CPU number crunching. From the outside, that might look like busy-wait GPU sychronisation with 100% CPU usage (often described as a driver bug), with the crucial exception that the 'wait' cycles are doing productive work.

But that would be hard to fit into BOINC's current task-by-task workflow. To state the obvious - GPU tasks finish quicker than CPU tasks. How can a CPU do useful work in the short time a GPU task is scheduled by BOINC? How does a hybrid application like that cope with fast CPUs and slow GPUs? Or the other way round? Multiple CPUs? Multiple GPUs?

Such a fundamental resdesign of workflow certainly can't be done by combining any of the existing CPU and GPU applications using BOINC's 'glue' of app_info, cc_config, or anything like that. It probably couldn't be done within the current BOINC framework, period. But it's an intriguing possibility.

Profile [seti.international] Dirk Sadowski
Volunteer tester
Avatar
Send message
Joined: 6 Apr 07
Posts: 7016
Credit: 59,129,033
RAC: 20,662
Germany
Message 1283878 - Posted: 15 Sep 2012, 2:34:46 UTC
Last modified: 15 Sep 2012, 2:37:03 UTC

I searched the web and found two tools:

ThreadMaster
http://threadmaster.tripod.com

BES – Battle Encoder Shirase
http://mion.faireal.net/BES


.. for example:

I let run SETI@home Enhanced and AstroPulse on the CPU (app_info.xml file).

So I insert AK_v8b2_win_SSSE3x.exe and ap_6.01r557_SSE2_331_AVX.exe in the tools and both application I set max. 85 % (CPU-thread).

If only S@h Enhanced or AstroPulse or both together the applications run only with 85 % CPU-thread, so 2 x 15 % CPU-thread is idle.
So 30 % CPU-thread is idle and is free for GPU support ..

Or I'm wrong?

What you think about this both tools, they are fine for us SETI@home members?

Which one is the best for us?


* Best regards! :-) * Sutaru Tsureku, team seti.international founder. * Optimize your PC for higher RAC. * SETI@home needs your help. *
____________
BR



>Das Deutsche Cafe. The German Cafe.<

Horacio
Send message
Joined: 14 Jan 00
Posts: 536
Credit: 68,646,032
RAC: 90,699
Argentina
Message 1283886 - Posted: 15 Sep 2012, 2:56:38 UTC - in response to Message 1283878.

What you think about this both tools, they are fine for us SETI@home members?

Which one is the best for us?

I doubt this tools will give you the result you want with the GPU performance, but if you trust them enough it might be worth to try them...
The second one, seems more easy as it doesnt require to mess with the registry, but it can only "watch" for one app... so it wont work to control both MB and AP apps...

____________

Message boards : Number crunching : Reserve a part of the CPU only for GPU support?

Copyright © 2014 University of California