I have an nvidia cuvid based decoder to decode H264 streams, I had a kernell witch was working properly to post-process each frame, it is something like this:
If I copy the frame with “result = cuMemcpyDtoH(nv12_frame, devPtr, nv12_size);” it is properly copied and the result is 0 as there si not any CUDA ERROR.
The problem comes when calling cudaLaunchMyKernel function, ir I only try to do the same cuMemcpyDtoH the result is now CUDA_ERROR_INVALID_CONTEXT = 201.
It didn´t happen to me when I had the SDK 3.1 installed.
When I create the context I obtain 3010 version:
unsigned int version;
err = cuCtxGetApiVersion(Session.s_cuContext, &version);
printf("cuCtxGetApiVersion: %d\n", version);
I have read something about diferent calls for diferent versions but I really don´t undestand what is happening here. ¿Can any one help me?
I am going to try to be more specific in my question, why is my context being created as 3010 version with cuCtxCreate() ??
How can I create a 3020 context? I have installed CUDA Toolkit 3.2, and SDK 3.2, also Developer Drivers for WinVista and Win7 (263.06).