[问题解决]《GPU高性能编程CUDA实战》中第4章Julia实例“显示器驱动已停止响应,并且已恢复”问题的解决方法
以下问题的出现及解决都基于“WIN7+CUDA7.5”。
问题描述:当我编译运行《GPU高性能编程CUDA实战》中第4章所给Julia实例代码时,出现了显示器闪动的现象,现象很快消失,并在窗口右下角弹出“显示器驱动已停止响应,并且已恢复”的提示,而最终并未得到Julia应有的计算结果,在命令行窗口中显示了相应错误信息。
问题解决:开始 > NVIDIA Corporation > Nsight Visual Studio Edition 4.7 > Nsight Monitor > 屏幕右下角右键点击Nsight Monitor图标 > Options... > General
将WDDM TDR Delay修改为一个比较大的数值,比如30(单位是秒),一般就可以了。
如果要关闭TDR功能,则将WDDM TDR enabled选为False。
最后点击“OK”,并重启计算机(必须记得这点),问题即可解决。
后续分析:
- 设置WDDM TDR Delay可以修改一个kernel的最长执行时间,而WDDM TDR enabled改成false则可以设置最长时间为无限制。
- TDR是微软WINDOWS vista、7、8上的WDDM驱动中的一个机制,可以在GPU没有响应的时候重置显卡驱动。在Nsight Monitor中设定的时间是TDR触发前的等待时间,如果关闭,当程序在GPU上死循环的时候,将无法自动重置驱动退出。如果你的kernel执行时间较短,不触发TDR,那么TDR设为True和False对你的程序并无影响。如果您的kernel执行时间较长,触发了TDR,那么显卡驱动将被重置,你无法得到所需要的执行结果。而设置为False将不会重置显卡驱动,你的kernel可以跑完。如果你的kernel有死循环,那么TDR设为True的时候,将会在超时的时候,重置显卡驱动,这样你无需自己强行关机重启;而如果TDR设为False的话,你就必须自己reset重启计算机以中止程序了。
References
http://bbs.gpuworld.cn/thread-9470-1-1.html
[问题解决]《GPU高性能编程CUDA实战》中第4章Julia实例“显示器驱动已停止响应,并且已恢复”问题的解决方法的更多相关文章
- 《GPU高性能编程CUDA实战》第五章 线程并行
▶ 本章介绍了线程并行,并给出四个例子.长向量加法.波纹效果.点积和显示位图. ● 长向量加法(线程块并行 + 线程并行) #include <stdio.h> #include &quo ...
- 《GPU高性能编程CUDA实战》第十一章 多GPU系统的CUDA C
▶ 本章介绍了多设备胸膛下的 CUDA 编程,以及一些特殊存储类型对计算速度的影响 ● 显存和零拷贝内存的拷贝与计算对比 #include <stdio.h> #include " ...
- 《GPU高性能编程CUDA实战》第四章 简单的线程块并行
▶ 本章介绍了线程块并行,并给出两个例子:长向量加法和绘制julia集. ● 长向量加法,中规中矩的GPU加法,包含申请内存和显存,赋值,显存传入,计算,显存传出,处理结果,清理内存和显存.用到了 t ...
- 《GPU高性能编程CUDA实战》第七章 纹理内存
▶ 本章介绍了纹理内存的使用,并给出了热传导的两个个例子.分别使用了一维和二维纹理单元. ● 热传导(使用一维纹理) #include <stdio.h> #include "c ...
- 《GPU高性能编程CUDA实战》第六章 常量内存
▶ 本章介绍了常量内存的使用,并给光线追踪的一个例子.介绍了结构cudaEvent_t及其在计时方面的使用. ● 章节代码,大意是有SPHERES个球分布在原点附近,其球心坐标在每个坐标轴方向上分量绝 ...
- 《GPU高性能编程CUDA实战》第三章 CUDA设备相关
▶ 这章介绍了与CUDA设备相关的参数,并给出了了若干用于查询参数的函数. ● 代码(已合并) #include <stdio.h> #include "cuda_runtime ...
- 《GPU高性能编程CUDA实战中文》中第四章的julia实验
在整个过程中出现了各种问题,我先将我调试好的真个项目打包,提供下载. /* * Copyright 1993-2010 NVIDIA Corporation. All rights reserved. ...
- 《GPU高性能编程CUDA实战》附录二 散列表
▶ 使用CPU和GPU分别实现散列表 ● CPU方法 #include <stdio.h> #include <time.h> #include "cuda_runt ...
- 《GPU高性能编程CUDA实战》附录一 高级原子操作
▶ 本章介绍了手动实现原子操作.重构了第五章向量点积的过程.核心是通过定义结构Lock及其运算,实现锁定,读写,解锁的过程. ● 章节代码 #include <stdio.h> #incl ...
随机推荐
- flash的读写与擦除
对于flash的认识,比较肤浅,在网上找了些资料,感谢 http://blog.csdn.net/lin364812726/article/details/18815395 的博主, 将其博文转载过 ...
- HDP 2.3 Notes
Hortonworks Data Platform 2.3.4.0-3485 [bug] /usr/hdp/2.3.4.0-3485/zookeeper/bin/zkEnv.sh 26 if [ -z ...
- 关于Windows 7启动后网络一直转的问题的一个解决方法
前两天给自己的X220i换了个SSD,装了个windows 7 的系统,然后自然搞了一些杀毒软件之类的,为了开发需要还装了Oracle数据库,可是,不知道从什么时候开始,系统启动后右下角那个网络图标显 ...
- 用iptables 实现本地端口转发
设定本机2121端口转发到21端口 iptables -t nat -A PREROUTING -p tcp -i eth0 -d -j DNAT --to iptables -t nat -I PO ...
- LR12.53—第2课:准备脚本重播
第2课:准备脚本重播 创建Vuser脚本后,可以通过从VuGen中运行它验证它.有时重播将失败,即使同样的动作在录制过程中取得了成功. 许多应用程序使用,每次使用应用程序时更改动态值.例如,某些服 ...
- 前端学习实践笔记--JavaScript深入【2】
趁热继续再来学习一波,接下来主要介绍函数,object,数组,面向对象,new实例化. 在介绍“对象”之前,首先得梳妆打扮一番吧,那这梳妆打扮主要有两条路线,一条是淑女范(利用函数对象化),一条是邻家 ...
- 永久修改 CMD 的 PROMPT 显示结果/给cmd命令显示加上运行时间
1.环境 windows10 系统 2.打开 cmd ,快捷键 Ctrl + x 然后a 3.输入 REG ADD "HKLM\SYSTEM\CurrentControlSet\Contro ...
- C++ 随机数
#include <iostream> #include <stdlib.h> #include <time.h> #define random(a,b) (ran ...
- C#学习网站记录
C# 编程指南--Microfsoft官方C#编程指南 https://msdn.microsoft.com/zh-cn/library/67ef8sbd(v=vs.100).aspx
- ATL中窗口句柄与窗口过程的关联方法
ATL中采用了一种动态生成机器指令的方式进行窗口句柄与窗口对象进行关联,以是详细分析: CWindowImpl会在第一次调用Create时注册窗口类,该窗口类是的信息是在CWindowImpl的子类中 ...