亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 服務器 > Web服務器 > 正文

docker掛載NVIDIA顯卡運行pytorch的方法

2024-09-01 13:53:45
字體:
來源:轉載
供稿:網友

寫在前面:

  請參考之前的文章安裝好CentOS、NVIDIA相關驅動及軟件、docker及加速鏡像。

  主機運行環境

$ uname -aLinux CentOS 3.10.0-514.26.2.el7.x86_64 #1 SMP Tue Jul 4 15:04:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux$ cat /usr/local/cuda/version.txtCUDA Version 8.0.61$ cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2#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 

一、關于GPU的掛載

1. 在docker運行時指定device掛載

  先查看一下有哪些相關設備

$ ls -la /dev | grep nvidiacrw-rw-rw-  1 root root  195,  0 Nov 15 13:41 nvidia0crw-rw-rw-  1 root root  195,  1 Nov 15 13:41 nvidia1crw-rw-rw-  1 root root  195, 255 Nov 15 13:41 nvidiactlcrw-rw-rw-  1 root root  242,  0 Nov 15 13:41 nvidia-uvmcrw-rw-rw-  1 root root  242,  1 Nov 15 13:41 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

  okwrtdsh的鏡像似乎是針對他們實驗室GPU環境的,有點過大了,不過勉強運行一下還是可以的。在容器內部還需要

安裝pytorch:

$ conda install pytorch torchvision -c pytorch

  這里運行torch成功,但是加載顯卡失敗了,可能還是因為驅動不匹配的原因吧,需要重新安裝驅動,暫時不做此嘗試; 

二、通過nvidia-docker在docker內使用顯卡

docker,pytorch

詳細信息:https://github.com/NVIDIA/nvidia-docker

(1)安裝nvidia-docker

  nvidia-docker其實是docker引擎的一個應用插件,專門面向NVIDIA GPU,因為docker引擎是不支持NVIDIA驅動的,安裝插件后可以在用戶層上直接使用cuda。具體看上圖。這個圖很形象,docker引擎的運行機制也表現出來了,就是在系統內核之上通過cgroup和namespace虛擬出一個容器OS的用戶空間,我不清楚這是否運行在ring0上,但是cuda和應用確實可以使用了(虛擬化的問題,如果關心此類問題可以了解一些關于docker、kvm等等虛擬化的實現方式,目前是系統類比較火熱的話題)

  下載rpm包:https://github.com/NVIDIA/nvidia-docker/releases/download/v1.0.1/nvidia-docker-1.0.1-1.x86_64.rpm

  這里也可以通過添加apt或者yum sourcelist的方式進行安裝,但是我沒有root權限,而且update容易引起docker重啟,如果不是實驗室的個人環境不推薦這么做,防止破壞別人正在運行的程序(之前公司一個小伙子就是在阿里云上進行了yum update,結果導致公司部分業務停了一個上午)。

$ sudo rpm -i nvidia-docker-1.0.1-1.x86_64.rpm && rm nvidia-docker-1.0.1-1.x86_64.rpm$ sudo systemctl start nvidia-docker

(2)容器測試

  我們還需要NVIDIA官方提供的docker容器nvidia/cuda,里面已經編譯安裝了CUDA和CUDNN,或者直接run,缺少image的會自動pull。

$ docker pull nvidia/cuda$ nvidia-docker run --rm nvidia/cuda nvidia-smi

   在容器內測試是可以成功使用nvidia顯卡的:

docker,pytorch

(3)合適的鏡像或者自制dockerfile

合適的鏡像:這里推薦Floydhub的pytorch,注意對應的cuda和cudnn版本。

docker pull floydhub/pytorch:0.3.0-gpu.cuda8cudnn6-py3.22nvidia-docker run -ti -d --rm floydhub/pytorch:0.3.0-gpu.cuda8cudnn6-py3.22 bash

docker,pytorchdocker,pytorch

自制dockerfile

  首先,我們需要把要裝的東西想清楚:

  1. 基礎鏡像肯定是NVIDIA官方提供的啦,最省事,不用裝cuda和cudnn了;

  2. vim、git、lrzsz、ssh這些肯定要啦;

  3. anaconda、pytorch肯定要啦;

  所以需要準備好國內源source.list,否則安裝速度很慢。

deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-propertiesdeb http://mirrors.aliyun.com/ubuntu/ xenial main restricteddeb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-propertiesdeb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricteddeb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-propertiesdeb http://mirrors.aliyun.com/ubuntu/ xenial universedeb http://mirrors.aliyun.com/ubuntu/ xenial-updates universedeb http://mirrors.aliyun.com/ubuntu/ xenial multiversedeb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiversedeb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-propertiesdeb http://archive.canonical.com/ubuntu xenial partnerdeb-src http://archive.canonical.com/ubuntu xenial partnerdeb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricteddeb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-propertiesdeb http://mirrors.aliyun.com/ubuntu/ xenial-security universedeb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse

  下載anaconda的地址:https://repo.continuum.io/archive/Anaconda3-5.0.1-Linux-x86_64.sh,這里直接在Dockerfile里下了,具體如下:

$ vim DockerfileFROM nvidia/cudaLABEL author="qyf"ENV PYTHONIOENCODING=utf-8RUN mv /etc/apt/sources.list /etc/apt/sources.list.bakADD $PWD/sources.list /etc/apt/sources.listRUN apt-get update --fix-missing && /  apt-get install -y vim net-tools curl wget git bzip2 ca-certificates libglib2.0-0 libxext6 libsm6 libxrender1 mercurial subversion apt-transport-https software-properties-commonRUN apt-get install -y openssh-server -yRUN echo 'root:passwd' | chpasswdRUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_configRUN sed -i 's/#PasswordAuthentication yes/PasswordAuthentication yes/' /etc/ssh/sshd_configRUN 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.shRUN apt-get install -y grep sed dpkg && /  TINI_VERSION=`curl https://github.com/krallin/tini/releases/latest | grep -o "/v.*/"" | sed 's:^../(.*/).$:/1:'` && /  curl -L "https://github.com/krallin/tini/releases/download/v${TINI_VERSION}/tini_${TINI_VERSION}.deb"; > tini.deb && /  dpkg -i tini.deb && /  rm tini.deb && /  apt-get cleanENV PATH /opt/conda/bin:$PATHRUN conda install pytorch torchvision -c pytorch -yENTRYPOINT [ "/usr/bin/tini", "--" ]CMD [ "/bin/bash" ]

  通過docker build構造鏡像:

docker build -t pytorch/cuda8 ./

  運行成功調用cuda?!?/p>

docker,pytorch  

三、關于一些bug

  這里有部分debian的配置,我照著dockerhub上anaconda鏡像抄的,這里就不再配置了,反正跑起來后有鏡像也可以用。系統隨后可能會出現錯誤:

kernel:unregister_netdevice: waiting for lo to become free. Usage count = 1

docker,pytorchdocker,pytorch  

  這是一個Ubuntu的內核錯誤,截止到到目前為止似乎還沒完全解決。

docker,pytorchdocker,pytorch  

  這個小哥給出了一個解決方案,至少他給出的錯誤原因我是相信的:是由內核的TCP套接字錯誤引發的。這里我給出一些思考,關于上面的結構圖,在顯卡上,通過nvidia-docker,docker之上的容器可以使用到底層顯卡(驅動顯然是在docker之下的),而TCP套接字,我猜測也是這種使用方法,而虛擬出來的dockerOS,應該是沒有權限來訪問宿主機內核的,至少內核限制了部分權限。這位小哥給出了測試內核,如果有興趣可以去幫他測試一下:https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1711407/comments/46。

總結

以上所述是小編給大家介紹的docker掛載NVIDIA顯卡運行pytorch的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VEVB武林網網站的支持!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美一级片久久久久久久| 欧美一区二区视频97| 午夜精品一区二区三区在线| 亚洲一区二区三区在线免费观看| 日韩av在线免费观看一区| 亚洲欧美在线一区二区| 538国产精品一区二区免费视频| 久久久亚洲欧洲日产国码aⅴ| 日本欧美中文字幕| 91成人在线视频| 亚洲一区二区三区视频播放| 黄色一区二区在线| 国产精品专区第二| 亚洲一区二区免费| 久久精品国产91精品亚洲| 精品久久久久久久久久久久久久| 亚洲精品二三区| 欧美国产精品日韩| 性色av一区二区三区| 黑人欧美xxxx| 日韩精品在线观看一区| 91理论片午午论夜理片久久| 欧美日韩一区二区精品| 国产精品免费小视频| 91精品国产91久久久久久不卡| 中文字幕亚洲欧美日韩2019| 日韩精品在线免费观看| 亚洲理论在线a中文字幕| www高清在线视频日韩欧美| 美女黄色丝袜一区| 欧美成人国产va精品日本一级| 日韩有码在线观看| 国产男女猛烈无遮挡91| 黑人极品videos精品欧美裸| 亚洲国产三级网| 亚洲综合第一页| 欧洲中文字幕国产精品| 亚洲www永久成人夜色| 成人国产精品久久久久久亚洲| 琪琪第一精品导航| 91丝袜美腿美女视频网站| 国产精品视频公开费视频| 亚洲综合色av| 啊v视频在线一区二区三区| 97人洗澡人人免费公开视频碰碰碰| 国产精品美女呻吟| www日韩中文字幕在线看| 精品中文字幕在线2019| 91精品国产99| 亚洲国产精品久久久久秋霞蜜臀| 亚洲人永久免费| 激情懂色av一区av二区av| 成人美女免费网站视频| 91沈先生作品| 久久精品国产96久久久香蕉| 国产精品吹潮在线观看| 欧美极品少妇xxxxⅹ免费视频| 久久精品亚洲国产| 亚洲小视频在线观看| 国产日韩一区在线| 久久久久久香蕉网| xxx欧美精品| 欧美精品在线第一页| 中日韩美女免费视频网址在线观看| 中文字幕欧美在线| 亚洲欧洲国产一区| 96pao国产成视频永久免费| 国产精品久久激情| 精品国产户外野外| 国产成人精品综合久久久| 91夜夜未满十八勿入爽爽影院| 日本亚洲欧美三级| 欧美另类在线观看| 久久久久久91| 九九热精品视频国产| 日韩电影免费观看在线| 国产69精品久久久久9999| 国产欧美日韩中文字幕在线| 亚洲视频电影图片偷拍一区| 91精品久久久久久久久久另类| 久久久久久久久久久国产| 高跟丝袜一区二区三区| 91在线|亚洲| 欧美激情综合色综合啪啪五月| 亚洲美女黄色片| 亚洲国产日韩精品在线| 亚洲精品美女在线观看| 国产成人91久久精品| 日韩风俗一区 二区| 中文字幕亚洲自拍| 国产欧美欧洲在线观看| 欧美黄色免费网站| 国产精品久久久久久一区二区| 亚洲人av在线影院| 欧美在线视频免费播放| 日av在线播放中文不卡| 日韩少妇与小伙激情| 国产精品日日摸夜夜添夜夜av| 久久韩剧网电视剧| 久久精品99久久久香蕉| 97人洗澡人人免费公开视频碰碰碰| 亚洲男子天堂网| 久久国产精品偷| 久久av中文字幕| 欧美日韩精品在线观看| 欧美在线视频一区二区| 亚洲国产精品推荐| 欧美高跟鞋交xxxxhd| 欧美风情在线观看| 亚洲精品ady| 久久久91精品国产一区不卡| 国产精品美女久久| 在线亚洲男人天堂| 国产精品久久99久久| 97久久久久久| 91sao在线观看国产| 色琪琪综合男人的天堂aⅴ视频| 亚洲摸下面视频| 亚洲精品国产免费| 亚洲性无码av在线| 国产成人一区二区三区小说| 狠狠色狠狠色综合日日小说| 欧美xxxx18国产| 精品亚洲精品福利线在观看| 亚洲色图日韩av| 大桥未久av一区二区三区| 久久精视频免费在线久久完整在线看| 国产精品pans私拍| 日韩欧美高清在线视频| 日韩亚洲欧美中文高清在线| 一个色综合导航| 亚洲激情在线视频| 伊人久久久久久久久久久久久| 成人福利网站在线观看11| 日韩精品视频中文在线观看| 久久久噜噜噜久久久| 2020国产精品视频| 亚洲第一页自拍| 精品成人在线视频| 午夜精品视频网站| 国产精品欧美一区二区三区奶水| 欧美精品www在线观看| 78色国产精品| 韩国三级电影久久久久久| 欧美福利视频网站| 777精品视频| 最新中文字幕亚洲| 色婷婷av一区二区三区在线观看| 成人黄色av播放免费| 久久久久久香蕉网| 欧美日韩在线免费观看| 亚洲人成电影网站色…| 国产91色在线免费| 国产美女扒开尿口久久久| 欧美亚洲伦理www| 国产精品成人在线| 97视频免费在线看| 97在线日本国产| 亚洲女人天堂成人av在线| 国产成人午夜视频网址| 精品亚洲男同gayvideo网站| 欧洲永久精品大片ww免费漫画| 亚洲va欧美va国产综合剧情| 91久久精品国产91久久性色|