[boinc_dev] CPU throttling and GPU apps
Hi all! While hunting for a bug recently, we at Einstein@Home came across a question that I would like to present for discussion here: If an app has a non zero GPU share (GPU app for short), should CPU throttling (as configured thru the preferences setting Use at most x % of CPU time) be applied to it? I guess there are several pros and cons, e.g.: cons: - one one hand, GPU apps (depending on the CPU share?) get a higher OS prio (in terms of niceness) to prevent the GPU being starved. Throttling the CPU might very well cause this starvation - if a GPU app has a rather low CPU runtime share in the first place, further CPU throttling does not seem too useful. - in order to avoid GPU load to interfere with the user doing non-BOINC related stuff, there is already the setting Suspend GPU work while computer is in use. pros: I can't think about many, maybe consistency and user expectation? Volunteer reports at E@H seem to suggest that in the current BOINC client version, GPU apps are indeed CPU throttled, right? Browsing thru the source code, my initial impression is that only NCI (non-CPU-intensive) apps are excluded from throttling. Cheers HB - Heinz-Bernd Eggenstein Max Planck Institute for Gravitational Physics Callinstrasse 38 D-30167 Hannover, Germany Tel.: +49-511-762-19466 (Room 037) ___ boinc_dev mailing list boinc_dev@ssl.berkeley.edu http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev To unsubscribe, visit the above URL and (near bottom of page) enter your email address.
Re: [boinc_dev] CPU throttling and GPU apps
We had some discussion about this issue back in January. For most of the lifetime of BOINC on GPUs, CPU throttling has *not* been applied to GPU apps: it was dis-applied on 27 Oct 2008 - http://boinc.berkeley.edu/trac/changeset/3719268f1c3807dcac821c455090e2243133bb8d/boinc-old and re-applied on 12 Jan 2013 - http://boinc.berkeley.edu/trac/changeset/04de2936d47256edc77ba032541b096aff69b2d5/boinc-old The re-application seemed to be at the request of a single user: David wrote I checked in a change so that CPU throttling applies to GPU apps also. Can anyone think of a reason not to do this? -- David On 11-Jan-2013 11:42 PM, Admin Team St.Petersburg wrote: And here's another. In the client, the CPU has the ability to change power steering, and the GPU can not. To do. That message, and the subsequent discussion, can be followed at http://lists.ssl.berkeley.edu/pipermail/boinc_dev/2013-January/019305.html From memory (and a very quick refresh view of that thread) the main response was a request for a separate control to throttle GPU apps if desired - we concluded with The request for a separate GPU throttling preference is noted; however we're not going to get to it immediately. -- David From: Heinz-Bernd Eggenstein heinz-bernd.eggenst...@aei.mpg.de To: boinc_dev@ssl.berkeley.edu Sent: Thursday, 4 July 2013, 12:15 Subject: [boinc_dev] CPU throttling and GPU apps Hi all! While hunting for a bug recently, we at Einstein@Home came across a question that I would like to present for discussion here: If an app has a non zero GPU share (GPU app for short), should CPU throttling (as configured thru the preferences setting Use at most x % of CPU time) be applied to it? I guess there are several pros and cons, e.g.: cons: - one one hand, GPU apps (depending on the CPU share?) get a higher OS prio (in terms of niceness) to prevent the GPU being starved. Throttling the CPU might very well cause this starvation - if a GPU app has a rather low CPU runtime share in the first place, further CPU throttling does not seem too useful. - in order to avoid GPU load to interfere with the user doing non-BOINC related stuff, there is already the setting Suspend GPU work while computer is in use. pros: I can't think about many, maybe consistency and user expectation? Volunteer reports at E@H seem to suggest that in the current BOINC client version, GPU apps are indeed CPU throttled, right? Browsing thru the source code, my initial impression is that only NCI (non-CPU-intensive) apps are excluded from throttling. Cheers HB - Heinz-Bernd Eggenstein Max Planck Institute for Gravitational Physics Callinstrasse 38 D-30167 Hannover, Germany Tel.: +49-511-762-19466 (Room 037) ___ boinc_dev mailing list boinc_dev@ssl.berkeley.edu http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev To unsubscribe, visit the above URL and (near bottom of page) enter your email address. ___ boinc_dev mailing list boinc_dev@ssl.berkeley.edu http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev To unsubscribe, visit the above URL and (near bottom of page) enter your email address.
Re: [boinc_dev] CPU throttling and GPU apps
On 04.07.13 13:15, Heinz-Bernd Eggenstein wrote: I guess there are several pros and cons, e.g.: cons: - one one hand, GPU apps (depending on the CPU share?) get a higher OS prio (in terms of niceness) to prevent the GPU being starved. Throttling the CPU might very well cause this starvation - if a GPU app has a rather low CPU runtime share in the first place, further CPU throttling does not seem too useful. - in order to avoid GPU load to interfere with the user doing non-BOINC related stuff, there is already the setting Suspend GPU work while computer is in use. Here's one more: When not synchronized with GPU-CPU communication (kernel launches, data transfer) throtteling an App can break any running GPU task. I'm not sure whether the throtteling implementations of all BOINC Clients that are being used properly honor critical sections, nor am I that all GPU apps of all projects make proper use of these. pros: I can't think about many Actually I can't think about any. Best, Bernd ___ boinc_dev mailing list boinc_dev@ssl.berkeley.edu http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev To unsubscribe, visit the above URL and (near bottom of page) enter your email address.
Re: [boinc_dev] CPU throttling and GPU apps
The only pro I can think of would be to reduce GPU use to keep temperature or power use down, but that would be better implemented as GPU throttling. On Thu, Jul 4, 2013 at 5:52 AM, Bernd Machenschalk bernd.machensch...@aei.mpg.de wrote: On 04.07.13 13:15, Heinz-Bernd Eggenstein wrote: I guess there are several pros and cons, e.g.: cons: - one one hand, GPU apps (depending on the CPU share?) get a higher OS prio (in terms of niceness) to prevent the GPU being starved. Throttling the CPU might very well cause this starvation - if a GPU app has a rather low CPU runtime share in the first place, further CPU throttling does not seem too useful. - in order to avoid GPU load to interfere with the user doing non-BOINC related stuff, there is already the setting Suspend GPU work while computer is in use. Here's one more: When not synchronized with GPU-CPU communication (kernel launches, data transfer) throtteling an App can break any running GPU task. I'm not sure whether the throtteling implementations of all BOINC Clients that are being used properly honor critical sections, nor am I that all GPU apps of all projects make proper use of these. pros: I can't think about many Actually I can't think about any. Best, Bernd ___ boinc_dev mailing list boinc_dev@ssl.berkeley.edu http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev To unsubscribe, visit the above URL and (near bottom of page) enter your email address. ___ boinc_dev mailing list boinc_dev@ssl.berkeley.edu http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev To unsubscribe, visit the above URL and (near bottom of page) enter your email address.