简单的CUDA应用程序,cudaMalloc以Error:未指定的驱动程序错误结束

时间:2014-08-18 08:52:04

标签: c++ cuda

我是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。

我做错了什么?

此致

罗伯特

1 个答案:

答案 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

我不明白,因为所有这些库都已经在继承值中。 但它开始起作用了。如果有人知道,为什么需要手动添加这些库,请发布它。