docker挂载NVIDIA显卡运行pytorch
$ uname -a
Linux CentOS 3.10.-514.26..el7.x86_64 # SMP Tue Jul :: UTC x86_64 x86_64 x86_64 GNU/Linux
$ cat /usr/local/cuda/version.txt
CUDA Version 8.0.
$ cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A
#define CUDNN_MAJOR 6
#define CUDNN_MINOR 0
#define CUDNN_PATCHLEVEL 21
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)
#include "driver_types.h"
# NVIDIA 1080ti
$ ls -la /dev | grep nvidia
crw-rw-rw- root root , Nov : nvidia0
crw-rw-rw- root root , Nov : nvidia1
crw-rw-rw- root root , Nov : nvidiactl
crw-rw-rw- root root , Nov : nvidia-uvm
crw-rw-rw- root root , Nov : nvidia-uvm-tools
电脑上装了两个显卡。我需要运行pytorch,dockerhub中pytorch官方镜像没有gpu支持,所以只能先pull一个anaconda镜像试试,后面可以编排成Dockerfile。
$ docker run -it -d --rm --name pytorch -v /home/qiyafei/pytorch:/mnt/home --privileged=true --device /dev/nvidia-uvm:/dev/nvidia-uvm --device /dev/nvidia1:/dev/nvidia1 --device /dev/nvidiactl:/dev/nvidiactl okwrtdsh/anaconda3 bash
$ conda install pytorch torchvision -c pytorch

$ sudo rpm -i nvidia-docker-1.0.-.x86_64.rpm && rm nvidia-docker-1.0.-.x86_64.rpm
$ sudo systemctl start nvidia-docker
$ docker pull nvidia/cuda
$ nvidia-docker run --rm nvidia/cuda nvidia-smi
在容器内测试是可以成功使用nvidia显卡的:

- 合适的镜像:这里推荐Floydhub的pytorch,注意对应的cuda和cudnn版本。
docker pull floydhub/pytorch:0.3.-gpu.cuda8cudnn6-py3.
nvidia-docker run -ti -d --rm floydhub/pytorch:0.3.-gpu.cuda8cudnn6-py3. bash

.png)
- 自制dockerfile
deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
deb http://archive.canonical.com/ubuntu xenial partner
deb-src http://archive.canonical.com/ubuntu xenial partner
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse
$ vim Dockerfile FROM nvidia/cuda
LABEL author="qyf"
ENV PYTHONIOENCODING=utf-
RUN mv /etc/apt/sources.list /etc/apt/sources.list.bak
ADD $PWD/sources.list /etc/apt/sources.list
RUN apt-get update --fix-missing && \
apt-get install -y vim net-tools curl wget git bzip2 ca-certificates libglib2.- libxext6 libsm6 libxrender1 mercurial subversion apt-transport-https software-properties-common
RUN apt-get install -y openssh-server -y
RUN echo 'root:passwd' | chpasswd
RUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
RUN sed -i 's/#PasswordAuthentication yes/PasswordAuthentication yes/' /etc/ssh/sshd_config
RUN echo 'export PATH=/opt/conda/bin:$PATH' > /etc/profile.d/conda.sh && wget --quiet https://repo.continuum.io/archive/Anaconda3-5.0.1-Linux-x86_64.sh -O ~/anaconda.sh && /bin/bash ~/anaconda.sh -b -p /opt/conda && rm ~/anaconda.sh
ENV PATH /opt/conda/bin:$PATH
RUN conda install pytorch torchvision -c pytorch -y
ENTRYPOINT [ "/usr/bin/tini", "--" ]
CMD [ "/bin/bash" ]
docker build -t pytorch/cuda8 ./
.png)


.png)

.png)
docker挂载NVIDIA显卡运行pytorch的更多相关文章
- docker 使用 Nvidia 显卡
docker19.03读取NVIDIA显卡 作者: 张首富 时间: 2019-09-06 w x: y18163201 前言 2019年7月的docker 19.03已经正式发布了,这次发布对我来说有 ...
- Linux 桌面玩家指南:11. 在同一个硬盘上安装多个 Linux 发行版以及为 Linux 安装 Nvidia 显卡驱动
特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...
- CentOS 7.0 Nvidia显卡安装步骤
from: http://blog.sina.com.cn/s/blog_49c0985a0102v3fa.html CentOS 7.0 Nvidia显卡安装步骤: 1 在英伟达官网下载相应驱动 搜 ...
- 使用 Docker 搭建 Java Web 运行环境
黄勇的博客 Docker 是 2014 年最为火爆的技术之一,几乎所有的程序员都听说过它.Docker 是一种“轻量级”容器技术,它几乎动摇了传统虚拟化技术的地位,现在国内外已经有越来越多的公司开始逐 ...
- ubuntu13.04 Thinkpad W520安装nvidia显卡驱动
Ubuntu13.04 amd64 Thinkpad W520安装Nvidia显卡驱动 曾经在ubuntu11.10上成功安装Nvidia显卡驱动.但是自从机器(Thinkpad W520)更新到13 ...
- Linux操作系统安装Nvidia显卡驱动
一直以来,Linux分支系统使用过程中都有驱动适配麻烦,完全适配的驱动也不多.对于Nvidia显卡而言,一般Linux各分支操作系统虽然提供了N卡开源驱动工程Nouveau,但是性能上还是有待提高.下 ...
- Ubuntu下安装nvidia显卡驱动
layout: post title: Ubuntu下安装nvidia显卡驱动 date: 2015-10-02 17:19:06 categories: 常用命令 tags: 显卡 驱动 最近一直在 ...
- 转:使用 Docker 搭建 Java Web 运行环境
原文来自于:http://www.codeceo.com/article/docker-java-web-runtime.html Docker 是 2014 年最为火爆的技术之一,几乎所有的程序员都 ...
- NVIDIA 显卡温度提示过高,显卡温度高99度怎么办?
你可能没有在意您的NVIDIA(英伟达)显卡温度,那么你就不会知道显卡温度过高如何导致的呢?也不会知道如果去解决显卡温度过高的问题了,在此我希望在电脑玩游戏或者在办公中电脑速度快慢,或者发热的情况下, ...
随机推荐
- 固定sql语句传参批量查询数据库脚本
#!/usr/bin/env python # encoding: utf-8 import pandas as pd import psycopg2 conn_dv = psycopg2.conne ...
- 记一次lvs-tunnel模式的故障分析(7)
一.测试环境 类型 IP 负载均衡器 eth0:10.20.73.20 VIP eth0:0 10.20.73.29 后端真实机 10.0.0.7(web01).10.0.0.9(web02) ...
- 格式化 输出 while ,else ASCII码 ,字节转换 ,逻辑运算
python (占位符) % (求余数) 示例 name = input("请输入你的名字") age =int(input("请输入你的年龄")) hei ...
- spring中Order注解
Spring在加载Bean的时候,有用到order注解. PS:顾名思义,Order是顺序,此注解可操作于类.方法.字段,当作用在类时,值越小,则加载的优先级越高! @Retention(Retent ...
- bzoj 4605: 崂山白花蛇草水
Description 神犇Aleph在SDOI Round2前立了一个flag:如果进了省队,就现场直播喝崂山白花蛇草水.凭借着神犇Aleph的实 力,他轻松地进了山东省省队,现在便是他履行诺言的时 ...
- UVA 572 dfs求连通块
The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSu ...
- JAVA爬虫实践(实践一:知乎)
爬虫顺序 1.分析网站网络请求 通过浏览器F12开发者工具查看网站的内容获取方式. 2.模拟HTTP请求,获取网页内容. 可以采用HttpClient,利用JAVA HttpClient工具可以模拟H ...
- 【LeetCode】476. Number Complement (java实现)
原题链接 https://leetcode.com/problems/number-complement/ 原题 Given a positive integer, output its comple ...
- [国嵌攻略][077][Linux时间编程]
时间类型 Coordinated Universal Time(UTC):世界标准时间,也就是格林威治时间(Greenwich Mean Time, GMT). Calendar Time:日历时间, ...
- CentOS系统下Redis安装和自启动配置的步骤
相信大家都知道Redis是一个C实现的基于内存.可持久化的键值对数据库,在分布式服务中常作为缓存服务.所以这篇文章将详细介绍在CentOS系统下如何从零开始安装到配置启动服务.有需要的可以参考借鉴. ...