Feature : GPU-settings in BOINC

Message boards : GPUs : Feature : GPU-settings in BOINC
Message board moderation

To post messages, you must log in.

AuthorMessage
njohan81

Send message
Joined: 30 Nov 14
Posts: 1
Sweden
Message 58319 - Posted: 30 Nov 2014, 14:36:24 UTC
Last modified: 30 Nov 2014, 14:48:45 UTC

I have a iMac 5K, 4Ghz, with AMD Radeon R9 M295X 4096 MB.

The problem when i use BOINC with grafik card is that my GPU-die goes hot!! about 100´C. So it would be nice if the programers can do to GPU what they have done to CPU in the settings on BOINC, that i only want to use 50, 30 or 75% of what ever i want to use for the GPU.

So the same thing to GPU, that BOINC only use 30% or maybe 75%, or what ever the user wants, maybe use V-sync kind of programing to the GPU, so the user can use what ever and not 100% all the time as it is now.

And also a setting so i can use GPU or not, an OFF or ON switch with BOINC.
ID: 58319 · Report as offensive
Profile Jord
Volunteer tester
Help desk expert
Avatar

Send message
Joined: 29 Aug 05
Posts: 15480
Netherlands
Message 58333 - Posted: 30 Nov 2014, 23:28:53 UTC - in response to Message 58319.  
Last modified: 30 Nov 2014, 23:31:39 UTC

Yes, that would be wonderful if that were possible.... but it isn't. There's no option yet, also not by third party applications, to tell a GPU to use only part of the stream processors and not all. It's either all on, or all off, no in between way.

But the CPU throttle function in BOINC will throttle the GPU as well, because of how BOINC uses that function. All GPU applications run on the CPU, so suspending the CPU will suspend work done on the GPU. BOINC its throttle function works by suspending work and continuing it. For a 50% throttle, work gets suspended for 5 seconds every 10 seconds and run for the other 5 seconds.
ID: 58333 · Report as offensive
John Morris

Send message
Joined: 1 Jan 15
Posts: 1
United States
Message 59236 - Posted: 1 Jan 2015, 20:47:38 UTC - in response to Message 58333.  

Actually, "possible" is relative. It all depends on whether someone is willing to do the work. The problem is that the GPU gets too hot after running for a relatively short period of time (two to five minutes). Boinc could be designed to send work to the GPU in very short bursts. If the GPU does not have enough work to make it run long enough to get hot, it will do the work very quickly, but then it will go back to idling while it awaits more work. Unfortunately, throttling the CPU, even down to 1%, does not throttle the GPU enough to keep it cool. Clearly, the work required of the CPU to set up the work for the GPU is a tiny fraction of the work that the GPU does. Additionally, throttling the CPU that much leaves it doing practically no work.

When I allow both the CPU and the GPU to run with a "reasonable" throttle on the CPU of 25% to 75%, the temperatures of my 2014 MacBook Pro run around 75 C. Hot enough to run the fans at maximum and cause a racket. When I suspend the GPU, the machine cools off to 60 or 65 C and the fans drop to an inaudible 2,000 to 2,100 RPM. When I reenable the GPU and throttle the CPU to 1%, the temperatures jumps back up to the the 75 C range and the fan noise is untenable.

The upshot is that I am unwilling to run Boinc on the GPU until someone figures out how to keep the temperature down. Consequently, the projects running under Boinc on my machine are not getting the full processing power I could give them.
ID: 59236 · Report as offensive
noderaser
Avatar

Send message
Joined: 2 Jan 14
Posts: 276
United States
Message 59249 - Posted: 2 Jan 2015, 7:06:23 UTC

Tthrottle works great for scaling BOINC computation to maintain a set temperature for both CPU and GPU. Unfortunately, it's only available for Windows.
My Detailed BOINC Stats
ID: 59249 · Report as offensive
Profile Jord
Volunteer tester
Help desk expert
Avatar

Send message
Joined: 29 Aug 05
Posts: 15480
Netherlands
Message 59255 - Posted: 2 Jan 2015, 14:17:01 UTC - in response to Message 59236.  
Last modified: 2 Jan 2015, 14:37:49 UTC

Actually, "possible" is relative. It all depends on whether someone is willing to do the work.
In this case it all depends on the GPU manufacturers to add the option to address separate stream processors, and for the software developers (for drivers) to add functionality so this can be addressed by programs.

Thus far neither has happened, so it cannot be done. Whether you want it to or not.

The problem is that the GPU gets too hot after running for a relatively short period of time (two to five minutes).
Yes, that's something that GPUs do, get really really hot. Easily over 100 degrees centigrade if you have no adequate cooling on one. Why do you think GPU companies release these GPUs with two or three massive fans on their cards? Got to be a hint, there.

Boinc could be designed to send work to the GPU in very short bursts.
BOINC doesn't do anything of this sort, it is the science application that uses the GPU. So it's the science application that then needs to do what you want, and thus then you need to ask the project to put this effort into the programming of their applications.

But the way that the GPU works it won't work as you want it to. Any data that is sent to the GPU needs to be translated in kernels that the GPU understands. Be it DirectX 3D data, OpenGL data, OpenCL data, even 2D data.

A kernel is a small program that contains the data that you want run. Depending on the heaviness of the data, the kernel can be short, medium or long. Longer kernels run hotter. Each data file from the project needs to be divided into lots of these kernels, that are run on the GPU, before the result data is sent back to the computer, translated back to result data and saved to disk. The computer's CPU does all this work of transporting and translating, by the way.

And since the CPU does all this translating of data to kernels and back, throttling the CPU will throttle the GPU.
Unfortunately, throttling the CPU, even down to 1%, does not throttle the GPU enough to keep it cool.
I doubt you tried to set "Use CPU time" to 1% as that means that BOINC runs the CPU for 1 second every 120 seconds. A 1 second run every 2 minutes won't add much heat to the GPU. It's not enough time to run multiple kernels.

And it's really not needed either.

Clearly, the work required of the CPU to set up the work for the GPU is a tiny fraction of the work that the GPU does.
Under normal run circumstances:
In terms of actual work done, it's the CPU that does the most.
In terms of heat, it's the GPU that works the hardest. That's the difference.

When I allow both the CPU and the GPU to run with a "reasonable" throttle on the CPU of 25% to 75%, the temperatures of my 2014 MacBook Pro run around 75 C.
Notebooks, laptops, tablets, smart phones and other flat design portable computer devices are notorious for their inability to be cooled, even under the best of circumstances. Perhaps that a cooling pad brings relief here.
People want to play the latest games on their laptops these days, so manufacturers add the newest gadgets and GPUs, but since these things also need to be ultra thin and ultra light, there is no room for adequate internal cooling. Have I told you yet that GPUs get really really really hot?

When I suspend the GPU, the machine cools off to 60 or 65 C
As you can see, just running the CPU, your notebook runs hot on its own already. The added 10 centigrade for GPU use is then just peanuts.

The upshot is that I am unwilling to run Boinc on the GPU until someone figures out how to keep the temperature down.
Adequate cooling!

Consequently, the projects running under Boinc on my machine are not getting the full processing power I could give them.
If you want to fully run work on a GPU, buy a big tower with loads of room on the inside for adequate airflows and space to put cooling fans in on the bottom, and loads of fans on the top that suck the hot air out.
ID: 59255 · Report as offensive

Message boards : GPUs : Feature : GPU-settings in BOINC

Copyright © 2024 University of California.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation.