It is not a requirement to have shared|static consistent across your CUDA libraries (e.g curand, nppc ) and your CUDA runtime library. It is entirely allowable to use a static nppc and a shared runtime.