[問題] CUDA Windows Timeout (TDR)

看板C_and_CPP作者 (Cory)時間9年前 (2014/12/18 04:02), 9年前編輯推噓1(1011)
留言12則, 2人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) CUDA 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) None 問題(Question): 我的CUDA程式在 Linux 工作站可以跑 但是在 Win 7 VS 2013 就掛了 不是直接掛 是跑到一到才會當 程式碼如下: http://pastie.org/9786894#63 (有用到 Unified Memory, CUDA Capability 3.0 以上才能跑) (Compile 參數 sm_30) 一個簡單程式的模擬 Virtual Memory 開 Nsight Debug 發現死在 paging 的 for 迴圈裡面 試過把 PAGE_ENTRIES 改小一點 例如手動設 search range = 0~3 (原本塞滿應該是 0~1023) 程式就會 work 了 (雖然這樣改 replacement 方式是不對的) 餵入的資料(Input): data.bin 預期的正確結果(Expected Output): 正常 run, 不會直接當掉 錯誤結果(Wrong Output): load_binaryFile 之後進入 kernel function 整個畫面就卡住 然後driver顯示錯誤 直接跳出來 程式碼(Code):(請善用置底文網頁, 記得排版) http://pastie.org/9786894#63 補充說明(Supplement): 新手上路 為了跑 CUDA 才剛換一張 GTX 750 跪求高手解答 QQ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.37.129.202 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1418846556.A.46F.html

12/18 17:37, , 1F
原PO該不會是修114的OS吧!這格式好熟悉
12/18 17:37, 1F

12/18 17:39, , 2F
幫你解答這是windows的問題只要cuda kernel執行超過2秒
12/18 17:39, 2F

12/18 17:40, , 3F
windows發現顯示卡沒有回應會重新reset顯示卡
12/18 17:40, 3F

12/18 17:44, , 4F
可以去nsight那邊把參數修掉,但是後遺症是你程式執行時
12/18 17:44, 4F

12/18 17:45, , 5F
整個畫面全部會凍結直到他跑完,感覺就像當機一樣
12/18 17:45, 5F

12/18 17:45, , 6F
所以跑程式的那1分鐘什麼事情都不能做,還是在工作站跑吧
12/18 17:45, 6F

12/18 18:50, , 7F
可以改成別的秒數
12/18 18:50, 7F
沒錯 我正在修OS 被發現了 XD 想說 CUDA 好像很有用 就自己裝來玩一下 非常感謝解答 !! 後來改 Windows TDR參數 就解決了 詳細流程如下: http://stackoverflow.com/questions/17186638/ modifying-registry-to-increase-gpu-timeout-windows-7 想再請問 CUDA 為什麼沒辦法多工 同時跑程式以及系統呢 ? 還是需要什麼高階技巧 ? 不然我跑個 CUDA 轉檔還是遊戲 整個系統也不會因此而卡住呀 ※ 編輯: cory8249 (114.37.129.202), 12/18/2014 21:47:27

12/19 00:22, , 8F
首先主機板要有內顯,BIOS設定內顯輸出螢幕
12/19 00:22, 8F

12/19 00:22, , 9F
然後顯示卡就是一張加速卡,只負責計算的工作
12/19 00:22, 9F

12/19 00:24, , 10F
顯示卡不設定影像輸出,windows就不會看顯示卡還活著嗎
12/19 00:24, 10F
恩恩 有想過這個方法 不過本身問題是還是在於 kernel function 跑太久 對於一般單GPU環境來說 問題還是存在 有比較好的治本之道 ? 例如改 kernel function 架構 拆成幾個比較小的部分 再由 main function 分別去 call ? ※ 編輯: cory8249 (114.37.129.202), 12/19/2014 00:42:49

12/19 01:10, , 11F
因為GPU本來就不是這樣用的,所以跑起來當然慢啊
12/19 01:10, 11F

12/19 01:11, , 12F
把shared memory拿掉,用CPU跑就知道差別了
12/19 01:11, 12F
文章代碼(AID): #1KaU5SHl (C_and_CPP)