Thread 'Add a Flag in cc_config to Prioritze GPU Work'

Message boards : BOINC client : Add a Flag in cc_config to Prioritze GPU Work
Message board moderation

To post messages, you must log in.

AuthorMessage
ProfileSteve Dodd

Send message
Joined: 28 Nov 09
Posts: 12
United States
Message 117974 - Posted: 4 Jan 2026, 17:02:33 UTC

Just a suggestion, of course, but I'd like to keep my GPUs working and prioritized above the CPU work. Even giving the GPU project 100% Resource Share and lesser amounts for CPU projects, I still get GPU pauses. Putting a flag in cc_config for the BOINC client would be one possible solution?

Steve
ID: 117974 · Report as offensive     Reply Quote
ProfileVitalii Koshura
Volunteer developer
Help desk expert
Avatar

Send message
Joined: 29 Mar 17
Posts: 201
Germany
Message 117975 - Posted: 4 Jan 2026, 18:25:09 UTC - in response to Message 117974.  

Are you sure you have the correct settings?
I have never seen a situation when GPU is idling because of the CPU task.
BOINC maintainer.
For any insight, check my BOINC Development Blog.
ID: 117975 · Report as offensive     Reply Quote
mmonnin

Send message
Joined: 1 Jul 16
Posts: 217
United States
Message 117976 - Posted: 4 Jan 2026, 19:40:47 UTC - in response to Message 117975.  

In reply to Vitalii Koshura's message of 4 Jan 2026:
Are you sure you have the correct settings?
I have never seen a situation when GPU is idling because of the CPU task.


This easily happens when a GPU app is set to require a full CPU thread. If you have 8 threads, running 8 CPU tasks and the GPU app requires 1 GPU and 1 CPU, then you're not going to run the GPU until a CPU task completes. Memory availability can also cause this.

An app_config.xml for the GPU app set to use 0.1 CPUs or a separate client instance just for GPU will solve the issue. I always have a separate client just for handling GPU processors as the client does not handle mixed work very well.
ID: 117976 · Report as offensive     Reply Quote
ProfileVitalii Koshura
Volunteer developer
Help desk expert
Avatar

Send message
Joined: 29 Mar 17
Posts: 201
Germany
Message 117979 - Posted: 4 Jan 2026, 21:50:49 UTC

Please enable the next log flags:

    cpu_sched
    cpu_sched_debug
    cpu_sched_status


then try to catch this situation and open a ticket with the log file attached.
This will help us to understand why this situation happens.
I do believe this is because there are some other CPU only tasks that are very close to the deadline, and thus need to be prioritized first.
In this case (if you still want to force GPU tasks to be scheduled, you need to assign to them < 1 CPU in the custom app_config.xml file).


BOINC maintainer.
For any insight, check my BOINC Development Blog.
ID: 117979 · Report as offensive     Reply Quote
Grant (SSSF)

Send message
Joined: 7 Dec 24
Posts: 243
Message 117982 - Posted: 5 Jan 2026, 6:05:33 UTC - in response to Message 117976.  

In reply to mmonnin's message of 4 Jan 2026:
In reply to Vitalii Koshura's message of 4 Jan 2026:
Are you sure you have the correct settings?
I have never seen a situation when GPU is idling because of the CPU task.
This easily happens when a GPU app is set to require a full CPU thread. If you have 8 threads, running 8 CPU tasks and the GPU app requires 1 GPU and 1 CPU, then you're not going to run the GPU until a CPU task completes.
I have never, ever had this occur.
If i have my system using all cores and threads on CPU work, with a GPU Task running as well, and i reserve 1 CPU core/thread
      <gpu_versions>
         <gpu_usage>1.0</gpu_usage>
         <cpu_usage>1.0</cpu_usage>
      </gpu_versions>

And Read config file, then one CPU Task will stop processing and show as Waiting to run.
If i set it to reserve 2 CPU cores/threads
      <gpu_versions>
         <gpu_usage>1.0</gpu_usage>
         <cpu_usage>2.0</cpu_usage>
      </gpu_versions>

And Read config file, Another CPU Task will stop processing. leaving 2 Waiting to run.
If i set it to use 1 CPU core/thread, but multiple Tasks per GPU
      <gpu_versions>
         <gpu_usage>0.33</gpu_usage>
         <cpu_usage>1.0</cpu_usage>
      </gpu_versions>

I'll end up with 3 CPU Tasks Waiting to run (or 6 if i have 2 GPUs).
If i run out of CPU work, then all CPU cores/threads will process Tasks again.
As soon as more work for the GPU downloads, CPU Tasks will stop processing as those cores/threads are released to support the GPU Tasks.

If i go back to
      <gpu_versions>
         <gpu_usage>1.0</gpu_usage>
         <cpu_usage>1.0</cpu_usage>
      </gpu_versions>

It will go back to just one CPU Task Waiting to run.



The only way i can imaging something like what you suggesting occurring is if a cache is pretty much full to the brim/ Tasks are up against deadlines (a system had more downtime than usual eg power failure), and CPU Tasks are being processed in priority mode to try to avoid missing the deadline.
Grant
Darwin NT.
ID: 117982 · Report as offensive     Reply Quote
mmonnin

Send message
Joined: 1 Jul 16
Posts: 217
United States
Message 117986 - Posted: 5 Jan 2026, 10:22:19 UTC - in response to Message 117982.  

Run Asteroids which has the same app for CPU and GPU. Or set the project priority as a ratio between CPU and GPU tasks (8x or more higher for CPU project then GPU project for an 8 threaded CPU). You jus described it is possible to idle a task, the client just didn't prioritize the GPU.
ID: 117986 · Report as offensive     Reply Quote
ProfileVitalii Koshura
Volunteer developer
Help desk expert
Avatar

Send message
Joined: 29 Mar 17
Posts: 201
Germany
Message 118646 - Posted: 27 Mar 2026, 12:47:23 UTC - in response to Message 117986.  

There is now a new
<prioritize_gpu/>
option in cc_config.xml file that enabled GPU prioritization.
BOINC maintainer.
For any insight, check my BOINC Development Blog.
ID: 118646 · Report as offensive     Reply Quote

Message boards : BOINC client : Add a Flag in cc_config to Prioritze GPU Work

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