一、安装anaconda

 anaconda安装简单,只要确定自己的系统即可,具体安装请参考这里

二、确定自己的系统版本

 我的是centos

cat /etc/redhat-release

 查看linux系统方法:

# 方法一
cat /proc/version # 方法二
lsb_release -a # 方法三
cat /etc/issue # 方法四
cat /etc/redhat-release

三、确定自己的CUDA版本

 什么是cuda:

  CUDA(ComputeUnified Device Architecture),是显卡厂商NVIDIA推出的运算平台。 CUDA是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题

  简单说强大的芯片如果只是作为显卡就太浪费了,因此N卡厂商推出CUDA,让显卡可以用于图像计算以外的目的

 什么是cudnn:(注意:CUDA和CuDNN一般都是结伴而行,如果需要CUDA,必然会需要CuDNN)

 下载地址:注意这里需要注册才能下载,我用qq邮箱,密码首字母大写

  CUDA看作是一个工作台,上面配有很多工具,如锤子、螺丝刀等。cuDNN是基于CUDA的深度学习GPU加速库,有了它才能在GPU上完成深度学习的计算。它就相当于工作的工具,比如它就是个扳手

  但是CUDA这个工作台买来的时候,并没有送扳手。想要在CUDA上运行深度神经网络,就要安装cuDNN,就像你想要拧个螺帽就要把扳手买回来。这样才能使GPU进行深度神经网络的工作,工作速度相较CPU快很多

  cudnn下载解压后cuda目录下有下面内容:

  修改权限:

sudo cp include/cudnn.h /usr/local/cuda/include
sudo cp lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

 Centos7安装NVIDIA显卡驱动和CUDA10.1(以10.1为例):

  先查看自己的linux上显卡型号:

lspci | grep -i nvidia

  可见我的显卡杠杠滴

  显卡驱动下载:(下载与自己显卡型号一致的驱动)

  注意:在安装显卡驱动的时候如果报错

ERROR: An NVIDIA kernel module 'nvidia-uvm' appears to already be loaded in your kernel.  This may be because it is in use (for example, by the X server), but may also happen if your kernel was configured

  我们需要查看是否有程序占用(如果存在占用,请停掉该程序)

lsof | grep nvidia.uvm

  当然显卡驱动也可以这样安装:(推荐)

sudo yum install nvidia-detect  # 安装检查显卡的程序
nvidia-detect -v # 查看需要的显卡驱动型号
yum -y install kmod-nvidia # 安装驱动

  卸载驱动:

sudo yum remove kmod-nvidia

  

  如果通过官网下载驱动安装时找不到kernel,通过下面的方式安装驱动(确保kernel已经安装)

sudo ./NVIDIA-Linux-x86_64-430.40.run --kernel-source-path=/usr/src/kernels/3.10.0-514.el7.x86_64

  

  cuda下载

  

  检查linux是否安装了GPU

lspci | grep -i nvidia

  安装 cuda 的时候,会询问是否安装显卡驱动,说明 cuda 安装程序里包含了的显卡驱动;建议先不要安装 cuda 里的显卡驱动,待安装完 cuda 后,执行例子程序,如果报错再检查显卡驱动是否正确,避免覆盖原来的显卡驱动

  安装gcc、g++编译器:先查看是否已经安装(gcc -v)

yum install gcc
yum install g++

  安装kernel-devel和kernel-headers:

yum install kernel-devel
yum install kernel-headers

  注意这里的kernel要和自己的linux系统版本一致:可以使用uname -r查看自己的系统版本

uname -r
#3.10.0-514.el7.x86_64

  有时候直接yum安装的版本比较新,导致显卡驱动安装失败

sudo yum remove kernel-devel # 卸载新的
sudo rpm -i kernel-devel-3.10.0-514.el7.x86_64.rpm #下载安装适合的版本

  版本下载

  编辑grub文件

vim /etc/default/grub

  在GRUB_CMDLINE_LINUX中的末尾(注意要包含在引号内)添加/rd.driver.blacklist=nouveau nouveau.modeset=0

  随后生成配置:

grub2-mkconfig -o /boot/grub2/grub.cfg

  

  禁用nouveau:将blacklist nvidiafb注释掉,并添加如下内容,禁用的原因点击这里

   blacklist nouveau
   options nouveau modeset=0

  更新配置并重启:

sudo mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
sudo dracut /boot/initramfs-$(uname -r).img $(uname -r)
reboot

  

  重启后确认禁用了nouveau:

lsmod | grep nouveau
# 没有内容输出表示禁用成功

  

  赋予权限并安装驱动和CUDA-10.0:

./NNVIDIA-Linux-x86_64-430.50.run
./cuda_10.1.243_418.87.00_linux.run

  查看安装结果

nvidia-smi

  显卡驱动和cuda安装成功后,就可以用conda install 来安装python包了(注意:虚拟机无法调用GPU,即使所有的环境配置好,代码依然会报:all cuda 忙或者不可用的错误)

  推荐搭建使用docker来安装深度学习环境,方便部署

  总结:大家可以参考这个来安装深度学习框架

  接下来安装pytorch-gpu:

conda create --name pytorch_gpu python=3.6.10
source activate pytorch_gpu
conda install pytorch torchvision cudatoolkit=10.1

最新文章

  1. Convert BSpline Curve to Arc Spline in OpenCASCADE
  2. ExpandableListView实现展开更多和收起更多
  3. 使用kindeditor文本编辑器
  4. NSMutableDictionary中元素替换
  5. hdu------2488Tornado(几何)
  6. VS开发工具 不会在异常的地方停止的问题.
  7. 在Java中怎样把数组转换为ArrayList?
  8. RPM是RedHat Package Manager(RedHat软件包管理工具)
  9. WebView组件的应用
  10. EBS成本核算方法
  11. JavaScript新手学习笔记1——数组
  12. C#中调用c++的dll
  13. 将 Intent 序列化,像 Uri 一样传递 Intent!!!
  14. hbase优化之region合并和压缩
  15. hihoCoder 1036 Trie图 AC自动机
  16. Civil 3D 2017本地化中VBA程序移植到2018版中
  17. Django开发笔记五
  18. 简单部署iRedMail-0.9.8 - 邮件服务器架构和错误代码
  19. jQuery操作字符串
  20. 全链路追踪spring-cloud-sleuth-zipkin

热门文章

  1. luogu P1036 选数 x
  2. 【bzoj2724】[Violet 6]蒲公英
  3. 【bzoj1336/1337/2823】最小圆覆盖
  4. 使用@Test报java.lang.NullPointerException at org.eclipse.jdt.internal.junit4.runner.SubForestFilter.shouldRun(SubForestFilter.java:81)异常
  5. C# 防火墙操作之特定程序
  6. a special kind of crossword called a word square
  7. 如何:执行大型 XML 文档的流式转换 大XML文件解析入库的一个方法
  8. clientdataset 做为 单机数据库的 使用 学习
  9. 关于staticmethod() 函数
  10. MIUI8改MAC