Page 2 of 2

Re: Multiple GPUs and CPUs?

Posted: Thu Feb 09, 2023 6:25 am
by calxalot
If you isolate a GPU in a group with only one cpu, then it cannot use more than one cpu.

In the future, there may be hybrid cores that can use multiple cpus and gpus on one WU.

Re: Multiple GPUs and CPUs?

Posted: Thu Feb 09, 2023 7:19 am
by Peter_Hucker
So how do I tell it to do only GPU work, but allow it to take as many CPU cores as it likes to assist those, without doing CPU-only work?

Re: Multiple GPUs and CPUs?

Posted: Thu Feb 09, 2023 9:45 am
by calxalot
Peter, I recommend the following for you:

Set client to Finish

Wait for all WUs to finish and upload, and client to become paused

Open client Settings

[*] Deselect all gpus
[*] Set cpus to zero
[*] In Peers, type

/gpu1 /gpu2 /gpu3

[*] Click Add peers

Click Save

You should now see 4 "Peers"

For each /gpu peer:

[*] Click Settings gear
[*] Select ONE gpu
[*] Set cpus 1
[*] Click Save

Leave default (unnamed) group with zero resources

Click Start All

You should see all 3 /gpu groups start one gpu WU

You should not see any cpu WUs started anywhere

If a CPU WU is started in a /gpu group, I would call that a bug that you should report as a client issue

https://github.com/FoldingAtHome/fah-cl ... tet/issues

The Resource Group names are arbitrary, but must begin with "/", and contain only letters, numbers, and characters "._-" (period, underscore, hyphen)

Re: Multiple GPUs and CPUs?

Posted: Thu Feb 09, 2023 2:56 pm
by Hou5e
I posted this 'How To' about setting up Resource Groups: viewtopic.php?t=39101
Please let us know if you need any help with it. :)

Re: Multiple GPUs and CPUs?

Posted: Thu Feb 09, 2023 3:07 pm
by rbpeake
Why is there a group showing cpus: 0 gpus:0? What is its purpose?

Thanks.

Re: Multiple GPUs and CPUs?

Posted: Thu Feb 09, 2023 3:28 pm
by Hou5e
The main Resource Group (without a name) will display the log file data for all the Resource Groups. I typically leave it there like that, but you can use the main Resource Group if you want to. I like the log data labeled with which Resource Group it is in (otherwise you get :: and :/RG1:, instead of :/RG1: and :/RG2:). Also, the main Resource Group will have the Peers list to add or remove from, while the other Resource Group settings will not.

Re: Multiple GPUs and CPUs?

Posted: Thu Feb 09, 2023 8:13 pm
by Peter_Hucker
calxalot wrote: Thu Feb 09, 2023 9:45 amFor each /gpu peer:

[*] Click Settings gear
[*] Select ONE gpu
[*] Set cpus 1
[*] Click Save
Before I do that, please confirm....

If I set cpus 1 in there, won't that restrict the tasks to 1 gpu and 1 cpu each, as is already happening? I want to allow for a task which wants 4 cpus and 1 gpu. Or will such a task just take extra cpus?

In fact what happens on default settings when you select to use everything? If I have a 21 cpu task running and three of 1 gpu+1 cpu tasks running, then one of those three finishes and a 4 cpu+1 gpu task appears, what happens? Does the cpu just get overfilled until the next changeover, or does something stop and wait?

Re: Multiple GPUs and CPUs?

Posted: Thu Feb 09, 2023 8:21 pm
by Joe_H
The v8 client does not currently implement that the way you want, if the resource group has more than one CPU assigned it may use that for a CPU project. There is at least one reported bug in that process where a GPU project did take more CPU threads and stopped an active CPU WU from being processed.

Another way of putting it is that the v8 client is Beta, it does not fully implement everything available in v7, and it does included some new functionality for future folding cores and projects that may be processed on both CPUs and GPUs at the same time.

Re: Multiple GPUs and CPUs?

Posted: Thu Feb 09, 2023 9:41 pm
by Peter_Hucker
Scheduling can be difficult, I've used Boinc extensively and so many things go wrong.

Since a GPU is far more powerful, it makes sense it stops the CPU unit. Boinc does it the other way round and stops the GPU unit. Your way makes more sense.

You could have it so neither is stopped. The CPU won't mind being overloaded, it will share itself between all the tasks. But it may make the GPU be sat waiting half the time. So perhaps you have it the best way. Unless the CPU task can be told to please use a few less cores for the rest of the task (which may be impractical).