RuntimeError: cuDNN error: CUDNN_STATUS_EXECUTION_FAILED解決辦法
配置: Python 3.7.6, CUDA 10.0,Pytorch 1.3.1, cudNN 7.6
執行時出現如題錯誤
解決辦法: 在程式碼前面新增torch.backends.cudnn.enabled = False
作用: 網傳是禁用cuDNN作用,官網沒有查到相應API
說明: 網上查到的靠譜的解決辦法,意思大都是說各個版本匹配的問題,個人覺得有一定道理,可能是這麼回事,以上辦法,也只是針對個人的環境下,可以解決
ps:
1、什麼是CUDA
CUDA(ComputeUnified Device Architecture),是顯示卡廠商NVIDIA推出的運算平臺。 CUDA是一種由NVIDIA推出的通用平行計算架構,該架構使GPU能夠解決複雜的計算問題。
2、什麼是CUDNN
NVIDIA cuDNN是用於深度神經網路的GPU加速庫。它強調效能、易用性和低記憶體開銷。NVIDIA cuDNN可以整合到更高階別的機器學習框架中,如谷歌的Tensorflow、加州大學伯克利分校的流行caffe軟體。簡單的插入式設計可以讓開發人員專注於設計和實現神經網路模型,而不是簡單調整效能,同時還可以在GPU上實現高效能現代平行計算。
3、CUDA與CUDNN的關係
CUDA看作是一個工作臺,上面配有很多工具,如錘子、螺絲刀等。cuDNN是基於CUDA的深度學習GPU加速庫,有了它才能在GPU上完成深度學習的計算。它就相當於工作的工具,比如它就是個扳手。但是CUDA這個工作臺買來的時候,並沒有送扳手。想要在CUDA上執行深度神經網路,就要安裝cuDNN,就像你想要擰個螺帽就要把扳手買回來。這樣才能使GPU進行深度神經網路的工作,工作速度相較CPU快很多。
作者:Sunglam
連結:https://www.jianshu.com/p/622f47f94784
來源:簡書
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。
綜上,這個禁用cuDNN到底對速度有什麼影響還需要測試
還有一種方法可以試試:
pytorch torch.backends.cudnn設定作用
cuDNN使用非確定性演算法,並且可以使用torch.backends.cudnn.enabled = False來進行禁用
如果設定為torch.backends.cudnn.enabled =True,說明設定為使用使用非確定性演算法
然後再設定:
torch.backends.cudnn.benchmark = true
那麼cuDNN使用的非確定性演算法就會自動尋找最適合當前配置的高效演算法,來達到優化執行效率的問題
一般來講,應該遵循以下準則:
如果網路的輸入資料維度或型別上變化不大,設定 torch.backends.cudnn.benchmark = true 可以增加執行效率;
如果網路的輸入資料在每次 iteration 都變化的話,會導致 cnDNN 每次都會去尋找一遍最優配置,這樣反而會降低執行效率。
所以我們經常看見在程式碼開始出兩者同時設定:
torch.backends.cudnn.enabled = True
torch.backends.cudnn.benchmark = True
來源於:https://www.cnblogs.com/wanghui-garcia/p/11514502.html
相關文章
- RuntimeError: Error(s) in loading state_dict for SSD: Missing key(s) in解決辦法Error
- Vue 下 ESLint 的 error 解決辦法VueEsLintError
- ERROR 1290 (HY000) 解決辦法Error
- 解決報錯 cuDNN error: CUDNN_STATUS_NOT_SUPPORTED. This error may appear if you passed in a non-contiguous input.DNNErrorAPP
- mysqldump error1066 錯誤的解決辦法MySqlError
- Cargo invocation has failed: Error: exit code: 101.解決辦法CargoAIError
- ISSAC GYM解決RuntimeError: nvrtc: error: invalid value for --gpu-architecture (-arch)的問題ErrorVRGPU
- pecl PHP Parse error: syntax error, unexpected 'new' (T_NEW) 以及 XML缺失解決辦法PHPErrorXML
- 帝國CMSr的Fatal error:Allowed memory size of的解決辦法Error
- Navicat tnt版本提示“failed to save password error code”的解決辦法AIError
- 【Error】AttributeError: module ‘scipy.misc‘ has no attribute ‘logsumexp‘ 的解決辦法Error
- 在Linux Mint中安裝Clion遇到CMake Error的解決辦法LinuxError
- mongodb錯誤解決辦法-bash: ./mongod: cannot execute binary file: Exec format errorMongoDBORMError
- Namespoace Terminating 解決辦法
- github慢解決辦法Github
- Sublime Text 2報 Decode error - output not utf-8 錯誤的解決辦法Error
- 檔案無法粉碎解決辦法
- zblog升級報錯“Invalid argument supplied for foreach”或者“unserialize(): Error at offset”的解決辦法Error
- composer 安裝擴充套件出現 "PHP Fatal error: Allowed memory ..."的解決辦法套件PHPError
- 公寓噪音的解決辦法
- height:100%失效解決辦法
- 【踩坑】RuntimeError: CUDA error: device-side assert triggeredErrordevIDE
- 記vscode無法啟動解決辦法VSCode
- ZBlog升級1.7報錯“Invalid argument supplied for foreach”或者“unserialize(): Error at offset”的解決辦法Error
- Qt5交叉編譯Project Error: Unknown module(s) in QT: script-private解決辦法QT編譯ProjectError
- Maven [ERROR] 不再支援源選項 5,請使用 7 或更高版本的解決辦法MavenError
- 使用fragment載入自定義fragment出現error inflating class fragment錯誤解決辦法FragmentError
- Check failed: status == CUDNN_STATUS_SUCCESS (4 vs. 0) CUDNN_STATUS_INTERNAL_ERRORAIDNNError
- SpringBoot 迴圈引用解決辦法Spring Boot
- 跨域問題解決辦法跨域
- SqlServer鎖表解鎖解決辦法SQLServer
- github訪問受限解決辦法Github
- VScode 更新失敗解決辦法VSCode
- npm install 失敗解決辦法NPM
- ModuleNotFoundError: No module named ‘DBUtils‘解決辦法Error
- -bash: XXX: command not found解決辦法
- cnpm link 報錯解決辦法NPM
- mysql事件關閉解決辦法MySql事件