cancel
Showing results for 
Search instead for 
Did you mean: 

Archives Discussions

rick_weber
Adept II

Resetting GPU

Is there a way to reset the GPU in Linux without rebooting the machine? I have a CAL kernel that gone haywire and is stuck in an infinite loop. I can reset the machine, but that's a bit overkill for debugging a kernel.

Tags (2)
0 Likes
6 Replies
rahulgarg
Adept II

Resetting GPU

I was about to ask the same question !!
0 Likes
MicahVillmow
Staff
Staff

Resetting GPU

rick/Rahul,
It is impossible for the GPU to go in an infinite loop because the loop counter is only 32 bits. What is actually occurring is it is going into a very long loop and if you wait long enough, the loop counter will wrap around to zero after 2^32-1 iterations and break from the loop. I don't know of any way to send a reset command to the GPU in linux like with the watchdog timer on windows. Maybe there is something in the kernel but not sure.
0 Likes
rick_weber
Adept II

Resetting GPU

Originally posted by: MicahVillmow What is actually occurring is it is going into a very long loop and if you wait long enough, the loop counter will wrap around to zero after 2^32-1 iterations and break from the loop.


The IL spec is inaccurate then if that's the case. It says "A while loop block can iterate indefinitely, exiting only when a break instruction is executed." Though, I guess it's also misleading in that it doesn't account for the eventual heat death of the universe

0 Likes
MicahVillmow
Staff
Staff

Resetting GPU

Rick,
From the IL language perspective that statement is still true. How the hardware implement is a different story. Although the IL tries to map as well to the hardware as possible, this is one of the cases where it is not able to. The above statement is also unique to specific hardware and may change between hardware revisions.
0 Likes
rick_weber
Adept II

Resetting GPU

Ok, that makes sense.

0 Likes
zpdixon
Journeyman III

Resetting GPU

Originally posted by: MicahVillmow rick/Rahul, It is impossible for the GPU to go in an infinite loop because the loop counter is only 32 bits.


That is assuming the code is bug-free Case in point: today I accidentally forgot to decrement a loop counter, and I had no choice but to reboot the machine...

0 Likes