Watchdog question

I have 3 questions:

  1. Do I understand correctly that the Windows graphics drivers can’t update the screen while a CUDA kernel is executing?

  2. Is this why the watchdog kills anything that runs for more than 5 seconds?

  3. Is this an architectural problem for Windows drivers or is it a limitation of NVIDIA Windows drivers?

Thanks,
Emil

Yes, yes, and well, kind of. On Vista / Windows 7 you can delay or disable the watchdog using registry entries.

Yes, yes, and well, kind of. On Vista / Windows 7 you can delay or disable the watchdog using registry entries.

Tera, thanks for the focused reply. Just to clarify:

Even on Vista and 7 disabling the watchdog doesn’t make things much better, e.g. the screen won’t be updated?

Is there any place I can read about the reasons for this design? This makes me think that the shaders of different processes are executed in something resembling a cooperative multi-process environment, would that be a correct description?

Tera, thanks for the focused reply. Just to clarify:

Even on Vista and 7 disabling the watchdog doesn’t make things much better, e.g. the screen won’t be updated?

Is there any place I can read about the reasons for this design? This makes me think that the shaders of different processes are executed in something resembling a cooperative multi-process environment, would that be a correct description?

I believe the reason to be the compositing, that is done entirely on the GPU (without an alternative CPU code path that could be used when the GPU is not available). That is entirely my own explanation though, I don’t know anything about the internals. I would believe that under Windows 7 you could keep the screen updating smoothly using two separate video cards, one driving the screen and one exclusively dedicated to CUDA. Someone else with experience in this field would have to comment on that.

Cooperative multi-processing might be a way to describe it, since both CUDA and the video driver can hold resources (memory) allocated at the same time. The voluntary preemption points would be the end of each shader/kernel execution. Apart from the memory, on the other hand, one might see the kernel shaders/kernels as a kind of batch execution system, where each batch from the queue runs continuously until its end once it is started, as kernels cannot be preempted.

I believe the reason to be the compositing, that is done entirely on the GPU (without an alternative CPU code path that could be used when the GPU is not available). That is entirely my own explanation though, I don’t know anything about the internals. I would believe that under Windows 7 you could keep the screen updating smoothly using two separate video cards, one driving the screen and one exclusively dedicated to CUDA. Someone else with experience in this field would have to comment on that.

Cooperative multi-processing might be a way to describe it, since both CUDA and the video driver can hold resources (memory) allocated at the same time. The voluntary preemption points would be the end of each shader/kernel execution. Apart from the memory, on the other hand, one might see the kernel shaders/kernels as a kind of batch execution system, where each batch from the queue runs continuously until its end once it is started, as kernels cannot be preempted.