容器内安装nvidia,cuda,cudnn
搭建深度学习环境全过程:NVIDIA CUDA CUDNN
https://www.linuxidc.com/Linux/2017-12/149577.htm
/var/lib/docker/overlay2 占用很大,清理Docker占用的磁盘空间,迁移 /var/lib/docker 目录
du -hs /var/lib/docker/ 命令查看磁盘使用情况。
1 docker system df命令,类似于Linux上的df命令,用于查看Docker的磁盘使用情况:
2 docker system prune命令可以用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及dangling镜像(即无tag的镜像)
3 docker system prune -a命令清理得更加彻底,可以将没有容器使用Docker镜像都删掉。注意,这两个命令会把你暂时关闭的容器,以及暂时没有用到的Docker镜像都删掉了…所以使用之前一定要想清楚.。我没用过,因为会清理 没有开启的 Docker 镜像。
4 迁移 /var/lib/docker 目录。
4.1 停止docker服务。
systemctl stop docker
4.2 创建新的docker目录,执行命令df -h,找一个大的磁盘。 我在 /home目录下面建了 /home/docker/lib目录,执行的命令是:
mkdir -p /home/docker/lib
4.3 迁移/var/lib/docker目录下面的文件到 /home/docker/lib:
rsync -avz /var/lib/docker /home/docker/lib/
4.4 配置 /etc/systemd/system/docker.service.d/devicemapper.conf。查看 devicemapper.conf 是否存在。如果不存在,就新建。
sudo mkdir -p /etc/systemd/system/docker.service.d/
sudo vi /etc/systemd/system/docker.service.d/devicemapper.conf
4.5 然后在 devicemapper.conf 写入:(同步的时候把父文件夹一并同步过来,实际上的目录应在 /home/docker/lib/docker )
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --graph=/home/docker/lib/docker
4.6 重新加载 docker
systemctl daemon-reload
systemctl restart docker
systemctl enable docker
4.7 为了确认一切顺利,运行
docker info
命令检查Docker 的根目录.它将被更改为 /home/docker/lib/docker
Docker Root Dir: /home/docker/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
4.8 启动成功后,再确认之前的镜像还在:
linlf@dacent:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
AAA/AAA v2 7331b8651bcc 27 hours ago 3.85GB
BBB/BBB v1 da4a80dd8424 28 hours ago 3.47GB
4.9 确定容器没问题后删除/var/lib/docker/目录中的文件。
https://blog.csdn.net/qq_37674858/article/details/79976751
https://blog.csdn.net/cmrsautomation/article/details/52857791
/var/lib/docker 目录占很多空间 导致容器内部 /目录空间使用量100%
报错 Not enough space on parition mounted at /.
处理 docker rm -f 删除多余的容器 docker ps -a 查看到的
docker system prune -a
修改docker.service文件
cd ``/``etc``/``systemd``/``system``/``multi``-``user.target.wants
vim docker.service
ExecStart=/usr/bin/dockerd --graph=/data/docker --storage-driver=overlay --registry-mirror=https://jxus37ad.mirror.aliyuncs.com -g /data/docker
- --graph=/data/docker:docker新的存储位置
- --storage-driver=overlay : 当前docker所使用的存储驱动
注:存储驱动貌似不改也会变成overlay
`systemctl daemon``-``reload` `systemctl restart docker`
docker info
Docker Root Dir
centos docker中安装nvidia驱动 示例
https://www.cnblogs.com/daizuozhuo/p/4643408.html
在centos 机器的Docker里安装GTX980驱动, 首先安装Docker和镜像:
sudo yum install docker
sudo systemctl start docker
sudo docker pull centos
然后去nvidia官方网站下载合适的linux驱动放在当前文件夹内.
在默认情况下Docker是不能访问任何device的, 为了能在Docker里访问显卡,必须加上--privileged=true的选项:
sudo docker run --privileged=true -i -t -v $PWD:/data centos /bin/bash
-v
将当前文件夹mount到容器内部的/data目录里这样就可以安装nvidia驱动:
yum install gcc gcc-c++ kmod mesa-libGL-devel mesa-libGLU-devel libGLEW glew-devel freeglut-devel
sh NVIDIA-Linux-x86_64-346.47.run -a -N --ui=none --no-kernel-module
这样就安装好了,可以退出来保存一下, sudo docker ps
得到container ID, 然后
sudo docker commit $containerID daizuozhuo/nvidia
为了能够在容器里面打开显示器,我们还需要在启动时指定DISPLAY:
sudo docker run --privileged=true -ti -v $PWD:/data -e DISPLAY=:0 -v /tmp/.X11-unix:/tmp/.X11-unix daizuozhuo/nvidia /bin/bash
可以在Docker里跑用到GPU的程序了.
注意:使用这种方式运行容器
nvidia-docker run -it --rm ananconda-nvidia-smi /bin/bash
(base) root@c80747142330:/# nvidia-smi
Failed to initialize NVML: Unknown Error
需要执行
nvidia-docker run -it --rm --privileged=true ananconda-nvidia-smi /bin/bash
才能正常使用nvidia-smi
https://www.cnblogs.com/wuchangsoft/p/9767170.html 貌似可以解释
centos 7 安装nvidia驱动
起容器命令
nvidia-docker run -it --rm --privileged=true
1 yum install gcc gcc-c++ kmod mesa-libGL-devel mesa-libGLU-devel libGLEW glew-devel freeglut-devel
2 sh NVIDIA-Linux-x86_64-430.40.run -a -N --ui=none --no-kernel-module
是否选择32位适配版 ,yes
3 nvidia-smi
###cuda
wget http://developer.download.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda-repo-rhel7-10-1-local-10.1.243-418.87.00-1.0-1.x86_64.rpm
sudo rpm -i cuda-repo-rhel7-10-1-local-10.1.243-418.87.00-1.0-1.x86_64.rpm
sudo yum clean all
sudo yum -y install nvidia-driver-latest-dkms cuda
或网络安装
sudo yum-config-manager --add-repo http://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/cuda-rhel7.repo
sudo yum clean all
sudo yum -y install nvidia-driver-latest-dkms cuda
或 runfile
wget http://developer.download.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda_10.1.243_418.87.00_linux.run
sudo sh cuda_10.1.243_418.87.00_linux.run
#低版本cuda9.0
https://developer.nvidia.com/cuda-90-download-archive?target_os=Linux&target_arch=x86_64&target_distro=CentOS&target_version=7&target_type=rpmlocal
安装
rpm -i cuda-repo-rhel7-9-0-local-9.0.176-1.x86_64.rpm
yum clean all
yum install cuda
22,nvidia驱动下载
http://us.download.nvidia.com/XFree86/Linux-x86_64/384.130/NVIDIA-Linux-x86_64-384.130.run
驱动向下兼容,下载最新即可
容器内操作
apt-get install gcc kmod
注意:需要安装 430.40
https://us.download.nvidia.com/XFree86/Linux-x86_64/430.40/NVIDIA-Linux-x86_64-430.40.run
sh NVIDIA-Linux-x86_64-430.40.run -a -N --ui=none --no-kernel-module
nvidia-smi
多余的步骤
起容器 sudo docker run --privileged=true -i -t -v $PWD:/data ubuntu:16.04 /bin/bash
1 apt-get instal gcc gcc-c++ kmod mesa-libGL-devel mesa-libGLU-devel libGLEW glew-devel freeglut-devel
2 apt-get install gcc gcc-c++ kmod mesa-libGL-devel mesa-libGLU-devel libGLEW glew-devel freeglut-devel kmod
5 apt-get update
9 apt-get install gcc
10 sh NVIDIA-Linux-x86_64-384.run -a -N --ui=none --no-kernel-module
11 apt-get install kmod
12 sh NVIDIA-Linux-x86_64-384.run -a -N --ui=none --no-kernel-module
13 nvidia-smi
https://tensorflow.google.cn/install/source#gpu_support_2 支持的tensorflow-gpu cuda cudnn
容器环境变量
镜像改变为阿里云源
ENV PATH /usr/local/bin:$PATH
ENV LANG C.UTF-8
ENV TERM xterm
ENV PYTHON_VERSION 3.5.3
ENV name1=ping name2=on_ip
在ENV指令中,可以直接引用如下环境变量:
HOME,用户主目录
HOSTNAME,默认容器的主机名
PATH,
TERM,默认xterm
- 由于镜像的层次文件系统,ENV定义的环境变量在后续层次中才能够被应用
ENV abc=hello
ENV abc=bye def=$abc
ENV ghi=$abc
上述定义的结果中,def=hello,ghi=bye
3. 启动容器后,在容器实例中,可以通过env命令查看环境变量
11,编译安装python3
apt-get install -y gcc make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev \
libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev
sudo curl -O https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tar.xz
tar Jxvf Python-3.7.1.tar.xz
apt-get install -y gcc make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev \
libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev
编译安装(安装到 /usr/python3 )
mkdir /usr/python3
cd Python-3.7.1
sudo ./configure --enable-optimizations --prefix=/usr/python3.5
sudo make && make install
cd /usr/python3/bin
# 查看 python3 的版本
./python3 -V
./pip3 -V
环境变量
sudo vim /etc/profile
#把 /usr/python3/bin 放在前面, 优先使用里面的命令
export PATH=/usr/python3/bin:$PATH
source /etc/profile
Docker制作Python运行环境基础镜像
docker pull ubuntu:16.04
Dockerfle
FROM ubuntu:16.04
MAINTAINER cc-man
#添加python的安装包
ADD Python-3.5.0.tar.xz /opt
#更新apt
RUN apt-get update && apt-get install -y
#安装依赖
RUN apt-get install gcc -y && apt-get install make -y \
&& apt-get install vim -y && apt-get install openssl -y \
&& apt-get install libssl-dev -y && apt-get install python3-pip -y
RUN ./opt/Python-3.5.0/configure --prefix=/usr/local/python3.5 \
&& make && make install
RUN mkdir /opt/myApp/
VOLUME ["/opt/myApp/"]
CMD [""]
docker build -t ubuntu-16.04/python:3.5 .
python 源代码
https://www.python.org/downloads/source/
https://www.python.org/ftp/python/3.5.5/Python-3.5.5.tgz
55tensorflow安装指定
https://www.cnblogs.com/jason-share/p/6619059.html
pip3 install tensorflow==1.11.0
离线下载安装
https://pypi.org/project/tensorflow/1.11.0/#files
sudo -H pip3 install --upgrade tensorflow-1.0.1-cp35-cp35m-linux_x86_64.whl
pip install tensorflow-gpu==1.14.0
import tensorflow as tf
tf.__version__
tf.__path__
在线安装
pip3 install https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.11.0-cp35-cp35m-linux_x86_64.whl
pip3 install -i https://mirrors.aliyun.com/pypi/simple/ https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.11.0-cp35-cp35m-linux_x86_64.whl
keras 2.2.4安装
https://pypi.org/project/Keras/2.2.4/#modal-close
https://pypi.org/project/Keras/2.2.4/#files
pip3 install -i https://mirrors.aliyun.com/pypi/simple/ Keras==2.2.4
pip3 install Keras==2.2.4
import keras
print(keras.version)
python3 -c 'import keras; print(keras.__version__)'
离线安装Tensorflow、Keras、OpenCV(任意库)
https://blog.csdn.net/yjy728/article/details/78826447
国内python源设置
长久
mkdir ~/.pip
vim ~/.pip/pip.conf
[global]
trusted-host=mirrors.aliyun.com
index-url=https://mirrors.aliyun.com/pypi/simple/
临时使用
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyspider,这样就会从清华这边的镜像去安装pyspider库
常见国内源
新版ubuntu要求使用https源,要注意。
清华:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
华中理工大学:http://pypi.hustunique.com/
山东理工大学:http://pypi.sdutlinux.org/
豆瓣:http://pypi.douban.com/simple/
离线安装tensflow,keras
TensorFlow whl 文件
https://pypi.org/project/tensorflow/1.11.0/#files
下载指定的whl文件线下安装
pip3 install --upgrade tensorflow-1.0.1-cp35-cp35m-linux_x86_64.whl
文档:
离线安装Tensorflow、Keras、OpenCV(任意库)
https://blog.csdn.net/yjy728/article/details/78826447
-----------------------------------------------------------------------------------
第一步安装Anaconda不变,安装好之后:
直接运行:
pip install --download "你准备放离线tensorflow安装包的文件夹地址" tensorflow
pip install --download "你准备放离线keras安装包的文件夹地址" keras
pip install --download "你准备放离线opencv安装包的文件夹地址" opencv-python
会自动下载对应Anaconda中python版本的,最新版本的tensorflow、keras、opencv(3.3.0),如无特殊版本要求可以按此方法。
同样的,第三步也可简化为:
pip install --no-index --find-links="你的离线tensorflow离线文件夹地址" tensorflow
pip install --no-index --find-links="你的离线keras离线文件夹地址" keras
pip install --no-index --find-links="你的离线opencv离线文件夹地址" opencv-python
-----------------------------------
1.下载Anaconda
https://repo.continuum.io/archive/index.html
下载对应版本的Anaconda
Tips:目前windows只支持python3.5以及3.6版本的,对应的anaconda版本为:4.2.X及4.3.X
注意,,前缀都是Anaconda3!!
例如,选择4.3.0版本的Anaconda3-4.3.0-Windows-x86_64.exe(python3.6)
2.下载离线的Tensorflow、Keras、Opencv安装文件(.whl文件)
到任意国内的镜像站:
阿里云 http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
豆瓣(douban) http://pypi.douban.com/simple/
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/
搜索tensorflow,进入选择对应条目.
例如阿里云镜像站选择最新的版本,但要注意平台(win)及版本(只能cp35或者cp36),目前最新的文件为:tensorflow-1.3.0rc2-cp36-cp36m-win_amd64.whl
Ubuntu下载对应平台的版本,python版本不限(建议选择python2.7)。
同样的方法,下载keras2.1、opencv-python3.2.0
=========
3.下载离线依赖库
进入你下载的tensorflow本地文件夹,运行
pip install --download "你准备放离线tensorflow安装包的文件夹地址" tensorflow-1.3.0rc2-cp36-cp36m-win_amd64.whl载keras、opencv
4.离线安装库
pip install --no-index --find-links="你的离线tensorflow离线文件地址" tensorflow-1.3.0rc2-cp36-cp36m-win_amd64.whl
同理安装keras、opencv
5.修复OpenCV(若有问题)
cmd中输入python
然后依次输
import tensorflow as tf
import keras as K
import cv2
tensorflow_gpu-1.11.0 python 包位置
https://tensorflow.google.cn/install/pip#%E8%BD%AF%E4%BB%B6%E5%8C%85%E4%BD%8D%E7%BD%AE
软件包位置 有几个安装机制需要您提供 TensorFlow Python 软件包的网址。您需要根据 Python 版本指定网址。
https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.11.0-cp35-cp35m-linux_x86_64.whl
keras,可以直接pip install keras,它会自动附带安装所需的其他库和Theano,需要注意的是,此时Keras会自动选用TensorFlow作为其后端,而TensorFlow则会在有可用GPU时自动调用GPU运行
报错
https://www.cnblogs.com/zzb-Dream-90Time/p/9688330.html
导入 tensorflw
tensorflow:ImportError: libcublas.so.9.0: cannot open shared object file: No such file or director
错误:ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory
问题:找不到cuda9.0的版本。
出现该错误的主要原因:cuda未安装或者cuda的版本有问题
https://www.jianshu.com/p/6f54b4f96556
33,cuda 安装
下载链接
https://developer.nvidia.com/cuda-90-download-archive
https://blog.csdn.net/wf19930209/article/details/81879514
https://zhuanlan.zhihu.com/p/28786117
关闭图形界面
3. 运行cuda文件
首先给cuda可执行权限:
chmod a+x cuda_9.2_linux.run1
运行cuda文件:
https://developer.nvidia.com/compute/cuda/9.0/Prod/local_installers/cuda_9.0.176_384.81_linux-run
*** 容器内安装 执行 ***
sh cuda_9.0.176_384.81_linux.run --no-opengl-libs --toolkit -silent
添加变量
cuda主要有以下参数:
--no-opengl-libs:表示只安装驱动文件,不安装OpenGL文件。必需参数,原因同上。注意:不是-no-opengl-files。
--uninstall (deprecated):用于卸载CUDA Driver(已废弃)。
--toolkit:表示只安装CUDA Toolkit,不安装Driver和Samples
--help:查看更多高级选项
- 安装过程的选项选择
(1). 会先有个阅读声明,一直按D即可,然后accept。
(2). 选项install nvidia accelerated Graphics Driver,输入n,因为我们已经安装了nvidia的驱动。
(3). 选项install the OpenGL libraries,如果双显卡(集显+独显)选择n,如果只有独显可以选择y,如果双显卡选择y的话,会出现黑屏或者循环登录的问题,如果加了上面的参数就不会出现这个选项了。
(4). 后面的可以都选择yes,最后一个选项我们可以选择n,也就是不复制Samples,因为安装目录下有samples。
安装过程结束后会有以下信息:
Driver :Installed
Toolkit :Installed in /usr/local/cuda-9.2
Samples :Installed in /home/vincent
代表安装完成,但是不代表成功。这时需要重启。
- 验证cuda是否成功安装
重启进入界面,打开终端输入:
export PATH="/usr/local/cuda-9.0/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH"
这两条命令是将cuda的bin文件和lib导出到系统环境中。
如果安装的版本不是一样的,更换路径中的cuda-9.2。
(1). 终端输入:
nvcc -V
如果有CUDA的版本信息代表正常。
(6). 将cuda的bin和lib写入系统环境
打开~.bashrc文件在末尾追加两句:
export CUDA_HOME=/usr/local/cuda-9.2
export LD_LIBRARY_PATH=/usr/local/cuda-9.2/lib64:$LD_LIBRARY_PATH
export PATH=/usr/local/cuda-9.2/bin:$PATH
然后退出重新打开终端即可
cuda centos 安装
不行
https://www.cnblogs.com/xiaochina/p/10631522.html
https://developer.nvidia.com/compute/cuda/9.0/Prod/local_installers/cuda-repo-rhel7-9-0-local-9.0.176-1.x86_64-rpm
rpm -i cuda-repo-rhel7-9-0-local-9.0.176-1.x86_64.rpm
yum clean all && yum makecache
yum install cuda
安装过程
15 yum localinstall cuda-repo-rhel7-9-0-local-9.0.176-1.x86_64.rpm
16 yum clean all && yum makecache
17 yum install cuda
18 yum install dkms
19 wget http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/d/dkms-2.7.1-1.el7.noarch.rpm
20 yum install wget
22 wget http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/d/dkms-2.7.1-1.el7.noarch.rpm
23 yum localinstall dkms-2.7.1-1.el7.noarch.rpm
24 yum install -y cuda
设置环境变量
vim /etc/profile
export CUDA_HOME="/usr/local/cuda-9.0"
export PATH=$CUDA_HOME:$PATH
export LD_LIBRARY_PATH=$CUDA_HOME:$LD_LIBRARY_PATH
source /etc/profile
报错
在安装cuda的时候,有时候会提示toolkit installation failed using unsupported compiler。这是因为GCC版本不合适所导致的。
解决的方法很简单,直接在安装命令之后加-override再安装,一般来说就没什么问题了。如:
sudo ./cuda_6.0.37_linux_64.run -override
accept
安装toolkit
其他n
tensorflow
https://www.tensorflow.org/install/source#common_installation_problems
https://www.tensorflow.org/install/source_windows
tensorflow与cuda cudnn 的依赖关系
安装TensorFlow 1.12、Keras 2.2.4、Pytorch0.4.2-GPU最新版
http://ask.ainoob.cn/article/7322
cuda 9.1.85
https://developer.nvidia.com/compute/cuda/9.1/Prod/local_installers/cuda_9.1.85_387.26_linux
补丁也下载
https://tensorflow.google.cn/install/gpu
NV显卡驱动+cuda 9.1+cudnn 7.1.2 安裝
https://zhuanlan.zhihu.com/p/41096599
CUDA Toolkit | Linux x86_64 Driver Version | Windows x86_64 Driver Version |
---|---|---|
CUDA 10.1 (10.1.105 general release, and updates) | >= 418.39 | >= 418.96 |
CUDA 10.0.130 | >= 410.48 | >= 411.31 |
CUDA 9.2 (9.2.148 Update 1) | >= 396.37 | >= 398.26 |
CUDA 9.2 (9.2.88) | >= 396.26 | >= 397.44 |
CUDA 9.1 (9.1.85) | >= 390.46 | >= 391.29 |
CUDA 9.0 (9.0.76) | >= 384.81 | >= 385.54 |
CUDA 8.0 (8.0.61 GA2) | >= 375.26 | >= 376.51 |
CUDA 8.0 (8.0.44) | >= 367.48 | >= 369.30 |
CUDA 7.5 (7.5.16) | >= 352.31 | >= 353.66 |
CUDA 7.0 (7.0.28) | >= 346.46 | >= 347.62 |
Linux安装CUDA的正确姿势
https://blog.csdn.net/wf19930209/article/details/81879514
UDA、CUdnn不同,所以需要在同一台服务器安装多个版本
https://www.cnblogs.com/sddai/p/10278005.html
https://www.cnblogs.com/clemente/p/10619235.html
TensorFlow GPU 支持需要各种驱动程序和库 官网
https://tensorflow.google.cn/install/gpu
https://blog.csdn.net/qq_27825451/article/details/89082978
1.3 如何查看自己所安装的CUDA的版本:
(1)直接在NVIDIA的控制面板里面查看NVCUDA.DLL的版本。
注意:这里网上有很多说法是错误的,这个版本并不能绝对说明自己所安装的CUDA工具包一定这个版本
(2)通过命令查看:nvcc -V 或者是nvcc --version都可以,但前提是添加了环境变量
(3)直接通过文件查看,这里分为Linux和windows两种情况
在windows平台下,可以直接进入CUDA的安装目录,比如我的是:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2 里面有一个version.txt的文本文件,直接打开即可,也可以使用命令,即
首先进入到安装目录,然后执行:type version.txt 即可查看
在Linux平台下:
同windows类似,进入到安装目录,然后执行 cat version.txt 命令
44,cudnn安装
下载deb
母镜像 ubuntu1604-py3.5-nvidia-tens1.11-keras2.24
成功的
ubuntu
https://developer.download.nvidia.cn/compute/machine-learning/repos/ubuntu1604/x86_64/
centos
https://developer.download.nvidia.cn/compute/machine-learning/repos/rhel7/x86_64/
yum localinstall libcudnn7-7.4.1.5-1.cuda9.0.x86_64.rpm
dpkg -i
pip3 install --upgrade tensorflow-gpu
不行
tar zxvf cudnn-8.0-linux-x64-v5.1.tgz
看到如下目录 /cudnn/cuda/targets/ppc64le-linux
NVIDIA_SLA_cuDNN_Support.txt include lib
将 include/ 和 lib64/
目录下的文件拷贝到cuda的安装目录下的include/ 和 lib64
里面
$ cd ~/src/cuda #解压后的路径
$ sudo cp -P include/cudnn.h /usr/local/cuda-9.0/include
$ sudo cp -P lib64/libcudnn* /usr/local/cuda-9.0/lib64
$ sudo chmod a+r /usr/local/cuda-9.0/lib64/libcudnn*
1.4 如何查看自己的cuDNN的版本
因为cuDNN本质上就是一个C语言的H头文件,
(1)在windows平台下:
直接进入安装目录:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2\include 之下,然后找到
cudnn.h 的头文件,直接到开查看,在最开始的部分会有如下定义:
2)在Linux下当然也可以直接查看,但是通过命令更简单,进入到安装目录,执行如下命令:
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2 即可查询
二、CUDA与相对应的Cudnn对应关系
Download cuDNN v7.4.2 (Dec 14, 2018), for CUDA 10.0
Download cuDNN v7.4.2 (Dec 14, 2018), for CUDA 9.2
Download cuDNN v7.4.2 (Dec 14, 2018), for CUDA 9.0
Download cuDNN v7.4.1 (Nov 8, 2018), for CUDA 10.0
Download cuDNN v7.4.1 (Nov 8, 2018), for CUDA 9.2
Download cuDNN v7.4.1 (Nov 8, 2018), for CUDA 9.0
Download cuDNN v7.3.1 (Sept 28, 2018), for CUDA 10.0
Download cuDNN v7.3.1 (Sept 28, 2018), for CUDA 9.2
Download cuDNN v7.3.1 (Sept 28, 2018), for CUDA 9.0
Download cuDNN v7.3.0 (Sept 19, 2018), for CUDA 10.0
Download cuDNN v7.3.0 (Sept 19, 2018), for CUDA 9.0
Download cuDNN v7.2.1 (August 7, 2018), for CUDA 9.2
Download cuDNN v7.1.4 (May 16, 2018), for CUDA 9.2
Download cuDNN v7.1.4 (May 16, 2018), for CUDA 9.0
Download cuDNN v7.1.4 (May 16, 2018), for CUDA 8.0
Download cuDNN v7.1.3 (April 17, 2018), for CUDA 9.1
Download cuDNN v7.1.3 (April 17, 2018), for CUDA 9.0
Download cuDNN v7.1.3 (April 17, 2018), for CUDA 8.0
Download cuDNN v7.1.2 (Mar 21, 2018), for CUDA 9.1 & 9.2
Download cuDNN v7.1.2 (Mar 21, 2018), for CUDA 9.0
Download cuDNN v7.0.5 (Dec 11, 2017), for CUDA 9.1
Download cuDNN v7.0.5 (Dec 5, 2017), for CUDA 9.0
Download cuDNN v7.0.5 (Dec 5, 2017), for CUDA 8.0
Download cuDNN v7.0.4 (Nov 13, 2017), for CUDA 9.0
Download cuDNN v6.0 (April 27, 2017), for CUDA 8.0
Download cuDNN v6.0 (April 27, 2017), for CUDA 7.5
Download cuDNN v5.1 (Jan 20, 2017), for CUDA 8.0
Download cuDNN v5.1 (Jan 20, 2017), for CUDA 7.5
Download cuDNN v5 (May 27, 2016), for CUDA 8.0
Download cuDNN v5 (May 12, 2016), for CUDA 7.5
Download cuDNN v4 (Feb 10, 2016), for CUDA 7.0 and later.
Download cuDNN v3 (September 8, 2015), for CUDA 7.0 and later.
Download cuDNN v2 (March 17,2015), for CUDA 6.5 and later.
Download cuDNN v1 (cuDNN 6.5 R1)
三、NVIDIA显卡以及对应的显卡驱动的对应关系
由于NVIDIA存在多个系列的显卡类型,把这里仅仅显示出GeForce系列的显卡以及各个显卡的计算能力(compute capability),详情可以参考官网链接:
https://developer.nvidia.com/cuda-gpus
(2)GeForce Notebook Products(笔记本电脑)
66安装操作步骤
起容器
nvidia-docker run -it --rm --privileged=true -v $PWD:/data ubuntu-pythonttt1:latest /bin/bash
python3
apt-get -y -q install [packagename] 免交互安装
7 apt-get install gcc kmod
8 sh NVIDIA-Linux-x86_64-430.40.run -a -N --ui=none --no-kernel-module
9 nvidia-smi
17 sh cuda_9.0.176_384.81_linux.run --no-opengl-libs --toolkit -silent
18 export PATH="/usr/local/cuda-9.0/bin:$PATH"
19 export LD_LIBRARY_PATH="/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH"
21 dpkg -i libcudnn7_7.0.5.15-1+cuda9.0_amd64.deb
23 nvcc -V
24 pip3 install -i https://mirrors.aliyun.com/pypi/simple/ https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.11.0-cp35-cp35m-linux_x86_64.whl
26 pip3 install -i https://mirrors.aliyun.com/pypi/simple/ tensorflow_gpu-1.11.0-cp35-cp35m-linux_x86_64.whl
27 pip3 install -i https://mirrors.aliyun.com/pypi/simple/ Keras==2.2.4
77 dockefile
cat Dockerfile
FROM ubuntu:16.04
MAINTAINER yon
ENV PATH /usr/local/cuda-9.0/bin:$PATH
ENV LD_LIBRARY_PATH /usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH
ADD Python-3.5.5.tgz /opt
ADD sources.list /etc/apt/sources.list
RUN apt-get update && apt-get install -y
#安装依赖
RUN apt-get install gcc -y && apt-get install make -y \
&& apt-get install vim -y && apt-get install openssl -y \
&& apt-get install libssl-dev -y && apt-get install python3-pip -y
RUN ./opt/Python-3.5.5/configure --prefix=/usr/local/python3.5 \
&& make && make install
COPY libcudnn7_7.0.5.15-1+cuda9.0_amd64.deb /
COPY cuda_9.0.176_384.81_linux.run /
COPY NVIDIA-Linux-x86_64-430.40.run /
COPY tensorflow_gpu-1.11.0-cp35-cp35m-linux_x86_64.whl /
RUN apt-get -y -q install gcc kmod \
&& sh NVIDIA-Linux-x86_64-430.40.run -a -N --ui=none --no-kernel-module \
&& sh cuda_9.0.176_384.81_linux.run --no-opengl-libs --toolkit -silent \
&& dpkg -i libcudnn7_7.0.5.15-1+cuda9.0_amd64.deb \
&& pip3 install -i https://mirrors.aliyun.com/pypi/simple/ tensorflow_gpu-1.11.0-cp35-cp35m-linux_x86_64.whl \
&& pip3 install -i https://mirrors.aliyun.com/pypi/simple/ Keras==2.2.4
CMD [""]
当前目录下文件
ll
总用量 2086616
-rw-r--r-- 1 root root 1643293725 9月 2 11:46 cuda_9.0.176_384.81_linux.run
-rw-r--r-- 1 root root 1250 9月 3 17:45 Dockerfile
-rw-r--r-- 1 root root 102521974 9月 2 19:18 libcudnn7_7.0.5.15-1+cuda9.0_amd64.deb
-rwxr-xr-x. 1 root root 111258448 8月 21 16:58 NVIDIA-Linux-x86_64-430.40.run
-rw-r--r-- 1 root root 20766931 8月 30 12:15 Python-3.5.5.tgz
-rw-r--r-- 1 root root 720 9月 3 13:55 sources.list
-rw-r--r-- 1 root root 258835666 9月 3 17:17 tensorflow_gpu-1.11.0-cp35-cp35m-linux_x86_64.whl
cat sources.list
deb http://mirrors.aliyun.com/ubuntu/ xenial main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security universe
caffe
与python 搭配
yum install epel-release
yum install leveldb-devel protobuf-devel snappy-devel opencv-devel boost-devel hdf5-devel atlas-devel
yum install gflags-devel glog-devel lmdb-devel
yum install openblas-devel gcc gcc-c++
Anaconda
Anaconda 是一个用于科学计算的 Python 发行版,支持 Linux, Mac, Windows, 包含了众多流行的科学计算、数据分析的 Python 包。
清华镜像源
https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/
Anaconda 安装包可以到 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 下载。
TUNA 还提供了 Anaconda 仓库的镜像,运行以下命令:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
即可添加 Anaconda Python 免费仓库。
运行 conda install numpy
测试一下吧。
Miniconda 镜像使用帮助
Miniconda 是一个 Anaconda 的轻量级替代,默认只包含了 python 和 conda,但是可以通过 pip 和 conda 来安装所需要的包。
Miniconda 安装包可以到 https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/ 下载。
Conda 三方源
当前tuna还维护了一些anaconda三方源。
Conda Forge
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
msys2
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
bioconda
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
menpo
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/
pytorch
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
# for legacy win-64
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/peterjc123/
Anaconda安装
Anaconda安装
bash Anaconda2-4.4.0-Linux-x86_64.sh
添加清华镜像
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
添加Pytorch镜像
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
1)conda install --channel https://conda.anaconda.org/anaconda tensorflow=1.5.0
2)pip install tensorflow-gpu==1.4.0
conda 安装 GPU 加速版本的 TensorFlow 时,只需使用命令 conda install tensorflow-gpu,这些库就会自动安装成功,且版本与 tensorflow-gpu 包兼容。此外,conda 安装这些库的位置不会与通过其他方法安装的库的其他实例产生冲突
\1. 首先获取anaconda可获取的Tensorflow版本
anaconda search -t conda tensorflow
\2. 获取想要安装的版本的安装方式
anaconda show +想要安装的版本
\3. 执行命令安装即可
- Pytorch安装
conda install pytorch1
- tensorflow 安装
pip install tensorflow==1.4.11
- keras 安装
pip install keras==2.1.0
- 新h5py
pip install h5py==2.8.0rc1
介绍
Anaconda 就是可以便捷获取包且对包能够进行管理,同时对环境可以统一管理的发行版本。Anaconda包含了conda、Python在内的超过180个科学包及其依赖项。
① Anaconda
Anaconda是一个包含180+的科学包及其依赖项的发行版本。其包含的科学包包括:conda, numpy, scipy, ipython notebook等。
② conda
conda是包及其依赖项和环境的管理工具。
适用语言:Python, R, Ruby, Lua, Scala, Java, JavaScript, C/C++, FORTRAN。
适用平台:Windows, macOS, Linux
用途:
快速安装、运行和升级包及其依赖项。
在计算机中便捷地创建、保存、加载和切换环境。
如果你需要的包要求不同版本的Python,你无需切换到不同的环境,因为conda同样是一个环境管理器。仅需要几条命令,你可以创建一个完全独立的环境来运行不同的Python版本,同时继续在你常规的环境中使用你常用的Python版本
conda为Python项目而创造,但可适用于上述的多种语言。
conda包和环境管理器包含于Anaconda的所有版本当中。
③ pip
pip是用于安装和管理软件包的包管理器。
pip编写语言:Python。
Python中默认安装的版本:
Python 2.7.9及后续版本:默认安装,命令为pip
Python 3.4及后续版本:默认安装,命令为pip3
pip名称的由来:pip采用的是递归缩写进行命名的。其名字被普遍认为来源于2处:
“Pip installs Packages”(“pip安装包”)
“Pip installs Python”(“pip安装Python”)
④ virtualenv
virtualenv:用于创建一个独立的Python环境的工具。
解决问题:
当一个程序需要使用Python 2.7版本,而另一个程序需要使用Python 3.6版本,如何同时使用这两个程序?
如果将所有程序都安装在系统下的默认路径,如:/usr/lib/python2.7/site-packages,当不小心升级了本不该升级的程序时,将会对其他的程序造成影响。
如果想要安装程序并在程序运行时对其库或库的版本进行修改,都会导致程序的中断。
在共享主机时,无法在全局site-packages目录中安装包。
virtualenv将会为它自己的安装目录创建一个环境,这并不与其他virtualenv环境共享库;同时也可以选择性地不连接已安装的全局库。
⑤ pip 与 conda 比较
→ 依赖项检查
pip:
不一定会展示所需其他依赖包。
安装包时或许会直接忽略依赖项而安装,仅在结果中提示错误。
conda:
列出所需其他依赖包。
安装包时自动安装其依赖项。
可以便捷地在包的不同版本中自由切换。
→ 环境管理
pip:维护多个环境难度较大。
conda:比较方便地在不同环境之间进行切换,环境管理较为简单。
→ 对系统自带Python的影响
pip:在系统自带Python中包的**更新/回退版本/卸载将影响其他程序。
conda:不会影响系统自带Python。
→ 适用语言
pip:仅适用于Python。
conda:适用于Python, R, Ruby, Lua, Scala, Java, JavaScript, C/C++, FORTRAN。
⑥ conda与pip、virtualenv的关系
conda结合了pip和virtualenv的功能。
linux系统安装
有两个版本可供选择:Python 3.6 和 Python 2.7。
启动终端,在终端中输入命令md5sum /path/filename或sha256sum /path/filename
注意:将该步骤命令中的/path/filename替换为文件的实际下载路径和文件名。其中,path是路径,filename为文件名。
强烈建议:
路径和文件名中不要出现空格或其他特殊字符。
路径和文件名最好以英文命名,不要以中文或其他特殊字符命名。
根据Python版本的不同有选择性地在终端输入命令:
Python 3.6:bash ~/Downloads/Anaconda3-5.0.1-Linux-x86_64.sh
Python 2.7:bash ~/Downloads/Anaconda2-5.0.1-Linux-x86_64.sh
注意:
首词bash也需要输入,无论是否用的Bash shell。
如果你的下载路径是自定义的,那么把该步骤路径中的~/Downloads替换成你自己的下载路径。
除非被要求使用root权限,否则均选择“Install Anaconda as a user”。
安装过程中,看到提示“In order to continue the installation process, please review the license agreement.”(“请浏览许可证协议以便继续安装。”),点击“Enter”查看“许可证协议”。
在“许可证协议”界面将屏幕滚动至底,输入“yes”表示同意许可证协议内容。然后进行下一步。
安装过程中,提示“Press Enter to accept the default install location, CTRL-C to cancel the installation or specify an alternate installation directory.”(“按回车键确认安装路径,按'CTRL-C'取消安装或者指定安装目录。”)如果接受默认安装路径,则会显示“PREFIX=/home/<user>/anaconda<2 or 3>”并且继续安装。安装过程大约需要几分钟的时间。
建议:直接接受默认安装路径。
安装器若提示“Do you wish the installer to prepend the Anaconda<2 or 3> install location to PATH in your /home/<user>/.bashrc ?”(“你希望安装器添加Anaconda安装路径在/home/<user>/.bashrc文件中吗?”),建议输入“yes”。
注意:
路径/home/<user>/.bash_rc中“<user>”即进入到家目录后你的目录名。
如果输入“no”,则需要手动添加路径,否则conda将无法正常运行。
当看到“Thank you for installing Anaconda<2 or 3>!”则说明已经成功完成安装。
关闭终端,然后再打开终端以使安装后的Anaconda启动。或者直接在终端中输入source ~/.bashrc也可完成启动。
验证安装结果。可选用以下任意一种方法:
在终端中输入命令condal list,如果Anaconda被成功安装,则会显示已经安装的包名和版本号。
在终端中输入python。这条命令将会启动Python交互界面,如果Anaconda被成功安装并且可以运行,则将会在Python版本号的右边显示“Anaconda custom (64-bit)”。退出Python交互界面则输入exit()或quit()即可。
在终端中输入anaconda-navigator。如果Anaconda被成功安装,则Anaconda Navigator将会被启动。
管理conda
conda --version
更新conda至最新版本
conda update conda
查看conda帮助信息
conda --help
或
conda -h
卸载
rm -rf ~/anaconda3
管理环境
创建新环境
conda create --name <env_name> <package_names>
注意:
<env_name>即创建的环境名。建议以英文命名,且不加空格,名称两边不加尖括号“<>”。
<package_names>即安装在环境中的包名。名称两边不加尖括号“<>”。
如果要安装指定的版本号,则只需要在包名后面以=和版本号的形式执行。如:conda create --name python2 python=2.7,即创建一个名为“python2”的环境,环境中安装版本为2.7的python。
如果要在新创建的环境中创建多个包,则直接在<package_names>后以空格隔开,添加多个包名即可。如:conda create -n python3 python=3.5 numpy pandas,即创建一个名为“python3”的环境,环境中安装版本为3.5的python,同时也安装了numpy和pandas。
--name同样可以替换为-n。
提示:默认情况下,新创建的环境将会被保存在/Users/<user_name>/anaconda3/env目录下,其中,<user_name>为当前用户的用户名。
2. 切换环境
① Linux 或 macOS
source activate <env_name>
③ 提示
如果创建环境后安装Python时没有指定Python的版本,那么将会安装与Anaconda版本相同的Python版本,即如果安装Anaconda第2版,则会自动安装Python 2.x;如果安装Anaconda第3版,则会自动安装Python 3.x。
当成功切换环境之后,在该行行首将以“(env_name)”或“[env_name]”开头。其中,“env_name”为切换到的环境名。如:在macOS系统中执行source active python2,即切换至名为“python2”的环境,则行首将会以(python2)开头。
退出环境至root
① Linux 或 macOS
source deactivate
③ 提示
当执行退出当前环境,回到root环境命令后,原本行首以“(env_name)”或“[env_name]”开头的字符将不再显示。
4. 显示已创建环境
conda info --envs
或
conda info -e
或
conda env list
结果中星号“*”所在行即为当前所在环境
5. 复制环境
conda create --name <new_env_name> --clone <copied_env_name>
注意:
<copied_env_name>即为被复制/克隆环境名。环境名两边不加尖括号“<>”。
<new_env_name>即为复制之后新环境的名称。环境名两边不加尖括号“<>”。
如:conda create --name py2 --clone python2,即为克隆名为“python2”的环境,克隆后的新环境名为“py2”。此时,环境中将同时存在“python2”和“py2”环境,且两个环境的配置相同。
6. 删除环境
conda remove --name <env_name> --all
注意:<env_name>为被删除环境的名称。环境名两边不加尖括号“<>”。
管理包
1. 查找可供安装的包版本
① 精确查找
conda search --full-name <package_full_name>
注意:
--full-name为精确查找的参数。
<package_full_name>是被查找包的全名。包名两边不加尖括号“<>”。
例如:conda search --full-name python即查找全名为“python”的包有哪些版本可供安装
② 模糊查找
conda search <text>
注意:<text>是查找含有此字段的包名。此字段两边不加尖括号“<>”。
例如:conda search py即查找含有“py”字段的包,有哪些版本可供安装。
2. 获取当前环境中已安装的包信息
conda list
执行上述命令后将在终端显示当前环境已安装包的包名及其版本号
3. 安装包
① 在指定环境中安装包
conda install --name <env_name> <package_name>
注意:
<env_name>即将包安装的指定环境名。环境名两边不加尖括号“<>”。
<package_name>即要安装的包名。包名两边不加尖括号“<>”。
例如:conda install --name python2 pandas即在名为“python2”的环境中安装pandas包。
② 在当前环境中安装包
conda install <package_name>
注意:
<package_name>即要安装的包名。包名两边不加尖括号“<>”。
执行命令后在当前环境中安装包。
例如:conda install pandas即在当前环境中安装pandas包。
③ 使用pip安装包
→ 使用场景
当使用conda install无法进行安装时,可以使用pip进行安装。例如:see包。
→ 命令
pip install <package_name>
注意:<package_name>为指定安装包的名称。包名两边不加尖括号“<>”。
如:pip install see即安装see包。
注意
pip只是包管理器,无法对环境进行管理。因此如果想在指定环境中使用pip进行安装包,则需要先切换到指定环境中,再使用pip命令安装包。
pip无法更新python,因为pip并不将python视为包。
pip可以安装一些conda无法安装的包;conda也可以安装一些pip无法安装的包。因此当使用一种命令无法安装包时,可以尝试用另一种命令
④ 从Anaconda.org安装包
→ 使用场景
当使用conda install无法进行安装时,可以考虑从Anaconda.org中获取安装包的命令,并进行安装。
→ 注意
从Anaconda.org安装包时,无需注册。
在当前环境中安装来自于Anaconda.org的包时,需要通过输入要安装的包在Anaconda.org中的路径作为获取途径(channel)。查询路径的方式如下:
在浏览器中输入:http://anaconda.org,或直接点击Anaconda.org
在新页面“Anaconda Cloud”的上方搜索框中输入要安装的包名,然后点击右边“放大镜”标志。
搜索结果中有数以千计的包可供选择,此时点击“Downloads”可根据下载量进行排序,最上面的为下载最多的包。
选择满足需求的包或下载量最多的包,点击包名。
复制“To install this package with conda run:”下方的命令,并粘贴在终端中执行。
4. 卸载包
① 卸载指定环境中的包
conda remove --name <env_name> <package_name>
注意:
<env_name>即卸载包所在指定环境的名称。环境名两边不加尖括号“<>”。
<package_name>即要卸载包的名称。包名两边不加尖括号“<>”。
例如:conda remove --name python2 pandas即卸载名为“python2”中的pandas包。
② 卸载当前环境中的包
conda remove <package_name>
注意:
<package_name>即要卸载包的名称。包名两边不加尖括号“<>”。
执行命令后即在当前环境中卸载指定包。
例如:conda remove pandas即在当前环境中卸载pandas包。
5. 更新包
① 更新所有包
conda update --all
或
conda upgrade --all
建议:在安装Anaconda之后执行上述命令更新Anaconda中的所有包至最新版本,便于使用。
② 更新指定包
conda update <package_name>
或
conda upgrade <package_name>
注意:
<package_name>为指定更新的包名。包名两边不加尖括号“<>”。
更新多个指定包,则包名以空格隔开,向后排列。如:conda update pandas numpy matplotlib即更新pandas、numpy、matplotlib包。