------------------------------------------------更新分界线------------------------------------------------------------------

2022.4.17最新更新了一个pytorch无法调用gpu的解决方法 pytorch无法调用gpu的一些解决方法_Dcityy的博客-CSDN博客

---------------------------------------------------------------------------------------------------------------------------------

首先说一下我的环境ubuntu16.04,anaconda3,用的导师的服务器,xshell连接,(几乎)没有多少权限(apt install 都是刚拿的权限没多久)

刚开始啥也不懂,上来建了个新环境,用conda安装好pytorch等库,想跑个简单的卷积神经网络代码,结果可想而知用的cpu跑的。然后找了找了找资料去了pytorch官网PyTorch,用正规的方式(nvidia-smi命令)查看了cuda的版本,我当时的版本是10.1,后面会说这些版本之间的关系,然后自以为聪明的在历史版本中找了10.1版本的命令(conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=10.1 -c pytorch)注意这是个巨坑,除了cudatoolkit其他的一律不要加版本号!!!除了cudatoolkit其他的一律不要加版本号!!!除了cudatoolkit其他的一律不要加版本号!!!然后import torch都给我报错什么无效的标头ELF,然后折腾了很久我直接用

conda install pytorch torchvision torchaudio cudatoolkit=10.1 -c pytorch

就没报错了,但是使用torch.cuda.is_available()为False。注意你cuda装的哪个版本就把cudatoolkit后的版本号改了就行。

然后也不多说废话了,我劝看到这里的兄弟也别管你之前进行到哪了,建议直接从头开始。我也是这样,因为服务器很多人在用,到底cuda装好了没,驱动装好了没都是未知数。从头来是最顺利的。正文开始

        首先说明一下nvcc(nvcc -V命令需要安装)和nvidia-smi看的cuda版本有什么不同,如图

可能很多人看到的nvidia-smi版本和nvcc -V的版本都是不一致的,这是正常的。nvidia-smi显示的cuda version版本号是你安装的nvidia驱动支持的最高cuda版本,而nvcc显示的则是你真实安装的cuda版本,通俗点说就是你真实安装的cuda版本不要超过nvidia驱动支持的最高cuda版本就行,当然太低可能也不行,建议最多差一个版本。

搞清了这个关系,接下来就是从头来。

1.安装NVIDIA驱动

还是那句话,别管nvidia驱动已经装好没(能用nvidia-smi就表示nvidia驱动装了,好没好这就不知道了),直接重新安装驱动,也别怕权限不够,怕卸载了装不上,我当时也有点心理压力,怕乱来把这个搞没了,没法向导师交差。但是不破不立,亲身实践只需要一个apt install权限就足够了。
先卸载nvidia驱动,命令如下

sudo apt-get purge nvidia-cuda*
sudo apt-get purge nvidia-*

禁用nouveau,sudo vim /etc/modprobe.d/blacklist.conf后在文件末尾加入:

blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off

进行了上面这些步骤之后一定要使用sudo reboot重启服务器,不然后面安装驱动会报错An NVIDIA kernel module ‘nvidia-uvm’ appears to already be load。

到nvidia驱动官网下载驱动NVIDIA 驱动程序下载,如图

产品系列中显卡后面有notebook的表示笔记本电脑使用的,没有的就表示台式机。然后点搜索之后下载就行。这里我采用的安装策略是在window上下载之后,用xftp上传到服务器,不过现在xshell xftp的官网好像进不去,下载不到免费版的了,如果有需要xftp的话就发消息给我邮箱1320560048@qq.com。下载并且上传之后好如图

我们使用

sudo chmod a+x NVIDIA-Linux-x86_64-470.94.run

将文件变为可执行,然后使用

sudo ./NVIDIA-Linux-x86_64-470.94.run

进行驱动安装

然后极大可能会遇到You appear to be running an X server; please exit X before...这种错误,没关系,使用

sudo /etc/init.d/gdm stop
sudo /etc/init.d/gdm status

或者

sudo /etc/init.d/lightdm stop
sudo /etc/init.d/lightdm status

第一个不行就是第二个,关闭 X server

然后在使用安装命令,如果出现让你选择的选项,说明你快成功了,如下

The distribution-provided pre-install script failed! Are you sure you want to continue? 选择 yes 继续。

Would you like to register the kernel module souces with DKMS? This will allow DKMS to automatically build a new module, if you install a different kernel later?  选择 No 继续。

问题没记住,选项是:install without signing

问题大概是:Nvidia's 32-bit compatibility libraries? 选择 No 继续。

Would you like to run the nvidia-xconfigutility to automatically update your x configuration so that the NVIDIA x driver will be used when you restart x? Any pre-existing x confile will be backed up.  选择 Yes  继续

如果遇到失败中断了,继续尝试即可,如果最后还是不行,请查看我所参考的这几位大佬的博客。

(1条消息) 更新NVIDIA显卡的CUDA驱动出错,You appear to be running an X server; please exit X before_Learning by doing-CSDN博客

(1条消息) 关于linux服务器(centos)安装驱动出现An NVIDIA kernel module ‘nvidia-uvm‘ appears to already be load的问题自己的解决方法_hbw136的博客-CSDN博客

(1条消息) Ubuntu16.04 nvidia 显卡驱动过程及遇到的问题_wangyjfrecky的博客-CSDN博客_ubuntu附加驱动无法更换显卡驱动

2.安装CUDA

进入官网CUDA Toolkit Archive | NVIDIA Developer,如下图:

 点击下载后会让你登陆或者注册,新用户用邮箱注册一个就好。下载好上传之后如图

使用跟第一步中相同的方法

sudo ./cuda_10.1.105_418.39_linux.run

然后安装过程中,[X]表示安装,用回车可以修改是否安装,第一个nvidia accelerated graphics driver表示安装nvidia驱动,我们已经安装过了,所以不需要了。将[X]中的X用回车去掉。然后安装成功后会出现类似于这张图的信息告诉你安装路径在哪。

安装成功后如图

看网上说还需要设置软链接,需不需要设置,你只需要看nvcc -V得到的版本是不是你想要的版本。然后我这里还算顺利所以也不用设置。还有问题可以看看

Linux服务器安装cuda,cudnn,显卡驱动和pytorch超详细流程_kingfoulin的博客-CSDN博客_linux安装cuda

Linux安装CUDA的正确姿势_FlyWine的博客-CSDN博客_linux安装cuda

3.安装cudnn

安装cudnn到底是不是必要这我也不知道,因为我也不是从头开始的(滑稽),不过现在你可以试一试了。师姐跟我说这是必须要装的。然后安装cudnn,这位大佬已经写的非常清楚Linux服务器安装cuda,cudnn,显卡驱动和pytorch超详细流程_kingfoulin的博客-CSDN博客_linux安装cuda 完成之后,再使用torch

最后说一点题外话

在linux终端下运行python代码只需要执行类似于

python LeNet.py

这种命令就可以跑代码了 ,在代码里面最好加一个__name__=="__main__"函数

2021(接近2022)linux(ubuntu16.04)安装cuda跑深度学习步骤以及踩坑过程(ELF标头无效、导入torch后torch.cuda.is_available()为False等等)相关推荐

  1. Ubuntu16.04安装AMD显卡,AMD GPU驱动踩坑经历

    事情过程:本来Ubuntu16.04有一块low的A卡,后来淘了一块AMDRX570准备换上,先是黑屏,以为是NVIDIA显卡去装NVIDIA驱动了,后来才发现是A卡,又卸了NVIDIA显卡去装AMD ...

  2. Ubuntu20.04安装配置tensorflow2深度学习环境

    Ubuntu20.04安装配置tensorflow2深度学习环境 之前在windows下配置了tensorflow2的环境,坑有不少.最近配了台台式机,2070显卡,安装一下Ubuntu20.04系统 ...

  3. 不是Nvidia(英伟达)显卡可以安装CUDA跑深度学习算法吗?

    不是Nvidia(英伟达)显卡可以安装CUDA跑深度学习算法吗? 答:不行! Cuda主要是面向Nvidia的GPU的.Intel和AMD的显示芯片都不能进行.所以,想要让cuda环境搭建在自己的Wi ...

  4. Linux ubuntu16.04 安装opencv4教程(源码编译)

    参考文章1:Ubuntu 安装 OpenCV(亲测有效) 参考文章2:OpenCV - Linux(Ubuntu 16.04)中安装OpenCV + OpenCV_Contrib 参考文章3:ubun ...

  5. 数据包过滤 系统 linux,Ubuntu16.04安装libpcap开发库对pcap文件中的数据包进行过滤...

    Ubuntu16.04下安装了Wireshark的话,应该是已经安装了libpcap0.8的包,如下图: 使用sudo apt-get install libpcap-dev安装开发包,安装后系统显示 ...

  6. lua_path环境变量设置linux,ubuntu16.04安装lua环境

    1.官网下载源码 https://www.lua.org/download.html curl -R -O http://www.lua.org/ftp/lua-5.3.5.tar.gz tar zx ...

  7. python3.6.5安装-Ubuntu16.04安装python3.6.5详细步骤

    下载python3.6.5安装包 1. 上传安装包.打开终端,利用命令cd 进入文件所在文件夹里 python@ubuntu:~/workspace$pwd /home/python/workspac ...

  8. gtx1080 驱动 linux,ubuntu16.04安装gtx1080ti驱动+配置CUDA8.0+CUDDNv6

    1.将所需要的文件下载下来 下载gtx1080ti驱动 下载CUDA8.0 需要下载两个文件,一个是它的base一个是Patch分支文件 安装注意先后顺序,先安装base后安装patch 下载CUDD ...

  9. 记录下使用阿里云的ces centos的linux系统搭建一个socks5代理步骤和踩坑过程

    文章目录 一.配置: 二.搭建步骤: 1.通过yum安装ss5 依赖包 2.安装ss5 ①.首先下载ss5 ②.解压安装: 3.启动: 4.修改配置: 5.修改端口号(默认1080,但是容易被人家扫描 ...

最新文章

  1. 用友u8计算机配置,用友软件环境配置要求!
  2. inux 后台执行命令
  3. JSR380(Bean Validation 2.0)
  4. 漫谈C++ Builder多线程编程技术
  5. java实现网页保存_详解Java两种方式简单实现:爬取网页并且保存
  6. java springmvc搭建_【JavaEE】Springmvc+Spring搭建方法及example
  7. 理论基础 —— 排序 —— 归并排序
  8. 邯郸计算机理工学院,邯郸理工学校2021年招生简章
  9. OSError: [Errno 1] Operation not permitted: '/tmp/pip-g3bg0s-uninstall/System/Library/Frameworks/Pyt
  10. 含论文基于JAVA的户籍信息管理系统【数据库设计、源码、开题报告】
  11. 阿里云对象存储OSS服务——上传/删除/获取图片
  12. xzp android webview,加载gif动态图的三种方式
  13. 精选教程:来亲手开发个问答社区,干掉知乎!
  14. 微信H5页面图片上传避坑指南(vant+vue)
  15. 329、微信账户体系科普:什么是UnionId、OpenId与wxopenid?
  16. 爱python,爱学习
  17. 南邮——计算机图像学——光照、冯氏光照模型
  18. CentOS下修改IRedMail的邮件附件大小
  19. JAVA基础--java简单知识04(类与对象,封装,继承,多态)
  20. 凑个热闹之美团 YOLOv6 ORT/MNN/TNN/NCNN C++推理部署

热门文章

  1. 利用python写福字【支付宝五福活动大概率出敬业福】
  2. 文献速递第3期:tDCS的近期研究
  3. JSONException: There is a cycle in the hierarchy
  4. Introduce·哲学友好投稿核心期刊推荐《云南社会科学》
  5. 无限宝无法连接服务器是什么问题,无限宝客户端安装问题
  6. JavaWeb_04_MySQL多表事务
  7. 盐湖提锂卤水除钙镁,高盐软化工艺有哪些?
  8. 第87篇ES之Elastica-php匹配多值字段及给Problem的elementName设中文分词ik
  9. 【会声会影】视频导出、输出时,如何设置参数
  10. 截图神器-snipaste