windows timeout/TDR problem with multiple cards

I have Windows 7, and I have a GTX 580 used only for computation and an 8800 used only for display. The PhysX acceleration is configured to use the 8800 card.

I am using CUDA 4.2 with the latest driver (301.32). I am still getting timeout (TDR) errors. These errors go away if I edit the registry, but we would like to not require our customers to hack the registry, and we’d also like to not break our kernels into sub two-second intervals.

I had been under the impression that non-display cards were not subject to TDR problems. Am I mistaken? Thanks for any help.

Update: Found this in the release notes:

  • (Windows and Linux) Individual GPU program launches are limited to a run
    time of less than 5 seconds on a GPU with a display attached. Exceeding this
    time limit usually causes a launch failure reported through the CUDA driver
    or the CUDA runtime. GPUs without a display attached are not subject to the
    5 second runtime restriction. For this reason it is recommended that CUDA
    be run on a GPU that is NOT attached to a display and does not have the
    Windows desktop extended onto it. In this case, the system must contain at
    least one NVIDIA GPU that serves as the primary graphics adapter.

Your application installer can modify the registry.

I forgot to mention: Microsoft excludes software that modifies the timeout settings from the Microsoft Logo Program, and that is a red flag for many clients.