我試圖編譯具有內核 內的malloc函數代碼和我得到這個錯誤:malloc的內部核心
Error 5 error : calling a host function("malloc") from a __device__/__global__ function("bitapS") is not allowed C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK 4.0\C\src\str_bit\main.cu 36 1 str_bit
我的命令行是:
Error 6 error MSB3721: The command ""C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\bin\nvcc.exe" -gencode=arch=compute_10,code=\"sm_10,compute_10\" -gencode=arch=compute_20,code=\"sm_20,compute_20\" --use-local-env --cl-version 2010 -ccbin "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\x86_amd64" -I"../../common/inc" -I"../../../shared/inc" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include" -G0 --keep-dir "x64\Debug" -maxrregcount=0 --machine 64 --compile -D_NEXUS_DEBUG -g -Xcompiler "/EHsc /nologo /Od /Zi /MTd " -o "x64/Debug/main.cu.obj" "C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK 4.0\C\src\str_bit\main.cu"" exited with code 2. C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\BuildCustomizations\CUDA 4.0.targets 357 10 str_bit
有什麼建議?我認爲,與sm_20啓用您可以分配...我的卡是460 GTX 謝謝!
我看到-gencode = ARCH = compute_10,代碼中的潛在問題= \ 「sm_10,compute_10 \」 的聲明,你確定它不會優先考慮? – Erbureth
有了'''-gencode''','''nvcc'''編譯代碼*所有*所提供的架構,並創建了一個「胖二進制」。所以當它爲'''sm_10'''編譯包含'''malloc''的代碼時發生錯誤。 –