cuRand and Driver API

Hello. I was using the CUDA Driver API and I’ve written a small application with it. I wanted to add cuRand to create a block of Gaussian noise in a device buffer for use in the other kernels. It executes without error, but I’m getting a CUDA_ERROR_UNKNOWN error when calling cuMemFree. The buffers are created with the driver API, but no other device kernels are run outside of the cuRand calls.

I found a line in the CURAND documentation that says “The CUDA driver API is not supported by CURAND.” It also says that user code needs to use the runtime API. However, I’m not sure this applies to my usage, since I’m only setting a buffer with noise for a separate driver API kernel. This may just be referring to the in-kernel use of the library. Is there anyone know if there is a way to get this to work correct, or if I need to rewrite my code to work with the Runtime API completely if I want to use cuRand. Thanks!

Turns out I was just casting the Cudeviceptr incorrectly. cuRand works without issue on device API buffers.