Access violation exception at cufftPlan1d with CUDA 7.0 (cufft64_70.dll)


I’m getting the following exception when calling cufftPlan1d from cufft64_70.dll.

Exception thrown at 0x00007FFAD9E1CDDC (cufft64_70.dll) in CudaTest.exe: 0xC0000005: Access violation reading location 0x0000000000000028.

Sample code that throws the exception attached below:

#include "cuda.h"
#include "cuda_runtime.h"
#include <cufft.h>

#define NX 256
#define BATCH 1

int main()
	cufftHandle plan;
	cufftResult result = cufftPlan1d(&plan, NX, CUFFT_C2R, BATCH); // This line throws the exception

	return 0;

I’m using:
Nvidia Graphics Driver 431.60
GTX 980
Windows 10

This method works fine for the following scenarios:

  • When switched to CUDA SDK 8.0.
  • When using older Nvidia Graphics Driver i.e any driver from the 300 series. I tried it on 381.65 and it worked fine.

I cannot switch to CUDA SDK 8.0 in my application due to some other dependencies on 7.0 and I can also not restrict the user to use and older Nvidia driver.

According to the CUDA 7.0 has a minimum driver compatibility of 346.46 but it says that the “SDK will continue to function even on today’s driver stack”.

But I’ve tried multiple graphics drivers in the 400 number range and exception is raised on all drivers. Only the drivers in the 300 number series work fine with CUDA SDK 7.0.

Please provide a workaround or fix for this problem if there is any.

I’ve tried changing machines with different GPUs and CPUs and the problem persists.
I’ve also tried this on Windows 7 but the issue persists.

Updating the SDK to 8.0 or restricting user to older Nvidia driver is not an option for me.


I suggest filing a bug at, instructions are linked to a sticky post at the top of this sub-forum.

I just did, thanks for the suggestion.

I did post the bug at but there still isn’t a solution available for me that I can use without having to update to CUDA 8.0 or higher.

Anyone has any workaround or fix that doesn’t require upgrading CUDA version?