我是CUDA的新手,请耐心等待。我有一个简单的VS2012项目,其中一个main.cpp文件包含以下源代码:
#include <stdio.h>
/*CUDA*/
#include <cuda_runtime.h>
#include <cuda_runtime_api.h>
#include <cuda.h>
int main(int argc, char **argv){
/*Device Variables*/
uchar3 *Image_dev;
cudaMalloc((void**)&Image_dev,64*48*sizeof(uchar3));
printf("Error:\t%s\n", cudaGetErrorString(cudaGetLastError()));
return(0);
}
它运行没有任何致命错误,但cudaGetLastError()写出错误&#34;未指定的驱动程序错误&#34;我不知道为什么。我做错了什么?
我安装了最新的驱动程序GeForce GT 740m。我安装了CUDA 6.0。 我配置了所有包含和链接。我将 cudart.lib 添加到链接器 - &gt;输入 - >附加依赖项。
我还设置了以下内容:
项目配置 - &gt; VC ++ Directoties-&gt;可执行目录$(CUDA_BIN_PATH)
项目配置 - &gt; VC ++ Directoties-&gt;包含目录$(CUDA_INC_PATH)
项目配置 - &gt; VC ++ Directoties-&gt;库目录$(CUDA_LIB_PATH)
项目配置 - &gt;链接器 - &gt;常规 - &gt;附加库目录 - &gt; $(CUDA_LIB_PATH)
我还设置了compute_30和sm_30。
我做错了什么?
此致
罗伯特
答案 0 :(得分:2)
好吧,我已经解决了我的问题而且我并不真正理解解决方案,也许是因为像罗伯特克罗维拉所说的一些不匹配的配置。我也安装了CUDA 5.5和CUDA 6.0,但我已经设置了6.0工具包。所以我不知道究竟会出现什么问题。
但我的解决方案是: 我只是创建了一个全新的CUDA项目,一切正常,所以我通过配置,我设置了我的项目,就像那个CUDA项目,当我添加到Linker-&gt;输入 - &gt;附加依赖项时,它开始工作图书馆
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib
我不明白,因为所有这些库都已经在继承值中。 但它开始起作用了。如果有人知道,为什么需要手动添加这些库,请发布它。