runtime API and driver API mutually exclusive? according to 0.8.1 SDK not really

According to the docs the driver and runtime APIs are mutually exclusive and only one of the two should be used. On the other hand the 0.8.1 SDK includes in which calls from both APIs are happily mixed, for instance cuMemAllocSystem (driver) and cudaMalloc (runtime). So what is really the deal here? Why should we avoid using a mixture of both?


cuMemAllocSystem() and cuMemFreeSystem() are the only CUDA driver calls that can be used with the runtime API (as specified at the bottom of Section
This is because they don’t deal with compute device matters per se, so there can’t be any bad interference with the runtime.

Great, thanks!


Could you add a forward method to the runtime API for them? Would make it more consistent.


There will be calls to allocate and free pinned memory in the runtime API.

I am not sure if they will be included in the next release, but they are on the hit list!!!

Is the mutual exclusion still true (in 1.1)? If the runtime API is built on top of the driver API how can they be mutually exclusive? It should be possible to create an array in one and access it from the other (vice versa), no? How does one do this?