【发布时间】:2013-10-05 20:20:41
【问题描述】:
我一直在尝试使用 CUDA 驱动程序 API 来加载一个 .ptx 文件并使用以下代码从中加载一个函数:
CUdevice device;
cuDeviceGet(&device,0);
CUcontext ctx;
cuCtxCreate(&ctx,0,device);
CUmodule mod;
cuModuleLoad(&mod,"kernel.ptx");
CUfunction func;
cuModuleGetFunction(&func,mod,"kernel");
CUdeviceptr ints;
cuMemAlloc(&ints,(sizeof(int)*30));
但是在编译时我得到了这些错误:
1>kernel.cu.obj : error LNK2019: unresolved external symbol _cuDeviceGet@8 referenced in function _main
1>kernel.cu.obj : error LNK2019: unresolved external symbol _cuCtxCreate_v2@12 referenced in function _main
1>kernel.cu.obj : error LNK2019: unresolved external symbol _cuModuleLoad@8 referenced in function _main
1>kernel.cu.obj : error LNK2019: unresolved external symbol _cuModuleGetFunction@12 referenced in function _main
1>kernel.cu.obj : error LNK2019: unresolved external symbol _cuMemAlloc_v2@8 referenced in function _main
1>kernel.cu.obj : error LNK2019: unresolved external symbol _cuMemcpyHtoD_v2@12 referenced in function _main
1>kernel.cu.obj : error LNK2019: unresolved external symbol _cuMemcpyDtoH_v2@12 referenced in function _main
1>kernel.cu.obj : error LNK2019: unresolved external symbol _cuLaunchKernel@44 referenced in function _main
我在 VS2012 中创建了一个新的 CUDA 5.5 项目并将其直接输入到生成的 .cu 文件中,但是在编译时我得到了这些错误。如果我进行不使用驱动程序 api 的测试,我不会收到任何错误!
【问题讨论】:
-
请不要使用 pastebin。编辑问题本身中的相关信息。
-
查看此链接:Windows CUDA 5 and Visual Studio 2012。关键是要正确设置 Visual Studio。
-
cuda 安装程序(至少是最新的)在安装时会自动执行此操作。该链接上给出的代码将毫无问题地编译!我正在考虑链接器的问题,但我似乎找不到任何东西。
-
你链接到 cuda.lib 了吗?
-
@LucasS:也许您可以将其添加为问题的答案(允许回答您自己的问题)。这样,问题就会从未回答的队列中消失,并为下一个遇到此问题的人留下一个干净的解决方案。
标签: c++ visual-studio-2012 cuda