Message boards :
Number crunching :
Reserve a part of the CPU only for GPU support?
Message board moderation
Author | Message |
---|---|
Sutaru Tsureku Send message Joined: 6 Apr 07 Posts: 7105 Credit: 147,663,825 RAC: 5 |
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. * |
Richard Haselgrove Send message Joined: 4 Jul 99 Posts: 14650 Credit: 200,643,578 RAC: 874 |
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. |
Mr. Kevvy Send message Joined: 15 May 99 Posts: 3776 Credit: 1,114,826,392 RAC: 3,319 |
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. :^) |
Richard Haselgrove Send message Joined: 4 Jul 99 Posts: 14650 Credit: 200,643,578 RAC: 874 |
It's possible to reserve a part of the CPU only for GPU support? 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) |
Mr. Kevvy Send message Joined: 15 May 99 Posts: 3776 Credit: 1,114,826,392 RAC: 3,319 |
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. |
Sutaru Tsureku Send message Joined: 6 Apr 07 Posts: 7105 Credit: 147,663,825 RAC: 5 |
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. * |
Horacio Send message Joined: 14 Jan 00 Posts: 536 Credit: 75,967,266 RAC: 0 |
But ~ 70 % of the CPU-thread still calculate CPU WUs (or do other things). 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 Send message Joined: 4 Jul 99 Posts: 14650 Credit: 200,643,578 RAC: 874 |
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. |
Sutaru Tsureku Send message Joined: 6 Apr 07 Posts: 7105 Credit: 147,663,825 RAC: 5 |
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. * |
Horacio Send message Joined: 14 Jan 00 Posts: 536 Credit: 75,967,266 RAC: 0 |
What you think about this both tools, they are fine for us SETI@home members? 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... |
©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.