以下问题的出现及解决都基于“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实例“显示器驱动已停止响应,并且已恢复”问题的解决方法的更多相关文章

  1. 《GPU高性能编程CUDA实战》第五章 线程并行

    ▶ 本章介绍了线程并行,并给出四个例子.长向量加法.波纹效果.点积和显示位图. ● 长向量加法(线程块并行 + 线程并行) #include <stdio.h> #include &quo ...

  2. 《GPU高性能编程CUDA实战》第十一章 多GPU系统的CUDA C

    ▶ 本章介绍了多设备胸膛下的 CUDA 编程,以及一些特殊存储类型对计算速度的影响 ● 显存和零拷贝内存的拷贝与计算对比 #include <stdio.h> #include " ...

  3. 《GPU高性能编程CUDA实战》第四章 简单的线程块并行

    ▶ 本章介绍了线程块并行,并给出两个例子:长向量加法和绘制julia集. ● 长向量加法,中规中矩的GPU加法,包含申请内存和显存,赋值,显存传入,计算,显存传出,处理结果,清理内存和显存.用到了 t ...

  4. 《GPU高性能编程CUDA实战》第七章 纹理内存

    ▶ 本章介绍了纹理内存的使用,并给出了热传导的两个个例子.分别使用了一维和二维纹理单元. ● 热传导(使用一维纹理) #include <stdio.h> #include "c ...

  5. 《GPU高性能编程CUDA实战》第六章 常量内存

    ▶ 本章介绍了常量内存的使用,并给光线追踪的一个例子.介绍了结构cudaEvent_t及其在计时方面的使用. ● 章节代码,大意是有SPHERES个球分布在原点附近,其球心坐标在每个坐标轴方向上分量绝 ...

  6. 《GPU高性能编程CUDA实战》第三章 CUDA设备相关

    ▶ 这章介绍了与CUDA设备相关的参数,并给出了了若干用于查询参数的函数. ● 代码(已合并) #include <stdio.h> #include "cuda_runtime ...

  7. 《GPU高性能编程CUDA实战中文》中第四章的julia实验

    在整个过程中出现了各种问题,我先将我调试好的真个项目打包,提供下载. /* * Copyright 1993-2010 NVIDIA Corporation. All rights reserved. ...

  8. 《GPU高性能编程CUDA实战》附录二 散列表

    ▶ 使用CPU和GPU分别实现散列表 ● CPU方法 #include <stdio.h> #include <time.h> #include "cuda_runt ...

  9. 《GPU高性能编程CUDA实战》附录一 高级原子操作

    ▶ 本章介绍了手动实现原子操作.重构了第五章向量点积的过程.核心是通过定义结构Lock及其运算,实现锁定,读写,解锁的过程. ● 章节代码 #include <stdio.h> #incl ...

随机推荐

  1. 转:Java.file

    类 java.io.File 的使用 使用 File 的软件包 java.awt 包含用于创建用户界面和绘制图形图像的所有类. java.io 通过数据流.序列化和文件系统提供系统输入和输出. jav ...

  2. backprop示例

    http://home.agh.edu.pl/~vlsi/AI/backp_t_en/backprop.html

  3. LR12.53—第2课:准备脚本重播

    第2课:准备脚本重播 创建Vuser脚本后,可以通过从VuGen中运行它验证它.有时重播将失败,即使同样的动作在录制过程中取得了成功. 许多应用程序使用,每次使用应用​​程序时更改动态值.例如,某些服 ...

  4. Linux 用户和用户组管理

    Linux 用户和用户组管理 Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统. 用户的账号一方面可以帮助 ...

  5. 简单配置webpack自动刷新浏览器

    文档地址  http://webpack.github.io/docs/usage.html 首先全局安装webpack(我这里使用的是淘宝的cnpm) cnpm install webpack 检查 ...

  6. NK3C:关于svg文件使用

    我们从 http://iconfont.cn/ 上下载的SVG文件由以下构成,系统中使用的时候请做适当的修改: 1.width.Height:设置为100%: 2.defs模块去掉:(如果不去掉,IE ...

  7. 阅读Python官方文档心得

    我会每天都阅读一些python的官方文档,并每天更新心得体会. -------------------------------------------------2016.12.08--------- ...

  8. ue4标签测试与总结(UPROPERTY)

    学习UE4框架中的标签,本篇是总结成员变量标签UPROPERTY. 引擎版本:4.12.5 前期准备: 1.新建项目,C++空模板,新建C++类,继承AActor,名称MyActor. 使用TestA ...

  9. 关于数组Arry的一些基本认识

    认识数组主要从以下几个方面去认识,一:数组具备什么样的特性,二:它能做什么,三:它具备哪些常用的api方法 //数组的原始表示方式 /* 数组的特性:1有长度,2以0开头 */ var arr1 = ...

  10. 使用axi_datamover完成ZYNQ片内PS与PL间的数据传输

    分享下PS与PL之间数据传输比较另类的实现方式,实现目标是: 1.传输时数据不能滞留在一端,无论是1个字节还是1K字节都能立即发送: 2.PL端接口为FIFO接口: PS到PL的数据传输流程: PS到 ...