cuda - cudaMallocManaged() returns "operation not supported" -
trying out managed memory in cuda 6.0 gives me operation not supported
when calling cudamallocmanaged()
.
#include "cuda_runtime.h" #include <stdio.h> #define check(r) {_check((r), __line__);} void _check(cudaerror_t r, int line) { if (r != cudasuccess) { printf("cuda error on line %d: %s\n", line, cudageterrorstring(r), line); exit(0); } } int main() { int *c; check(cudamallocmanaged(&c, sizeof(int))); *c = 0; return 0; }
geforce gtx 750 ti (maxwell), compiled cuda 6.0 using compute_50,sm_50. windows 7 64-bit. tested drivers 335.23 (whql) , 337.50 (beta). visual studio 2012. tried 32-bit debug , release builds.
c:\rd\projects\cpp\test_cuda6\test_cuda6>"c:\program files\nvidia gpu computing toolkit\cuda\v6.0\bin\nvcc.exe" -gencode=arch=compute_50,code=\"sm_50,compute_50\" --use-local-env --cl-version 2012 -ccbin "c:\program files (x86)\microsoft visual studio 11.0\vc\bin" -i\c\common\inc -i"c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include" -i"c:\program files\nvidia gpu computing toolkit\cuda\v6.0\include" --keep-dir release -maxrregcount=0 --machine 32 --compile -cudart static -dwin32 -dndebug -d_console -d_mbcs -xcompiler "/ehsc /w3 /nologo /o2 /zi /md " -o release\kernel.cu.obj "c:\rd\projects\cpp\test_cuda6\test_cuda6\kernel.cu"
the program runs without error if replace cudamallocmanaged()
cudamalloc()
.
any ideas on how cudamallocmanaged()
working?
tried 32-bit debug , release builds.
use 64 bit debug or release build.
from the documentation:
j.1.4. system requirements
unified memory has 3 basic requirements:
•a gpu sm architecture 3.0 or higher (kepler class or newer)
•a 64-bit host application , operating system, except on android
•linux or windows
64 bit host application means cannot compile 32 bit debug or release build.
Comments
Post a Comment