Getting CUDA to work on Optimus platform D3D10 Interoperability is not working

Hi,

I’ve been trying to get the Direct3D Interoperability working on CUDA, however all Direct3D Interoperability functions are returning cudaErrorUnknown.
I’m using an ASUS N61JV notebook with Optimus (Intel GMA & Geforce GT 325M) and I’m using the latest drivers from the Optimus homepage (the original preinstalled drivers show the exact same results).

What I did:
I read the CUDA Optimus guide and first created a driver profile for the application.
Then I create the Direct3D Device and call cudaD3D10SetDirect3DDevice which succeeds according to the return value.
Then I try to call cudaD3D10RegisterResource but it returns cudaErrorUnknown.

I also tried the Driver API but I get the same result. Calling cuD3D10CtxCreate results in an unknown error.

I am sure that DirectX is using the Geforce and not the Intel GPU because of the rendering speed and a call to cudaGetDeviceProperties returns the correct values for the GT325 too.

The CUDA Optimus guide says to refer to the simpleD3D10 sample from the CUDA SDK … which doesn’t work.
It calls cudaD3D10GetDevice which fails with cudaErrorUnknown and therefore it can’t create the device.

I read in the Optimus guide that this is a requirement for getting it to work:
Application is not directly linked against cuda.lib or cudart.lib or LoadLibrary to dynamically load the nvcuda.dll or cudart*.dll and uses GetProcAddress to retrieve function addresses from nvcuda.dll or cudart*.dll.

I have to admit: I don’t understand that. I am not supposed to link against the libs AND I am not supposed to use LoadLibrary/GetProcAddress? So what am I supposed to use? I tried both and both show the same error.

I’m really stuck here. Maybe someone can tell me what I am doing wrong.

odi

EDIT: seems like it is not only the Direct3D 10 Interoperability. cudaMalloc also fails with cudaErrorUnknown when running on the device. In emulation mode I get cudaSuccess and it seems to work. no difference between x86 and x64 versions of the cuda toolking and sdk. both show the same behaviour.

Can anyone please help me?

I have a notebbok asus N61Jv with Nvidia GT 325M and I cannot enable CUDA.
The specification for this card says that IT OPERATES Cuda.

After intsallation of Optimus driver nowhere can I find CUDA to enable or disable. GPU_Z indicates that there is no CUDA only PhysX. What’s wrong?

Does it mean thta this card is without CUDA or the present optimus driver (I installed only this one) cannot enable it.

I will greatly appreciate any comments.

Best Regards

Does anyone know how to solve this problem? Or maybe my notebook is faulty and should be sent back