After a week of frustration I finally have my error…
After the kernel run I check for errors and get this error
error :device emulation mode and device execution mode cannot be mixed
Now is my question how I can eliminate this error. It looks like I’m compiling one part of the code with -deviceemu and the other part without or what?
But when I compile my code I compile all me .cu with nvcc -deviceemu as far as I can see.
Ok, this might be sort of the same problem I am having.
Try to do (under linux) ‘ldd the_executable_or_library’
It lists all the dependencies.
In these dependencies, check that you require, for example, libcufftemu.so.1.1 instead of libcufft.so.1.1.
I still do not know how to compile it with devece_emulation dependencies but hope it helps.
Can anyone else put some light into the matter, please?
…
Further testing led to two possibilities:
The library that is failing is: -lcudart. Since there is no -lcudartemu version (libcudartemu.so) the emulation mode fails.
The nvcc does not like the other dependencies I include, which have only been compiled with gcc.
…
I would appreciate if anyone could report a similar execution error, or some information regarding the compilation in emulation mode.
It’s a long time for me ago that I did something with this. But make sure that all the libraries you are using are are compiled in device emulation. I have to say that I never programmed on Vista 64 nor Visual Studio with CUDA.
But good luck with it and let us know your findings
I also had this behavior. On one project it was working, on the other it didn’t. Finally, I recognized that I was using the compiler flags [font=“Courier New”]-g -G[/font] and [font=“Courier New”]–device-emulation[/font] at the same time (see below):