显卡:Tesla P100;
系统:Ubuntu16.04-desktop(英文版)
软件:cuda+cudnn+docker+nvidia-docker
ubuntu16.04换国内最快源(其它版本也适用)
System Settings
->Language Support(弹出界面,选择install)
->Install/Remove Languages
->Chinese(Simplified)
->再次打开设置中的语言设置,将汉语拉到最上面
->将键盘输入方法改为fcitx
->重启,注意开机后弹出的路径名称设置依旧选择英文,不然中文的话命令行模式会乱码
sudo dpkg --get-selections | grep linux
sudo apt-mark hold linux-image-5.4.0-84-generic
sudo apt-mark hold linux-headers-5.4.0-84-generic
sudo apt-mark hold linux-modules-5.4.0-84-generic
sudo apt-mark hold linux-modules-extra-5.4.0-84-generic
sudo apt install gparted
sudo gparted
#在gparted查看要挂载的分区名
sudo mount -t ext4 /dev/sdb1 /home/username/data
#查看一下分区结果
df -h
# 查看新添加分区/dev/sdb1的UUID
sudo blkid /dev/sdb1
#编辑/etc/fstab文件
sudo gedit /etc/fstab
#在末尾添加以下:
#将上面查到的新分区UUID替换掉这个xxxxxxxxx
UUID=xxxxxxxx-xxxx-xxxxxxxxxxxxxxxxx /home/username/data ext4 defaults 0 2
sudo vim /etc/modprobe.d/blacklist.conf
sudo vi /etc/modprobe.d/blacklist.conf
blacklist nouveau
options nouveau modeset=0
sudo update-initramfs -u
reboot
lsmod | grep nouveau
sudo service lightdm stop
sudo apt-get remove nvidia-* //若安装过其他版本或其他方式安装过驱动执行此项
sudo chmod a+x NVIDIA-Linux-x86_64-396.18.run
sudo ./NVIDIA-Linux-x86_64-396.18.run -no-x-check -no-nouveau-check -no-opengl-files
#只有禁用opengl这样安装才不会出现循环登陆的问题
#-no-x-check:安装驱动时关闭X服务
#-no-nouveau-check:安装驱动时禁用nouveau
#-no-opengl-files:只安装驱动文件,不安装OpenGL文件
//弹出选择界面都直接默认选项即可,除了X-config要选择yes
modprobe nvidia
nvidia-smi //出现显卡信息图表,则表示成功
sudo service lightdm start
sudo apt-get install lightdm
sudo service lightdm status
sudo bash cuda_10.0.130_410.48_linux.run
cd ~/NVIDIA_CUDA-9.0_Samples/1_Utilities/deviceQuery
make
./deviceQuery
sudo vim /etc/profile
#cuda9.0
export PATH=/usr/local/cuda/bin:${PATH} # 必须
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:${LD_LIBRARY_PATH}
reboot
nvcc --version
tar -xvf cudnn-10.0-linux-x64-v7.6.4.38.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
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
cat /usr/local/cuda/version.txt
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
# 注意8.0以上版本不同
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
#添加软链接
Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: y
#如果你之前安装过另一个版本的cuda,除非你确定想要用这个新版本的cuda,
#否则就选no,因为指定该链接后会将cuda指向这个新的版本
#这里因为后续还需要安装CUDNN,所以选择
#查看当前cuda软链接指向的哪个cuda版本
stat cuda
#删除原有链接
sudo rm -rf cuda
#重新建立指向cuda-11.2版本的软链接
sudo ln -s /usr/local/cuda-11.2 /usr/local/cuda
sudo apt-get install -y \
apt-transport-https \
ca-certificates \
curl \
software-properties-common
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository \
"deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
$(lsb_release -cs) \
stable"
sudo apt-get update
udo apt-get install -y docker-ce
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | \
sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/ubuntu16.04/amd64/nvidia-docker.list | \
sudo tee /etc/apt/sources.list.d/nvidia-docker.list
#分开执行
sudo apt-get update
sudo apt-get install -y nvidia-docker2
sudo gpasswd -a 用户名 docker
#如果不重启电脑的话,需要手动重启服务并刷新docker组成员
sudo service docker restart
newgrp - docker
sudo cp /etc/docker/daemon.json /etc/docker/daemon.json.bak
sudo vim /etc/docker/daemon.json
#配置如下:注意graph为存储位置,根据自己需要进行更改
{
"default-runtime": "nvidia",
"runtimes": {
"nvidia": {
"path": "nvidia-container-runtime",
"runtimeArgs": []
}
},
"registry-mirrors": [
"https://kuamavit.mirror.aliyuncs.com",
"https://6kx4zyno.mirror.aliyuncs.com",
"https://registry.docker-cn.com",
"https://docker.mirrors.ustc.edu.cn"
],
"max-concurrent-downloads": 10,
"storage-driver": "overlay2",
"graph": "/home/zj/data/docker",
"log-driver": "json-file",
"log-level": "warn",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
sudo mkdir docker
sudo service docker restart
docker info
docker pull portainer/portainer
docker run -d --name portainerUI -p 8000:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer
docker run -it --privileged=true --name tf -p 2222:22 ubuntu:16.04 /bin/bash
#--privileged=true:容器共享宿主机硬件
#--name tf:容器名为tf
#-p 2222:22:将宿主机2222端口映射到容器的22端口
#ubuntu:16.04:镜像名
#镜像可在docker hub官网搜索自己需要的
#修改容器中ROOT账户的密码
passwd
apt-get update
#安装openssh服务
apt-get -y install openssh*
apt-get install vim
vim /etc/ssh/sshd_config
PermitRootLogin yes #允许root用户ssh登录
UsePAM no
iptables -A INPUT -p tcp --dport 2222 -j ACCEPT
iptables-restore < /etc/iptables.rules
service ssh start
#开机自启
systemctl enable ssh
apt-get install -y wget
cd home
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-5.3.1-Linux-x86_64.sh
/bin/bash /home/Anaconda3-5.3.1-Linux-x86_64.sh -b -p /opt/conda && \
ln -s /opt/conda/etc/profile.d/conda.sh /etc/profile.d/conda.sh
apt-get install vim
vim ~/.bashrc
#在最后一行加上Anaconda安装目录
export PATH=$PATH:/opt/conda/bin
#保存更改,运行
source ~/.bashrc
#conda创建环境
conda create –n tf python=3.6
source activate tf
conda install packagename(根据需要下载相应包)
#如果配置的是别人的environment.yml,参考以下(前提是本地主机安装了Xshell
apt-get -y install lrzsz
rz #上传本地的environment.yml
#conda创建环境
conda env create -f environment.yml
# 当environment.yml的pip里某一个无法下载时,建议删掉再单独下载,方便查看错误,然后进行修改
容器需要安装cuda、cudnn的话,可参考以下链接
Nvidia-docker 配置深度学习环境服务器(cuda+cudnn+anaconda+python)GPU服务器的配置
容器中文乱码问题:
ubuntu locale-gen: command not found bypy list docker中文显示错误
Anaconda和pip换源
# Anaconda
vim ~/.condarc
channels:
- defaults
show_channel_urls: true
default_channels:
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pip换源
conda换源报错:
CondaHTTPError: HTTP 000 CONNECTION FAILED for url …
Elapsed: -
原因是conda源加入了不知名的URL,现在不能使用了(或者废弃)
解决方法:删除bioconda那行即可
conda报错:
ERROR conda.core.link:_execute(502):
FileNotFoundError
更新conda:conda update conda --yes
pip安装某个包报错:
tensorflow 2.6.0 requires typing-extensions~=3.7.4, but you have typing-extensions 3.10.0.2 which is incompatible.
解决方法:pip install xxx => pip3 install xxx
apt-get install screen
screen -S 窗口名称 #创建screen
screen -r 窗口名称 #进入screen
ctrl+A D #按键;退出但不关闭程序,后台运行
exit #关闭本窗口,同时本窗口运行的程序也会终止。
#列出所有正在运行的screen
screen -ls
#列出所有正在运行的screen
screen -ls
screen -r 窗口名称 #进入screen
exit #关闭本窗口,同时本窗口运行的程序也会终止。
# 前提是有装tensorboard库
# 注意需要在conda创建的环境中运行以下代码
# logdir为日志文件路径,即包含events.out.tfevents...文件的文件夹,port为默认端口6006
tensorboard --logdir=logs/summaries --port=6006
然后在本地浏览器地址栏localhost:6006即可
#可以根据自己需求另配容器,我的配置为ssh+anaconda+换源+中文显示+cuda+cudnn
#+Xshell文件传输+后台运行
#dockerimage为保存的镜像的名字, container_ID 为上述查询到的容器器皿地址
docker commit container_ID dockerimage
docker run -it --privileged=true --name tf -p 2223:22 dockerimage /bin/bash