以下问题的出现及解决都基于“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. 如何成功运行一个最简单的servlet

    好吧,又是一个简单到不能再简单的问题~~ 由于各种原因,这次就不上图了,直接步骤和代码了. 1.前期准备 jdk.tomcat.EditPlus(eclipse)安装成功并且设置好环境变量. 2.由于 ...

  2. ASP.NET 生命周期 简介

    当我们在浏览器地址栏中输入网址,回车查看页面时,这时会向服务器端(IIS)发送一个request请求,服务器就会判断发送过来的请求页面,  完全识别 HTTP 页面处理程序类后,ASP.NET 运行时 ...

  3. Python用法摘要 BY 四喜三顺

    函数的定义:def function_name(parameters):    block    return expression 自带函数:abs(-9)    #取绝对值round(3.4)   ...

  4. SVN show log failed

    Q: SVN 不能显示日志 能正常update, commit,但是show log的时候报错 A:可能原因是服务器权限配置问题 修改配置文件svnserve.conf 和 authz, 修改前请先备 ...

  5. 【SSM 4】Mybatis逆向生成工具

    在上一篇博客中说到,Mybatis是灵活的SQL语句应用,不想Hibernate一样有其封装好的方法,那么,当我们用Mybatis的时候(Hibernate),我们都需要编写其实体类,和配置文件.本篇 ...

  6. OpenGL ES 中的模板测试

    模板测试的主要功能是丢弃一部分片元,相对于深度检测来说,模板测试提出的片元数量相对较少.模板测试发生在剪裁测试之后,深度测试之前. 使用模板测试时很重要的代码提示: 1.glClear( GL_STE ...

  7. Java是目前最广泛的_______编程语言

    计算机网络 注意:在配置环境变量时,classpath是为找文件服务的

  8. Android 6.0权限适配

    targetSdkVersion 23以上,必须适配新的权限模式 安卓6.0及之后,权限分为三类  1.不涉及隐私的正常权限,如innernet2.危险权限 3.特殊权限 system_alert_w ...

  9. VS中基于对话框的MFC利用换肤改变边框颜色及格式

    第一版本: http://ishare.iask.sina.com.cn/f/13836420.html?from=like 2. http://www.cnblogs.com/phinecos/ar ...

  10. 常用到的git,mvn,postgres,vim命令总结

    mvn: 打包: mvn package 如果想在打包的时候跳过测试: mvn package -Dmaven.test.skip=true 使用的junit测试框架, 测试: mvn test 如果 ...