zoukankan      html  css  js  c++  java
  • [问题解决]关于《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

    cuda by example 第四章Julia例子运行时出现“显示器驱动已停止响应,并且已恢复”

  • 相关阅读:
    SQL学习日志
    程序员之路──如何学习C语言并精通C语言
    using用法
    c#中的接口与类的区别
    用c#来实现一种行列式的计算优化
    python 切换目录
    如何光盘自动运行html?
    nsis 安装脚本示例(转)
    python sys.path.append
    python 面向对象初认识
  • 原文地址:https://www.cnblogs.com/avin/p/6249265.html
Copyright © 2011-2022 走看看