【发布时间】:2014-08-18 08:52:04
【问题描述】:
我是 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() 写出一个错误“未指定的驱动程序错误”,我不知道为什么。我做错了什么?
我有安装了最新驱动程序的 GeForce GT 740m。我已经安装了 CUDA 6.0。 我配置了所有的包含和链接。我将 cudart.lib 添加到 Linker->Input->Additional Dependencies。
我还设置了以下内容:
项目配置->VC++ Directoties->可执行目录 $(CUDA_BIN_PATH)
项目配置->VC++ Directoties->在 $(CUDA_INC_PATH) 中包含目录
项目配置->VC++ 目录->库目录 $(CUDA_LIB_PATH)
项目配置->链接器->常规->附加库目录->$(CUDA_LIB_PATH)
我还设置了 compute_30 和 sm_30。
我做错了什么?
问候,
罗伯特
【问题讨论】:
-
您是否尝试过运行 cuda-memcheck 来查看是否存在错误指针问题?
-
不,我没有。但是不知道怎么运行?请提供任何提示或链接。
-
我尝试使用 memcheck 运行 Cuda 调试,但失败并显示以下消息:使用 API 版本 3010 创建了 CUDA 上下文。调试需要 API 版本 3020。更新附加的进程以使用更新版本的CUDA API。
-
您的机器配置可能不匹配,或者项目配置不匹配。您是否安装了 CUDA 6.0 之前的 CUDA 工具包?你能运行
deviceQueryCUDA 示例代码吗?