I am having problems with CUDA code that triggers TDR, although the code is running on a different GPU than the monitor.
I have a win7 64bit, a Quadro2000 and a Quadro600, CUDA 7.5 with latest drivers 354.42. My only monitor is connected to the Q600, which in the NVIDIA control panel is set as dedicated to graphics tasks. Also the PhysX processor is selected as the Q600. The Cuda code is called by a mex function from matlab, I keep the GPU utilization graph on and I can see the Q2000 is called when the code is executed. Execution time depends on the size of the input, if I put it low everything works fine, I get a nice peak in the Q2000 use that lasts for less than 2 seconds. If I increase the size the monitor flickers a bit, the Q2000 use drops and I get all 0s from the code. Any attempt to use the code again in the same session fails, even if I decrease again the input size. I need to restart Matlab to have it working. Sometimes Matlab crashes as a result and when restarted it gives me an error for an unexpected crash and a warning that the current session uses openGL instead of graphic hardware, trying the code in this state does not change the outcome. Once I got an error from NVIDIA drivers about an error 3 in the kernel
I suspect this is something related with TDR but I can’t get my head on why this happens as I have 2 cards. I’d rather not mess with the TDR settings and try to setup the 2 cards properly… any help?