为什么我的cuda程序一运行就黑屏

daxiaoyuyu 2013-06-13 10:11:59
为什么我的cuda程序一运行就黑屏?

我的cuda程序有递归算法,而且只让它在第一个线程中执行,我总代码500多行。编译没问题。但是执行就会黑屏,过一会重新加载驱动,返回桌面。我想找出问题出在哪里,然后就用Nsight的“Start Cuda Debugging”,程序执行到最后也没有问题。请问是什么原因呢?会不会是我创建的变量太多了呢?但为什么Nsight的“Start Cuda Debugging”执行却不会报错呢?
部分程序如下:

__global__ static void ReceiveLeafE(Point3D * pcuCamPoint, int * pcuNumCamPoint, Point3D * pcuLeafPoint, int * pcuNumLeafPoint, float * pcuELeafCam)
{
if (threadIdx.x == 0)
{
//================parameters==================//
float g_ellipseA = pow( 18.0f, 2.0f );
float g_ellipseB = pow( 52.0f, 2.0f );
float g_a = 0.014155f; // z = a*y^2
float g_n = 1.33f;
float g_sigma = 0.3f;
float g_kL = 0.3f;
.....下面还有很多代码。
}
}
...全文
518 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
daxiaoyuyu 2013-06-20
  • 打赏
  • 举报
回复
找到另个方法,如果有Nsight的话,也可以在Nsight里设置显卡的延时。
oss3s 2013-06-17
  • 打赏
  • 举报
回复
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers] "TdrLevel"=dword:00000000
oss3s 2013-06-17
  • 打赏
  • 举报
回复
估计 是因为 你的计算量对于显卡来说太大,Windows有个保护机制,超过一定时间,就会强制让显卡退出当前任务,随意就会黑屏一下,然后提示从异常中恢复。要解决很好办,将以下内容保存为.reg,然后注册到系统注册表中,重新启动计算机就可以了,但也会有个问题,就是如果你的程序存在死循环,那么计算机就真的只能reset了。

580

社区成员

发帖
与我相关
我的任务
社区描述
CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。
社区管理员
  • CUDA编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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