by bruce » Tue Feb 11, 2014 9:42 pm
As has already been said, the GPU has no concept of priority or time-slices or any of the other features that have been used to limit CPU usage. Even with all those features, modulating the CPU usage doesn't work very well except by limiting the number of CPU tasks that can be assigned to less CPUs than you have.
Now consider your GPU. Assign it a block of work that it can complete in X µs. It works as hard as possible to complete that block of work. By refusing to give it more work for X+Y µs, you might be able to limit the average throughput but as P5-133XL suggests, you'll be averaging busy time with idle time. Now consider somebody who has a faster or slower GPU. Any values chosen for X or Y will have different results because the two GPUs can process the GFLOPS in that work packet at a different rate. Then, too, the GPU also accepting work from other sources (such as a screen refresh or video decode or whatever) which tend to fill in the idle times, if there are any, with productive work so the average can drift.
In effect, you can turn off the GPU thermally or you can turn it off until the system is stable, by actually modulating the processing is essentially impossible. Repeated on and off cycles at a rate of 1/(X+Y) isn't good for your GPU.