WU Completion Time Estimation With GPUs of Different Types

Message boards : GPUs : WU Completion Time Estimation With GPUs of Different Types
Message board moderation

To post messages, you must log in.

AuthorMessage
Vagelis Giannadakis

Send message
Joined: 23 Oct 15
Posts: 3
Greece
Message 65051 - Posted: 23 Oct 2015, 10:23:14 UTC

This is really an enhancement request and I'm not sure GPUs is the correct section to post this into. Mods, please move it to a more appropriate section if needed.

I have on my host two different GPUs, both Nvidia, a GTX 970 and a GTX 750 Ti. They work perfectly well in all respects and cruch WUs (primarily from GPUGRID) with no complains.

My problem is, because of their big performance difference, completion time estimations are way off, for both cards. I have pretty much ignored this issue for a long time, until I faced a situation that amplifies the consequences: the GPUGRID queues going dry, with new WUs appearing sparsely.

The only way to keep crunching for GPUGRID in such an occasion is to raise the work buffer, so my host starts asking for new tasks well ahead of the current tasks' completion. With estimations being "goofy" though, my fast card ends up asking for new tasks too late, and my slow card does the same too early! The latter is not a big deal of course, but GPUGRID has a 24h task return bonus, which is kind of important for us BOINC credit addicts... The former is "riskier" though, as my fast card may end up without a GPUGRID task for some time. I have Einstein as my back-up, but Einstein is just too astro-geeky ;)

I believe this issue is due to the CPU-only history of BOINC. A host has one CPU, or more than one, but of the same type, so performance is the same for all CPU tasks running on the host. GPUs can be different though. Not only of different types, but also differently over / under clocked, sitting on unequally wide PCIEX slots, etc.

I therefore propose that BOINC is modified to "observe" the performance of each GPU separately and determine the completion times accordingly.
ID: 65051 · Report as offensive
Richard Haselgrove
Volunteer tester
Help desk expert

Send message
Joined: 5 Oct 06
Posts: 5080
United Kingdom
Message 65052 - Posted: 23 Oct 2015, 11:09:24 UTC - in response to Message 65051.  

So far as I know, nobody has found a way of using the existing configuration tools within BOINC to recognise the different capabilities of distinct GPUs within a single project - so you are right to describe this as an enhancement request.

David Anderson - the lead developer of BOINC code - has described the decision not to treat each device independently as "something we would have done differently, if we'd known better when we started adding GPU support to BOINC", so it's on his To Do list already - but that list has a habit of moving more slowly than we (or I suspect he) would like.

In the meantime, since you mention running tasks 'primarily' from GPUGrid, one possibility is to dedicate just one card full-time to GPUGrid, and the other card to one or more other projects. That can be achieved by using the <exclude_gpu> option in client configuration.
ID: 65052 · Report as offensive
Vagelis Giannadakis

Send message
Joined: 23 Oct 15
Posts: 3
Greece
Message 65054 - Posted: 23 Oct 2015, 14:54:54 UTC - in response to Message 65052.  

Thanks for your response Richard! I can only hope David and the other devs will someday reach this item in their to-do list and find it worth the effort to fix / change.

As for my crunching, the workaround is to raise even more the work buffer. My fast GPU can process the longest tasks in 12-13 hours, while my slow GPU would miss the 24h bonus for most tasks currently in circulation, so having tasks around for 3-4 hours more doesn't hurt.

Now, if completion estimations were accurate, I could do a slight overclock of my slow GPU, just so it finishes long tasks in ~23.5h, leaving about 30min for the (large) upload. I could then set a work buffer of ~5min, ensuring the next task will finish in less than 24h.
ID: 65054 · Report as offensive
Vagelis Giannadakis

Send message
Joined: 23 Oct 15
Posts: 3
Greece
Message 65199 - Posted: 2 Nov 2015, 13:39:46 UTC

I just found out that BOINC does provide this functionality, in the form of an Application-level configuration option! Copying from the Client configuration / Application configuration page:

fraction_done_exact
if set, base estimates of remaining time solely on the fraction done reported by the app. New in 7.3.13.

I am testing this at the time of writing this post and indeed the completion times appear to be estimated correctly, and of course differently for each GPU type.

Thank you BOINC team! :D
ID: 65199 · Report as offensive

Message boards : GPUs : WU Completion Time Estimation With GPUs of Different Types

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.