Advanced search

Message boards : Graphics cards (GPUs) : Running GPU app in "realtime" priority

Author Message
Sherman H.
Send message
Joined: 28 Sep 08
Posts: 27
Credit: 6,201,632,872
RAC: 2
Level
Tyr
Scientific publications
watwatwatwat
Message 3018 - Posted: 13 Oct 2008 | 12:21:13 UTC

I just found that if I go to Windows Task Manager and bump the priority of the GPU app to "realtime", it runs quite a bit more speedily on my 8800GT's (especially when I'm also heavily tasking the CPU like during x264 encoding), without obvious detriment to anything else.

This makes me wonder: is there a way to get the BOINC client to start WU's in "realtime" priority automatically, instead of having to do it manually all the time?

JKuehl2
Send message
Joined: 18 Jul 08
Posts: 33
Credit: 3,233,174
RAC: 0
Level
Ala
Scientific publications
watwatwatwatwat
Message 3021 - Posted: 13 Oct 2008 | 13:11:06 UTC - in response to Message 3018.

Do not try under Vista (64) with GTX260 - bluescreens result

Profile GDF
Volunteer moderator
Project administrator
Project developer
Project tester
Volunteer developer
Volunteer tester
Project scientist
Send message
Joined: 14 Mar 07
Posts: 1957
Credit: 629,356
RAC: 0
Level
Gly
Scientific publications
watwatwatwatwat
Message 3023 - Posted: 13 Oct 2008 | 14:04:45 UTC - in response to Message 3021.

6.1.14 is prepared to increase priority for gpu app (without going realtime).

gdf

Sherman H.
Send message
Joined: 28 Sep 08
Posts: 27
Credit: 6,201,632,872
RAC: 2
Level
Tyr
Scientific publications
watwatwatwat
Message 3025 - Posted: 13 Oct 2008 | 14:44:43 UTC - in response to Message 3023.

6.1.14 is prepared to increase priority for gpu app (without going realtime).

gdf


I'm running 6.3.14, does it mean that there's a mechanism for the BOINC client to change the priority that GPU apps start in?

That said, I found priorities from low through high to behave the same way, or at least very similarly: I cannot discern a difference with my setup until I get to realtime.

ExtraTerrestrial Apes
Volunteer moderator
Volunteer tester
Avatar
Send message
Joined: 17 Aug 08
Posts: 2705
Credit: 1,311,122,549
RAC: 0
Level
Met
Scientific publications
watwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwat
Message 3032 - Posted: 13 Oct 2008 | 19:00:19 UTC

Ah, I remember I also wanted to try this when app 6.45 came out. but I failed because windows doesn't let me change the priority, "access denied". Running XP32 as admin. Is that a side effect of the protected execution install? (can't change the priority of the regular CPU-WUs either)

MrS
____________
Scanning for our furry friends since Jan 2002

Profile Krunchin-Keith [USA]
Avatar
Send message
Joined: 17 May 07
Posts: 512
Credit: 111,288,061
RAC: 0
Level
Cys
Scientific publications
watwatwatwatwatwatwatwatwatwatwatwatwatwatwat
Message 3033 - Posted: 13 Oct 2008 | 20:19:07 UTC - in response to Message 3025.

6.1.14 is prepared to increase priority for gpu app (without going realtime).

gdf


I'm running 6.3.14, does it mean that there's a mechanism for the BOINC client to change the priority that GPU apps start in?

That said, I found priorities from low through high to behave the same way, or at least very similarly: I cannot discern a difference with my setup until I get to realtime.

The project can change the amount of CPU used, more or less.

The client will automatically adjust priority to Normal system prioirty for any CPU of less than 1.00. Any CPU of 1.00 tasks will runs as before at Low system priority, as shown in task manager. This will not show in boinc manager and is not to be confused with 'Running High Priority' which shows in boinc manager when a task is in deadline trouble.

There is no way for users to change this.

Sherman H.
Send message
Joined: 28 Sep 08
Posts: 27
Credit: 6,201,632,872
RAC: 2
Level
Tyr
Scientific publications
watwatwatwat
Message 3039 - Posted: 13 Oct 2008 | 22:55:42 UTC - in response to Message 3033.

There is no way for users to change this.


Ah... Well, I wish there was flag in one of the config files that I could change to accommodate the realtime priority. It's good to know that the BOINC client knows to adjust the windows priority for tasks using <1 CPU; too bad I don't see a benefit with running GPUGRID at normal priority compared with low though.

Profile Krunchin-Keith [USA]
Avatar
Send message
Joined: 17 May 07
Posts: 512
Credit: 111,288,061
RAC: 0
Level
Cys
Scientific publications
watwatwatwatwatwatwatwatwatwatwatwatwatwatwat
Message 3040 - Posted: 14 Oct 2008 | 2:29:42 UTC - in response to Message 3039.

There is no way for users to change this.


Ah... Well, I wish there was flag in one of the config files that I could change to accommodate the realtime priority. It's good to know that the BOINC client knows to adjust the windows priority for tasks using <1 CPU; too bad I don't see a benefit with running GPUGRID at normal priority compared with low though.

I'm not sure how to explain it technically. Heres my non technical thinking on it. If the CPU/CUDA app makes a request CPU to CUDA and is at running Normal Priority, that request in the system has priority over the apps running at low priority, it goes to the front of the line. If all the apps are running at low, then it just goes in line, so a few other app instructions maybe ahead of it, making it miss a beat. This causes a slow down in the CPU to CUDA overall performance. There should be smoother performance when the CPU/CUDA app is running at normal. That's not the exact way it happens but sort of draws the picture. Do you see it now ?
If not, wait until the project makes the change, then you can see for yourself.

Sherman H.
Send message
Joined: 28 Sep 08
Posts: 27
Credit: 6,201,632,872
RAC: 2
Level
Tyr
Scientific publications
watwatwatwat
Message 3041 - Posted: 14 Oct 2008 | 3:09:36 UTC - in response to Message 3040.

I'm not sure how to explain it technically. Heres my non technical thinking on it. If the CPU/CUDA app makes a request CPU to CUDA and is at running Normal Priority, that request in the system has priority over the apps running at low priority, it goes to the front of the line. If all the apps are running at low, then it just goes in line, so a few other app instructions maybe ahead of it, making it miss a beat. This causes a slow down in the CPU to CUDA overall performance. There should be smoother performance when the CPU/CUDA app is running at normal. That's not the exact way it happens but sort of draws the picture. Do you see it now ?
If not, wait until the project makes the change, then you can see for yourself.


I understand that's how "normal" versus "low" is supposed to make a difference, but I cannot observe that difference with my computers. I have to raise the priority all the way to "realtime" in order to realize a performance gain.

In the meantime therefore, I'm using a brute force approach to automating the setting of CUDA tasks to "realtime" priority by running a script at regular intervals via Scheduled Tasks. Quite inelegant, but it serves the purpose.

Profile Krunchin-Keith [USA]
Avatar
Send message
Joined: 17 May 07
Posts: 512
Credit: 111,288,061
RAC: 0
Level
Cys
Scientific publications
watwatwatwatwatwatwatwatwatwatwatwatwatwatwat
Message 3042 - Posted: 14 Oct 2008 | 12:12:15 UTC - in response to Message 3041.

I'm not sure how to explain it technically. Heres my non technical thinking on it. If the CPU/CUDA app makes a request CPU to CUDA and is at running Normal Priority, that request in the system has priority over the apps running at low priority, it goes to the front of the line. If all the apps are running at low, then it just goes in line, so a few other app instructions maybe ahead of it, making it miss a beat. This causes a slow down in the CPU to CUDA overall performance. There should be smoother performance when the CPU/CUDA app is running at normal. That's not the exact way it happens but sort of draws the picture. Do you see it now ?
If not, wait until the project makes the change, then you can see for yourself.


I understand that's how "normal" versus "low" is supposed to make a difference, but I cannot observe that difference with my computers. I have to raise the priority all the way to "realtime" in order to realize a performance gain.

In the meantime therefore, I'm using a brute force approach to automating the setting of CUDA tasks to "realtime" priority by running a script at regular intervals via Scheduled Tasks. Quite inelegant, but it serves the purpose.

You should not be changing the priority of tasks.

If there is a slowdown then it is because of interference from something else running in the system.

I found this on my system and by stopping of running another app (Optimizer of Malaria) I have seen a speed increase in the GPU run time. The ms/step has improved by 4ms staying at the low end of the range from before. Other apps I run do not interfere as that particular app did. In addition when running at Normal, as determined by BOINC, I gain another 4ms/step. These times are only from a few examples since finding this problem, but testing continues. Results are now more close in run times, say 68.20 min to 68.99 max ms/step, than before where the range was widely varied, 68ms to 72ms. I get 64ms/step on the test app.

ExtraTerrestrial Apes
Volunteer moderator
Volunteer tester
Avatar
Send message
Joined: 17 Aug 08
Posts: 2705
Credit: 1,311,122,549
RAC: 0
Level
Met
Scientific publications
watwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwat
Message 3043 - Posted: 14 Oct 2008 | 21:28:31 UTC - in response to Message 3042.

You should not be changing the priority of tasks.

If there is a slowdown then it is because of interference from something else running in the system.


Well, if it helps ;)

Many people noticed a substantial slow down going to the 6.45 app, so there is performance lost due to scheduling issues. I think this is a general issue, only in exteme cases will you be able to find a responsible "killer app". And Even going from 72 to 64 ms/step is (as nice as it is) less of a change than the increase in computation time I've seen on my machine due to the new client. So there is lot's of potential left in the GPU which may be extracted to some extent by going real time.

MrS
____________
Scanning for our furry friends since Jan 2002

Post to thread

Message boards : Graphics cards (GPUs) : Running GPU app in "realtime" priority

//