I encounter a problem with CUDA+Visual Studio Express 2008 on Windows XP : when my C++ managed .NET program starts, it outputs a messagebox error claiming an assert failure on _CrtIsValidHeapPointer.
So, let’s explain :
I have a Visual Studio project that loads cudart.dll lazyly at run-time. It works well. The program can run on a machine with or without CUDA installed, and it tells if it is installed or not.
Then, I have written a minimum kernel.cu.
In the CUDA SDK, I have found a cuda.rules files that I could import in my VS project, so that it knows what to do with my kernel.cu file (calling nvcc and so on)
Thus, my project still compiles and links correctly with kernel.cu being handled by nvcc.
But when I launch my program (in debug mode), the assert failure of _CrtIsValidHeapPointer is raised. The kernel is not even called, there is no reference to it in my C++ code.
I could ignore it, but… I would prefer being sure that my base code is not broken.
Any idea of what is going on ?
I have tried to match the usual configuration found in CUDA sdk (multithreaded CRT DLL (/MDd), libcmt excluded or not, and so on…)