cancel
Showing results for 
Search instead for 
Did you mean: 

Archives Discussions

frankas
Journeyman III

calling usleep(0) destroys performance. Why ?

I am noticing some very strange behaviour. I have one a kernel running in a tight busy loop waiting for events. When doing this GPU utilization is 85% - but if I try to be 'nice' and add a usleep() call in my loop, this drops to 60%. This happens even if I call usleep(0), which in theory does 'nothing'.

What in the World is going on here ? Does the CAL runtime interfere with SIG_ALARM handling ?

I also have reports that the same thing happens on 5970 cards (10.x) driver, even without a usleep() call, I can't get utilization much higher than 60%. I am thinking there may be a connection since the symptoms are quite similar.

 

Code hosted here:

http://reflextor.com/trac/a51/browser/tinkering/new_ati_code

A5Slice::tick() is the state machine that drives the kernel invocations. Adding usleep(0) to the loop of the calling function makes things go pear shaped. (A5Brook.cpp line 179)

Any clues ? Anyone ?

 

0 Likes
0 Replies