I am using CUDA for acoustic signal processing. The application is online with a data input of approx. 18 MB per second. A number of different small kernels are processed as a chain. This chain is repeated 23 times per seconds. The time used for the CUDA kernels (including data transfer) is approx. 30 ms (on a 8800 GTS) using approx. 300 MB of Video RAM. That means that the GPU is working on CUDA kernels approx. 70% of the time. In parallel a number of DirectX threads are used for data result visualisation (approx. 3 ms). Both tasks (CUDA calculation and DirectX visualisation) have to be performed on the same GPU (more than one GPU is not an option due to the nature of the application). The application worked very fine up to driver Version 185.85 (CUDA Toolkit 2.2). Then I switched to the newer driver 190.38. Since then the same application with the same kernels is blocked randomly (usually once in an hour) for precisely 5 seconds. Usually this happens during the execution of one of the final kernels (not necessarily the last). The whole display freezes. After that the application continuous as if nothing had happened. In case that the CUDA calculation is performed on a separate GPU everything works fine (but that’s not an option)
My guess is that CUDA and DirectX or anything else that is using the GPU is blocking each other (but that is not confirmed). Again, this problem arised with the 190.38 and is still present with the newest driver (197.13)
This happens on various computers with various GPUs (from G8800GTS up to G280 and Quadro 3700M). The operating system is Windows XP 32. The toolkit Versions tested are 2.2, 2.3, and 3.0.
Any help or suggestion would be highly appreciated
Thanks in advance!