Author |
Message |
|
Just like you can change the run level for an application on the CPU, I am pretty sure there is a way to change it for the GPU. Running a BOINC project along side of a non-BOINC project allows for more of the GPU % to be used, but the other one runs at a GPU run level 2 and I would like for the GPUGrid on BOINC to be able to run at a higher GPU priority, like a 4 so that it can push out the other project while still allowing the other project to fill the GPU usage. I do know that the CPU run levels on Windows go up to 24 while I think the GPU run levels go up to 9 or 10.
I am not sure if this is a BOINC or a GPUGrid wish option that I am asking for.
____________
1 Corinthians 9:16 "For though I preach the gospel, I have nothing to glory of: for necessity is laid upon me; yea, woe is unto me, if I preach not the gospel!"
Ephesians 6:18-20, please ;-)
http://tbc-pa.org |
|
|
|
I am not sure if this is a BOINC or a GPUGrid wish option that I am asking for.
Neither: as far as I know there is no GPU priority under Windows, and I haven't heard of any under Linux either. If there is anything it certainly has not yet made its way into BOINC - and this would be a hot feature to exploit.
MrS
____________
Scanning for our furry friends since Jan 2002 |
|
|
|
I would have thought so also, but I think that is not correct. I have been running the RC5-72 project from distributed.net for a few years and recently they added CUDA, Stream, and OpenCL versions of the client to run the project. So when I came to GPUGrid and installed the BOINC client for the first time, I stopped the other project for some time. When I noticed that the GPUs were not being used even close to 100% I turned the other project back on to take up that slack. When looking at the configuration and experimenting with the different configurations I noticed that the GPU client for distributed.net recommends using the run level of 2. I found that the best usage of the total amount of GPUs do get used when I turn that internal priority to 2. If it is set to 0 or 1, it does not use up the full GPU and if it is set higher than 2 it takes away more of the GPU from GPUGrid without adding more GPU usage (simply because at level 2, it uses 97/98%.) Also in using more of the GPU the actual keys per second were increased and the rate of completion of the GPUGrid work unit was slowed. To me, this proved that it was indeed a GPU run level that was being changed properly by the distributed.net client.
Also in that experimentation I used the task manager (Process Explorer) to set the Windows priority to higher levels while the internal priority was set to 0. This did not change the GPU usage at all or the keys per second. It also did not change the CPU usage for that instance of the client. This experimentation led me to believe that this internal setting to change the priority was in fact referring to and manipulating a GPU specific priority and not the CPU priority.
So as you can see, I want to make this project the greater priority to my GPUs and force this project to get as much of the GPUs that it can possibly take (which depending on the work unit is usually between 60 and 80%) and then have the distributed.net project only get the exact amount that it takes to take the GPU usage % to 97/98. I just feel that this project is being robbed of GPU and I don't like that. |
|
|
|
That's an interesting observation and experiment. I don't know the DNET runlevel, but I can immediately think of a mechanism how they could achieve such behaviour without GPU priority: in any current GPU app there's a controlling thread running on the CPU. It sends work to the GPU, collects the results and sends new work. A lot of effort goes into deciding how this CPU thread should work: it can poll the GPU constantly for new results (fastest performance, one CPU cores used) or it can try to guess when the current work will be ready and only start asking the GPU for results shortly before this (what GPU-Grid uses now).
If one wants to ccreate some pseudo-priority, one can choose different ways of polling. Starting from the most agressive behaviour, one could also deliberately wait longer than the GPU is expected to need for the current task. This leaves more time slots for other work. Some early GPU apps used this to sacrifice some performance in order to keep the display responsive while crunching.
Within some limits one ccan also adjust the amount of work that the CPU thread is sending during each intervall. GPU-Grid is limited to one time step, I think, but DNET could easily scale the number of keys to test. Without real GPU priority it's "first come, first serve" operation. As far as I know GPU tasks are not interrupted for other tasks (that's why displays can become unresponsive due to GP-GPU work). So if you're allowed to execute some job on the GPU every now and then, you can influence the total amount of time your app becomes on the GPU by varying the amount of work you perform within each job.
MrS
____________
Scanning for our furry friends since Jan 2002 |
|
|
|
Well that makes sense, and it may be the actual case, but I think the wish is still valid, even if it may be impossible. :-) |
|
|
|
Yes, you're not alone with that. Proper GPU task scheduling and multi-tasking could in a lot of situations.. although it also complicates things further. We might have to wait for MS to develop some solid foundation for this.
MrS
____________
Scanning for our furry friends since Jan 2002 |
|
|
|
yeah you need to change this asap, we need to regulate this better
first my pc nvidia card sounds like a jet engine
we need to cruch abit slower fan noise is high and gpu temp 86 degree and its cold weather (winter) i bet this can crash doing summer time then summer heat kick-in
and the other project i allso do 24 seven so pc has cpu temp at 91 degree
but with your gpu runs i hit 96degree
we need throttle selections
and whats up with the short project time deadlines, what happend to the use idle time only
i get 2 longruns 24hours atleast and need return them within 4days
i have actual notice allmost project have time issue if you want download buff for a week the client cant figureout deadline's and sorting for all project
i have set buffer to 0 now so i dont have to check anything and 24 8core*2 pc + a dual core pc, but we all know very well that any network issue and no matter what project people is working on you will loose reseach time
and aslong you dont agree on terms in deadline with bonic manager you waste people reseach time if they dont compleat in time before the deadline expire
it seem to me you lack of a real idle client that only work then people dont use pc, not all have a supercomputerm alot of office pc could run this if idle running was possible and time slot was better depend on calculation per(sec/cpu
and even my pc is a gamer pc i need gpu cards for gameing, its clearly that bonic manager need a kick in the butt for better management and control so all project's have to have same rules on time slot.
sorry
im just mad over how things are working and how bad GPU options is
i can make egg and bacon on my cpu because gpu raise temp even further
i actual have 3 system chasi fan installed without them i doubt i can take that heat.
no wonder why many cant run project with so much heat generated
well gl with it
i hope you take this up with nonic manager and other project so people can add many project rather then this you seem to fight over people times with short time deadlines, shamefull display,
if you make a full idle client possible i will uninstall bonic manager and use that only , i dont have to look at deadlines at all, ( whats the point in that anyway, you just stress people with unesesary issue, atleast give enough time to make job ) |
|
|
|
yeah you need to change this asap, we need to regulate this better
first my pc nvidia card sounds like a jet engine
we need to cruch abit slower fan noise is high and gpu temp 86 degree and its cold weather (winter) i bet this can crash doing summer time then summer heat kick-in
and the other project i allso do 24 seven so pc has cpu temp at 91 degree
but with your gpu runs i hit 96degree
we need throttle selections
and whats up with the short project time deadlines, what happend to the use idle time only
i get 2 longruns 24hours atleast and need return them within 4days
i have actual notice allmost project have time issue if you want download buff for a week the client cant figureout deadline's and sorting for all project
i have set buffer to 0 now so i dont have to check anything and 24 8core*2 pc + a dual core pc, but we all know very well that any network issue and no matter what project people is working on you will loose reseach time
and aslong you dont agree on terms in deadline with bonic manager you waste people reseach time if they dont compleat in time before the deadline expire
it seem to me you lack of a real idle client that only work then people dont use pc, not all have a supercomputerm alot of office pc could run this if idle running was possible and time slot was better depend on calculation per(sec/cpu
and even my pc is a gamer pc i need gpu cards for gameing, its clearly that bonic manager need a kick in the butt for better management and control so all project's have to have same rules on time slot.
sorry
im just mad over how things are working and how bad GPU options is
i can make egg and bacon on my cpu because gpu raise temp even further
i actual have 3 system chasi fan installed without them i doubt i can take that heat.
no wonder why many cant run project with so much heat generated
well gl with it
i hope you take this up with nonic manager and other project so people can add many project rather then this you seem to fight over people times with short time deadlines, shamefull display,
if you make a full idle client possible i will uninstall bonic manager and use that only , i dont have to look at deadlines at all, ( whats the point in that anyway, you just stress people with unesesary issue, atleast give enough time to make job ) |
|
|
|
first my pc nvidia card sounds like a jet engine
we need to cruch abit slower fan noise is high and gpu temp 86 degree and its cold weather (winter) i bet this can crash doing summer time then summer heat kick-in
and whats up with the short project time deadlines, what happend to the use idle time only
i get 2 longruns 24hours atleast and need return them within 4days
and aslong you dont agree on terms in deadline with bonic manager you waste people reseach time if they dont compleat in time before the deadline expire One the first issue, You should use MSI Afterburner or NVIDIA Inspector or even Open Hardware Monitor so you can set a temp max on your cards. This will then keep your fans running softer and temps lower at the cost of the work unit time, of course.
On the second issue, the BOINC manager has settings in it and one of those is to be able to set a program or as many programs as you want so that if those programs are running, the manager will stop its own running. I have BOINC running on a system that we use at our church for recording the services video in full MPEG2 format. When we start that program, BOINC stops and when we are done with that program, BOINC starts again.
As suggested in this wish list request, there is no 'level of use' setting for BOINC or GPUGRID, but there is the option to turn it off when a certain program needs it, like a game or video editing or whatever.
As far as time goes, this project runs short and long tasks. Sometimes one has more tasks than others and sometimes one is out of work for a while, but both do get run. I have 4 computers that can run the long tasks in 6-9 hours and 1 laptop that takes almost 3 days for a long task and 18-24 hours for a short task. I would not consider my laptop a 'super computer' or even a 'gaming computer', but it does run GPUGRID on the Quadro card and DNET on the CPU and the OpenCL integrated Intel card 24/7 at less than 80 degrees most of the time. The temps are all regulated by MSI Afterburner. If I suspect a CPU temp issue as well, I will also run Open Hardware Monitor.
____________
1 Corinthians 9:16 "For though I preach the gospel, I have nothing to glory of: for necessity is laid upon me; yea, woe is unto me, if I preach not the gospel!"
Ephesians 6:18-20, please ;-)
http://tbc-pa.org |
|
|
|
i have just cleans my cpu fan and chasi fans that itself fix 20degree
so heat issue is gone, pc do has some aged on its back but still high-end if i plug in new gfx card. no need i have sli already can live with it for a time.
problem with the gpu was i want it to work on screen saver effect only so it can use it then i dont play games,and with a I7
many games only support 2-4 core so again a better idle client instead of use 50% or 75% as i doing now depend on game.
but then odd part is i can play skyrim fine with 100% to project
and yeah its heavy modded but not all games can that so that will be nice
if checkbox use rest of idle process was there so games can take waht it need and rest is client what is left if such is even possible to make.
and one time i use keep run GPU task and skyrim work fine, that was odd
but i guess my sli could share and still crunch on project sametime
and that is also great, but that was my mistake.
then i het a long block its 1d and 6h ( and that is impossible to complete in time if its only allowed doing night to work on it within 4 days deadline
so project time simple dont match in what it can calculated it to.
and we have all made a cpu calculations so client do know what pc can but i dont know if GPU is part of that. |
|
|
DwayneSend message
Joined: 13 Apr 14 Posts: 2 Credit: 7,537,168 RAC: 0 Level
Scientific publications
|
I have been trying to optimise my processor utilisation so BOINC doesnt make the whole system laggy, partially solved by setting cc_config.xml to:
<process_priority>0</process_priority>
<process_priority_special>1</process_priority_special>
so that graphics card doesn't hold up desktop software when GPU is running. This has improved everything and should be the default setting in my view.
Another improvement could be to add the CPU component of GPU tasks into the CPU allocations for CPU-only tasks (probably a higher priority so CPU-only will drop a task if needed to run a GPU task. Possibly an idea for BOINC though.
Perhaps GPU Grid can return a message on the task scheduler saying that there are no tasks if there is nothing to send so that I don't wonder if my system is compatible or not. |
|
|
DwayneSend message
Joined: 13 Apr 14 Posts: 2 Credit: 7,537,168 RAC: 0 Level
Scientific publications
|
Edit cc-config.xml to:
<process_priority>0</process_priority>
<process_priority_special>1</process_priority_special>
That gives a "low" priority for GPU and special tasks compared to "lowest" for CPU tasks. |
|
|
|
Please note that for this to work properly, you will need to be running a version of the wrapper program which post-dates PR 3999 (added to the source code on 25 September 2020).
This project appears to be distributing wrapper version 26198, which dates from approximately February 2017. |
|
|