Suggestion: Graphical Device Usage

Message boards : Questions and problems : Suggestion: Graphical Device Usage
Message board moderation

To post messages, you must log in.

AuthorMessage
MindCrime

Send message
Joined: 21 Oct 16
Posts: 2
United States
Message 73472 - Posted: 21 Oct 2016, 8:51:15 UTC

Since BOINC recognizes the available devices its setup to use upon startup would it be possible to isolate their functionality? Currently all GPUs are controlled together. If I only want to turn one off I'd have to write app_infos or app_configs for each project involved.

I suggest a usage or device tab with simple check boxes for each device akin to how it works on the server side project preferences.

Also and possibly less disruptive would be to list the individual GPUs, CPUs (0,1,2,...), ASICs in separate groups in the activity drop down menu and one could check each one on/off individually.

It would allow me to utilize whichever GPU I'm not currently using be it work or play, many hosts have multiple GPUs be it discrete or on-die (iGPU/APU) that go wasted while the other needs to be turned off for other use.

I feel like this could be taken in a direction that makes BOINC more user friendly for new users and more specific for experienced users and the variability of computer hardware setups.


For example in simple view:

Available Devices:
CPUs
[x]i5-4570
GPUs
[]HD4400
[x] R9 280x

.... Advanced view:

Available Devices:
CPUs
[x]i7-xxxx
[] core 1
[] core 2
[] core 3
.....
GPUs
[]HD4000
[]R9 280x
[]xeon-phi ???
ASICs
(maybe comm channel sorted? Way out of my league)
Other sensors
[]radiation sensor
[]quakenet stuff


Brainstorm it with me
ID: 73472 · Report as offensive
Profile Jord
Volunteer tester
Help desk expert
Avatar

Send message
Joined: 29 Aug 05
Posts: 14953
Netherlands
Message 73474 - Posted: 21 Oct 2016, 9:08:28 UTC - in response to Message 73472.  
Last modified: 21 Oct 2016, 9:08:58 UTC

Currently all GPUs are controlled together. If I only want to turn one off I'd have to write app_infos or app_configs for each project involved.

Actually, BOINC will only use the most capable device by default, so if you have more than one GPU and they differ in (AMD:) speed, memory, double precision usage, or (Nvidia:) compute capability, software version, available memory and speed, only the best will be used and you have to tell BOINC through the use_all_gpus function in cc_config.xml to use all the other GPUs (where necessary).

In your example, a default BOINC will only use the R9 280x.
ID: 73474 · Report as offensive
MindCrime

Send message
Joined: 21 Oct 16
Posts: 2
United States
Message 73517 - Posted: 23 Oct 2016, 2:57:52 UTC - in response to Message 73474.  

Currently all GPUs are controlled together. If I only want to turn one off I'd have to write app_infos or app_configs for each project involved.

Actually, BOINC will only use the most capable device by default, so if you have more than one GPU and they differ in (AMD:) speed, memory, double precision usage, or (Nvidia:) compute capability, software version, available memory and speed, only the best will be used and you have to tell BOINC through the use_all_gpus function in cc_config.xml to use all the other GPUs (where necessary).

In your example, a default BOINC will only use the R9 280x.


But when BOINC loads it will see all the devices but use only the ones based on preferences/settings. Most of us that have multiple GPUs in our machines that want to crunch with them all have <use all gpus>1</...> in cc_config. But what if at particular time I want to use 1 of those gpus but not the other for something other than BOINC, currently I have to halt all gpu boinc work to use just 1 of them in another program.
ID: 73517 · Report as offensive
sirzooro

Send message
Joined: 17 Feb 13
Posts: 13
Poland
Message 73582 - Posted: 26 Oct 2016, 9:35:05 UTC

You can also use <exclude_gpu> tag in cc_config.xml. Unfortunately you have to repeat it for every project which use GPU. It would be nice if <url> also would be optional, in such case <exclude_gpu> should be applied to all projects.

<exclude_gpu>
   <url>project_URL</url>
   [<device_num>N</device_num>]
   [<type>NVIDIA|ATI|intel_gpu</type>]
   [<app>appname</app>]
</exclude_gpu>

ID: 73582 · Report as offensive
Richard Haselgrove
Volunteer tester
Help desk expert

Send message
Joined: 5 Oct 06
Posts: 4761
United Kingdom
Message 73583 - Posted: 26 Oct 2016, 10:06:51 UTC - in response to Message 73582.  

... in such case <exclude_gpu> should be applied to all projects.

That's also available already, with

<ignore_ati_dev>N</ignore_ati_dev>
Ignore (don't use) a specific ATI GPU. You can ignore more than one.
<ignore_cuda_dev>N</ignore_cuda_dev>
Ignore (don't use) a specific NVIDIA GPU. You can ignore more than one. Only used in 6.10.19 till 6.12.41.
<ignore_intel_dev>N</ignore_intel_dev>
Ignore (don't use) a specific Intel GPU.
<ignore_nvidia_dev>N</ignore_nvidia_dev>
Ignore (don't use) a specific NVIDIA GPU. You can ignore more than one. Replaces <ignore_cuda_dev/>. Example:
<ignore_nvidia_dev>0</ignore_nvidia_dev>

For details, refer to Client configuration.
ID: 73583 · Report as offensive
Coleslaw
Avatar

Send message
Joined: 23 Feb 12
Posts: 198
United States
Message 73595 - Posted: 28 Oct 2016, 13:45:34 UTC

No, that is an all or nothing. What MindCrime is saying is that when computer isn't in use, he wants all of them to be used. However, if he decides to play a video game, he may only need his best GPU for the game and the rest can keep DC'ing. Currently this scenario requires a lot of config file switching or just not allowing the GPU's to crunch until he is done gaming. By having the client designed to allow for simpler pausing of the devices, it would be a much greater appeal to people like gamers. Many gamers will go 4-8 hours at a time. To a dedicated cruncher, this is a lot of lost production on a box full of GPU's.
ID: 73595 · Report as offensive

Message boards : Questions and problems : Suggestion: Graphical Device Usage

Copyright © 2022 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.