“顯示器驅動已停止響應,並且已恢復”問題的解決方法

以下問題的出現及解決都基於“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重啓計算機以中止程序了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章