- 下载驱动
- 禁用nouveau
- 安装驱动
以前写过cuda环境的搭建文章, 此次干脆补全整个深度学习环境的搭建.python
用指令看下英伟达显卡:linux
lspci | grep -I nvidia
复制代码
当你搭建完成环境以后, 能够用代码查看硬件信息, 本身写或者官方的例子, 个人NVIDIA GT 750M信息显示以下图, 固然能够直接到英伟达官网查看显卡信息. 这张信息表目前看来就是些参数, 可是后续的并行算法不少时候是依据这些参数来设计的:算法
千万不要用UBUNTU附加驱动里提供的显卡驱动!!! 千万不要用UBUNTU附加驱动里提供的显卡驱动!!! 千万不要用UBUNTU附加驱动里提供的显卡驱动!!! 通常来讲, 你会遇到一些奇怪的问题, 固然, 锦鲤是不会出问题的(手动滑稽). 这是第一个坑点, 大致有三种展示方式:ubuntu
- 装完重启进不去系统, 卡住ubuntu加载页面;
- 无限登陆;
- 装好了, 进入了系统, 而后输入nvidia-smi指令没有任何反应. 正常状况会弹出一张表, 以下所示:
行了, 来讲说个人实操: 首先到官网下载显卡驱动, 比方说我是GT 750M, 操做系统是64位Linux, 我就找对应的版本进行下载.vim
删掉以往的驱动. 注意, 就算你啥都没装, 这步也是无害的.bash
sudo apt-get remove --purge nvidia*
复制代码
更新并安装一些须要的库, 先装这么多, 以后装CUDA还有一波.ionic
sudo apt-get update
sudo apt-get install dkms build-essential linux-headers-generic
复制代码
打开blacklist.conf, 在最后加入禁用nouveau的设置, 这是一个开源驱动, 如图所示:学习
sudo vim /etc/modprobe.d/blacklist.conf
复制代码
blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off
复制代码
禁用nouveau内核模块测试
echo options nouveau modeset=0
sudo update-initramfs -u
复制代码
重启. 若是运行以下指令没用打印出任何内容, 恭喜你, 禁用nouveau成功了.ui
lsmod | grep nouveau
复制代码
~~来到tty1(快捷键ctrl + alt + f1,若是没反应就f1-f7一个个试, 不一样Linux, 按键会略有不一样). 运行以下指令关闭图形界面.~~我在ubuntu18.04.1LTS是ctrl + alt + f3-f6. 而后注意, 如下指令适用于16.04及之前.
sudo service lightdm stop
复制代码
这不适用于18.04. 18.04能够以下操做:
- 关闭用户图形界面
sudo systemctl set-default multi-user.target
sudo reboot
复制代码
- 开启用户图形界面
sudo systemctl set-default graphical.target
sudo reboot
复制代码
安装驱动, 注意有坑, 必定要加**-no-opengl-files**, 不加这个就算安装成功, 也会出现无限登陆问题.可是在最近几回安装环境的时候, 例如系统是18.04, 驱动是418.43, 这个参数变得无效. 因此若是不能开启安装页面, 能够去掉此参数.
sudo chmod u+x NVIDIA-Linux-x86_64-390.87.run
sudo ./NVIDIA-Linux-x86_64-390.87.run –no-opengl-files
复制代码
若是你已经装了, 可是没有加**-no-opengl-files**, 按照以下操做能够救一下.或者你安装失败了, 有些库缺乏了之类的, 能够用如下命令卸载干净重来.
sudo ./NVIDIA-Linux-x86_64-390.87.run –uninstall
复制代码
顺带一提, 可能会弹出Unable to find a suitable destination to install 32-bit compatibility libraries on Ubuntu 18.04 Bionic Beaver Linux的bug, 而后你须要下面三条指令:
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install libc6:i386
复制代码
而且中途的选项都选no比较好, 指不定卡死在安装哪一个奇怪的东西上.
重启. 用nvidia-smi指令试一下, 若是看到相似下图, 恭喜你, 驱动安装成功. 或者看到附加驱动显示继续使用手动安装的驱动.
安装以后在软件和更新当中会显示以下图:
先来补库.
sudo apt-get install freeglut3-dev libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
复制代码
md5检测一下, 不合格要从新下载. 下图是个人检测结果:
md5sum cuda_10.0.130_410.48_linux.run
复制代码
再次关闭图形界面
sudo service lightdm stop
复制代码
这不适用于18.04. 18.04能够以下操做:
- 关闭用户图形界面
sudo systemctl set-default multi-user.target
sudo reboot
复制代码
- 开启用户图形界面
sudo systemctl set-default graphical.target
sudo reboot
复制代码
安装时候依旧要加**-no-opengl-files**参数, 以后一路默认就好.最好不要安装与OpenGL相关的.
sudo sh cuda_10.0.130_410.48_linux.run –no-opengl-files
复制代码
而后会看到三个installed.
添加环境变量
vim ~/.bashrc
复制代码
最后写入:
export CUDA_HOME=/usr/local/cuda
export PATH=$PATH:$CUDA_HOME/bin
export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
复制代码
保存退出, 并其生效.
source ~/.bashrc
复制代码
运行一些检测命令, 若是和我显示的相似, 恭喜你, 环境配置完成.
cat /proc/driver/nvidia/version
复制代码
nvcc -V
复制代码
能够跑一下英伟达提供的学习案例:
以前在开发环境部分展现过一个小栗子, 来看看具体代码吧~
vim Device.cu
复制代码
#include <stdio.h>
int main() {
int nDevices;
cudaGetDeviceCount(&nDevices);
for (int i = 0; i < nDevices; i++) {
cudaDeviceProp prop;
cudaGetDeviceProperties(&prop, i);
printf("Device Num: %d\n", i);
printf("Device name: %s\n", prop.name);
printf("Device SM Num: %d\n", prop.multiProcessorCount);
printf("Share Mem Per Block: %.2fKB\n", prop.sharedMemPerBlock / 1024.0);
printf("Max Thread Per Block: %d\n", prop.maxThreadsPerBlock);
printf("Memory Clock Rate (KHz): %d\n",
prop.memoryClockRate);
printf("Memory Bus Width (bits): %d\n",
prop.memoryBusWidth);
printf("Peak Memory Bandwidth (GB/s): %.2f\n\n",
2.0 * prop.memoryClockRate * (prop.memoryBusWidth / 8) / 1.0e6);
}
return 0;
}
复制代码
nvcc Device.cu -o Device.o
复制代码
./Device.o
复制代码
首先到官网去下载勾选的4个:
而后解压tgz包, 复制文件到cuda环境, 接着安装deb包.
tar -zxvf cudnn-10.0-linux-x64-v7.5.0.56.tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
sudo dpkg -i libcudnn7_7.5.0.56-1+cuda10.0_amd64.deb
sudo dpkg -i libcudnn7-dev_7.5.0.56-1+cuda10.0_amd64.deb
sudo dpkg -i libcudnn7-doc_7.5.0.56-1+cuda10.0_amd64.deb
复制代码
这样就完成安装了, 用个小栗子来测试下吧, 结果如图示:
cp -r /usr/src/cudnn_samples_v7/ ~
cd ~/cudnn_samples_v7/mnistCUDNN
make clean && make
./mnistCUDNN
复制代码
很遗憾个人GPU算力只有3.0, 最低要求是3.5, 不过这里仍是安装一下tf, 当作练手了.
sudo apt-get install python-pip python3-pip python-dev
sudo pip3 install tensorflow-gpu
复制代码
能够用以下python代码查询版本号和路径:
#!/usr/bin/python3
import tensorflow as tf
print (tf.__version__)
print (tf.__path__)
复制代码
最后我给出一个测试例子, 可是很遗憾, 我是没法运行的.
#!/usr/bin/python3
import tensorflow as tf
# Just disables the warning, doesn't enable AVX/FMA
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
hello = tf.constant("Hello, tf!")
sess = tf.Session()
printf (sess.run(hello))
复制代码
喜欢记得点赞哦, 有意见或者建议评论区见~