事情起因是需要在服务器上跑代码,指导老师提供了学校的服务器,搭载两块RTX3090显卡,一开始按照需要跑的项目所需的配置文件配置环境:

发现在跑代码跑到模型训练部分的时候发生报错:
failed to run cuBLAS routine: CUBLAS_STATUS_EXECUTION_FAILED
经过查阅资料发现,我们遇到此报错的原因是tensorflow1.x版本无法使用RTX30系列显卡进行GPU训练,如果对训练速度没有要求,按照以下代码禁用GPU可通过CPU训练解决报错:
import os
os.environ["CUDA_VISIBLE_DEVICES"] = "-1" #设置为-1可以禁用GPU
但是服务器就在那里,不太可能因为一个项目换掉学校服务器的cuda和显卡版本,我参与的项目需要代码跑结果,使用CPU训练即使是一个epoch也需要十个小时,于是查阅资料,有一种解决方案。
NVIDIA一直在维护一个1.15版本的nvidia-tensorflow可以使用在30系显卡上,虽然与原项目要求的tensorflow-gpu1.13不是一个版本,但这是唯一可能行得通的办法,于是通过一下linux命令创建一个RTX3090服务器上可以使用GPU训练的tensorflow1.x版本环境:
sudo su
conda create -n TF1env python=3.8
conda activate TF1env
pip install nvidia-pyindex
pip install nvidia-tensorflow[horovod]==1.15.4
conda list
有几个注意事项,很多教程都没有讲清楚导致我还是走了不少弯路,重新配了很多遍环境:
①首先是在搜集资料的时候,有人使用python3.6版本正常使用了nvidia-tensorflow,但是官方要求的版本是python3.8,所以我选择了3.8版本。可以确定的是python3.7是不支持nvidia-tensorflow的。


2530

被折叠的 条评论
为什么被折叠?



