最近我们给实验室新攒了一台电脑(终于不用再拿我可怜的笔记本跑程序了wwwww),配置见下图,用上了最新的rtx3080显卡,所以在此记录一下配置环境的过程,防止以后还要用(往事不堪回首......)
主要参考博文https://blog.csdn.net/weixin_43896241/article/details/108979744
1)最简单的方法,参见这篇博文https://blog.csdn.net/weixin_40859436/article/details/83152249
在“软件和更新”中更换ubuntu软件下载源,我选择的是科大源
1. 更新apt-get源列表
sudo apt-get update
sudo apt-get upgrade
2. 添加驱动源
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
然后在软件和更新的附加驱动里面就可以找到3080的驱动了,应用之后不要忘了重启。
2)为了给后面的服务器的配置开路,我采用了第二种方法
参考博文https://zhuanlan.zhihu.com/p/59618999
参考博文https://blog.csdn.net/chekongfu/article/details/90758638#commentBox
官网下载驱动网址:http://www.nvidia.cn/page/home.html
将安装文件保存在/home下
(我下载的是455.38版本的驱动,我怕最新的驱动有坑)
首先禁用nouveau:
sudo gedit /etc/modprobe.d/blacklist.conf
在文件最后部分插入以下两行内容
blacklist nouveau
options nouveau modeset=0
更新系统
sudo update-initramfs -u
重启系统
安装一些 NVIDIA 显卡依赖的软件,在终端依次执行如下命令:
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install build-essential libc6:i386
打开终端,输入如下命令:sudo telinit 3
。然后按快捷键:CTRL+ALT+F1
进入字符界面,输入用户名和密码,然后登录系统,执行:
sudo bash 你的驱动安装文件名称.run
重启:reboot
查看是否安装成功:
nvidia-smi
下载链接:https://developer.nvidia.com/zh-cn
具体安装教程参见:https://blog.csdn.net/hou9021/article/details/104311088?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase
类比一下即可
anaconda的安装以及源的更换参见《从零开始的深度强化学习之旅2》。
安装完成后,使用以下命令:
conda create -n tensorflow python=3.7.0 #创建虚拟环境tensorflow,此处使用python3.7版本
source activate tensorflow #激活虚拟环境tensorflow
conda install cudatoolkit=11
#以下两步按照开头提到的博文的步骤来
pip install tensorflow-gpu==1.15
4.测试能否使用gpu
参考博文
https://blog.csdn.net/william_hehe/article/details/79615894
import tensorflow as tf
with tf.device('/cpu:0'):
a = tf.constant([1.0,2.0,3.0],shape=[3],name='a')
b = tf.constant([1.0,2.0,3.0],shape=[3],name='b')
with tf.device('/gpu:0'):
c = a+b
#因为不是所有的操作都可以被放在GPU上,如果强行将无法放在GPU上的操作指定到GPU上,将会报错。
sess = tf.Session(config=tf.ConfigProto(allow_soft_placement=True,log_device_placement=True))
#sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
sess.run(tf.global_variables_initializer())
print(sess.run(c))
输出结果:
Device mapping:
/job:localhost/replica:0/task:0/device:XLA_CPU:0 -> device: XLA_CPU device
/job:localhost/replica:0/task:0/device:XLA_GPU:0 -> device: XLA_GPU device
[2. 4. 6.]
踩过的坑之一,系统自己更新了内核导致驱动和内核不匹配,分辨率变大,解决方法:
https://blog.csdn.net/liu13364876993/article/details/103145720?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control
参考上面这篇博文,恢复内核版本
为了避免再次发生,参考https://www.cnblogs.com/yangzhaon/p/12911751.html
禁止内核自动升级即可。