美文网首页
Ubuntu16.04 + 1080ti + CUDA9.0 +

Ubuntu16.04 + 1080ti + CUDA9.0 +

作者: D_Major | 来源:发表于2019-01-22 12:05 被阅读0次

安装环境Ubuntu16.04 + 1080ti + CUDA9.0 + cuDNN7.4 + tensorflow1.8

一.禁用nouveau第三方驱动

打开编辑配置文件: sudo gedit /etc/modprobe.d/blacklist.conf

在最后一行添加:blacklist nouveau

改好后执行命令:sudo update-initramfs -u

重启使之生效:reboot

二.重启后按Ctrl+Alt+F1 进入命令行界面

执行命令:lsmod | grep nouveau 查看是否禁用,无反应则已禁用

禁用界面:sudo /etc/init.d/lightdm stop 关闭桌面

ppa安装NVIDIA驱动:

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-3**

(1080ti适合384,970适合340)

恢复界面:sudo service lightdm start

重启, 输入nvidia-smi判断是否安装成功
输入watch -n 0 nvidia-smi动态看第0块卡的状态

如果使用run安装显卡驱动, 选项不选DKMS和兼容32位, 卸载使用sudo /usr/bin/nvidia-uninstall
运行.run需要加参数--no-opengl-files --no-x-check -no-nouveau-check
参考https://blog.csdn.net/qq_36342854/article/details/95209968

ubuntu18.04关闭图形界面 sudo systemctl set-default multi-user.target, 开启sudo systemctl set-default graphical.target

三.安装CUDA

下载Library for Linux版本.deb,先安装base再安装patch

sudo dpkg -i cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb
sudo apt-get update
sudo apt-get install cuda

配置环境变量:
vim ~/.bashrc
最后一行添加:

export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export CUDA_HOME=/usr/local/cuda

然后source ~/.bashrc

四.安装tensorflow-gpu
虚拟环境下pip install tensorflow-gpu==1.8

五.安装cuDNN

tar -zxvf cudnn-9.0-linux-x64-v6.0.tgz 
sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/ -d

若import tensorflow提示没有libcudnn.so.7:
这个报错要么是环境变量配置问题,要么是CUDNN连接建立问题。
1.环境变量
在~/.bashrc 的最后添加PATH和LD_LIBRARY_PATH
2.CUDNN连接建立

cd /usr/local/cuda/lib64
sudo rm -rf libcudnn.so libcudnn.so.7  #删除原有版本号,版本号在cudnn/lib64中查询
sudo ln -s libcudnn.so.7.4.2 libcudnn.so.7 #生成软连接,注意自己下载的版本号
sudo ln -s libcudnn.so.7 libcudnn.so 
sudo ldconfig #立即生效

查看CUDA版本

cat /usr/local/cuda/version.txt

查看 CUDNN 版本:

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

对于CUDA11

cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

临时切换CUDA版本

sudo ldconfig /usr/local/cuda-9.0/lib64

如果长期多版本并存, 直接改/usr/local/cuda软链接即可

限制模型所用显存

限制当前脚本可用显存,代码头部添加第一行,session 语句进行如第二行的修改

config = tf.ConfigProto(allow_soft_placement=True) # 如果你指定的设备不存在,允许TF自动分配设备
# log_device_placement = True : 是否打印设备分配日志
# per_process_gpu_memory_fraction设置每个GPU应该拿出多少容量给进程使用,0.7代表70%
config.gpu_options.per_process_gpu_memory_fraction=0.7
# 使用allow_growth option,刚一开始分配少量的GPU容量,然后按需慢慢的增加,由于不会释放内存,所以会导致碎片
# config.gpu_options.allow_growth = True
sess = tf.Session(config=config)

或者直接写成
gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.7)
sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options))

在tf中,通过命令 "with tf.device('/cpu:0'):",允许手动设置操作运行的设备。如果手动设置的设备不存在或者不可用,就会导致tf程序等待或异常,为了防止这种情况,可以设置tf.ConfigProto()中参数allow_soft_placement=True,允许tf自动选择一个存在并且可用的设备来运行操作。

设置使用哪块GPU

os.environ['CUDA_VISIBLE_DEVICES'] = '0'  # 使用GPU 0
os.environ['CUDA_VISIBLE_DEVICES'] = '0,1'  # 使用GPU 0,1

或在命令行输入

CUDA_VISIBLE_DEVICES=0,1 python yourcode.py

附: pycharm没有外部变量会产生import错误

--data_dir=/home/renduo/PycharmProjects/SealCls/imagenetsrc/datasets/data_dir
--export_dir=/home/renduo/models/imagenet/resnet/export
--pretrained_model_checkpoint_path=/home/renduo/Downloads/resnet_imagenet_v2_fp32_20181001
--model_dir=/home/renduo/models/imagenet/resnet/ckpt
--fine_tune=False # 一般不填
--eval_only=False # 一般不填

使用imagenet_pred做预测

--data_dir=/home/renduo/PycharmProjects/SealCls/imagenetsrc/datasets/data_dir
--export_dir=/home/renduo/models/imagenet/resnet/export/1547175708
--raw_data_dir=/home/renduo/datasets/OCR/Card/source

resnet使用预训练模型

--data_dir=/home/renduo/PycharmProjects/SealCls/imagenetsrc/datasets/data_dir
--pretrained_model_checkpoint_path=/home/renduo/models/imagenet/resnet/pretrained_model/resnet_imagenet_v2_fp32_20181001
--model_dir=/home/renduo/models/imagenet/resnet/ckpt
--export_dir=/home/renduo/models/imagenet/resnet/export
--resnet_size=50
--resnet_version=2
# 若要继续checkpoint训练则改变epoch为剩余的次数
--train_epochs=10

相关文章

网友评论

      本文标题:Ubuntu16.04 + 1080ti + CUDA9.0 +

      本文链接:https://www.haomeiwen.com/subject/srjljqtx.html