第一个CUDA程序遇到了问题,请大家帮忙看一下。

lxthau 2011-11-21 04:01:11
大家好,小弟刚开始学CUDA,照着《GPU高性能运算之CUDA》敲了第一个程序——两个向量相加。书上代码不全,我自己补充了一些。编译能通过,但是运行出错。各位大侠看看这个问题该如何解决?

程序:

#include <stdlib.h>
#include <stdio.h>
#include <cutil.h>

__global__ void VecAdd(float* A, float* B, float* C)
{
int i = threadIdx.x;
C[i] = A[i] + B[i];
}

int main()
{
float A[5] = {1,2,3,4,5};
float B[5] = {1,1,1,1,1};
float C[5];
VecAdd<<<1,5>>>(A, B, C);
int i;
for(i=0;i<5;i++){
printf("%f",C[i]);
}
getchar();
}
后台输出:

“CUDAWinApp7.exe”: 已加载“D:\Backup\我的文档\Visual Studio 2008\Projects\CUDAWinApp7\EmuDebug\CUDAWinApp7.exe”,已加载符号。
“CUDAWinApp7.exe”: 已加载“C:\WINDOWS\system32\ntdll.dll”
“CUDAWinApp7.exe”: 已加载“C:\WINDOWS\system32\kernel32.dll”
“CUDAWinApp7.exe”: 已加载“C:\CUDA\bin\cudart.dll”,未使用调试信息生成二进制文件。
“CUDAWinApp7.exe”: 已加载“C:\WINDOWS\system32\nvcuda.dll”,未使用调试信息生成二进制文件。
“CUDAWinApp7.exe”: 已加载“C:\WINDOWS\system32\user32.dll”
“CUDAWinApp7.exe”: 已加载“C:\WINDOWS\system32\gdi32.dll”
“CUDAWinApp7.exe”: 已加载“C:\WINDOWS\system32\opengl32.dll”
“CUDAWinApp7.exe”: 已加载“C:\WINDOWS\system32\msvcrt.dll”
“CUDAWinApp7.exe”: 已加载“C:\WINDOWS\system32\advapi32.dll”
“CUDAWinApp7.exe”: 已加载“C:\WINDOWS\system32\rpcrt4.dll”
“CUDAWinApp7.exe”: 已加载“C:\WINDOWS\system32\secur32.dll”
“CUDAWinApp7.exe”: 已加载“C:\WINDOWS\system32\glu32.dll”
“CUDAWinApp7.exe”: 已加载“C:\WINDOWS\system32\ddraw.dll”
“CUDAWinApp7.exe”: 已加载“C:\WINDOWS\system32\dciman32.dll”
“CUDAWinApp7.exe”: 已加载“C:\WINDOWS\system32\imm32.dll”
“CUDAWinApp7.exe”: 已加载“C:\WINDOWS\system32\lpk.dll”
“CUDAWinApp7.exe”: 已加载“C:\WINDOWS\system32\usp10.dll”
“CUDAWinApp7.exe”: 已加载“C:\WINDOWS\system32\nvapi.dll”
“CUDAWinApp7.exe”: 已加载“C:\WINDOWS\system32\ole32.dll”
“CUDAWinApp7.exe”: 已加载“C:\WINDOWS\system32\oleaut32.dll”
“CUDAWinApp7.exe”: 已加载“C:\WINDOWS\system32\shlwapi.dll”
“CUDAWinApp7.exe”: 已加载“C:\WINDOWS\system32\shell32.dll”
“CUDAWinApp7.exe”: 已加载“C:\WINDOWS\system32\setupapi.dll”
“CUDAWinApp7.exe”: 已加载“C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.6028_x-ww_61e65202\comctl32.dll”
“CUDAWinApp7.exe”: 已加载“C:\WINDOWS\system32\comctl32.dll”
CUDAWinApp7.exe 中的 0x7c812afb 处最可能的异常: Microsoft C++ 异常: 内存位置 0x0012fda8 处的 cudaError_enum。
CUDAWinApp7.exe 中的 0x7c812afb 处最可能的异常: Microsoft C++ 异常: 内存位置 0x0012fd9c 处的 cudaError。
CUDAWinApp7.exe 中的 0x7c812afb 处最可能的异常: Microsoft C++ 异常: 内存位置 0x0012fe40 处的 cudaError。
线程 'Win32 线程' (0xb30) 已退出,返回值为 -1073741510 (0xc000013a)。
程序“[164] CUDAWinApp7.exe: 本机”已退出,返回值为 -1073741510 (0xc000013a)。
...全文
201 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
lxthau 2011-12-02
  • 打赏
  • 举报
回复
多谢,应该像老兄说的这样[Quote=引用 1 楼 alfacuton 的回复:]

你首先应该申请GPU内存,然后才能进行传参和内核函数运算;
还有你要打印C[i],你也没有从GPU内存中拷贝到CPU内存中来,——当然也可以用图像API显示(推荐).
[/Quote]
alpha.5 2011-11-29
  • 打赏
  • 举报
回复
你首先应该申请GPU内存,然后才能进行传参和内核函数运算;
还有你要打印C[i],你也没有从GPU内存中拷贝到CPU内存中来,——当然也可以用图像API显示(推荐).

231

社区成员

发帖
与我相关
我的任务
社区描述
CUDA on Windows XP
社区管理员
  • CUDA on Windows XP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧