zoukankan      html  css  js  c++  java
  • docker中使用gpu(darknet-yolo,tensorflow)

    (1)安装nvidia-docker
      nvidia-docker其实是docker引擎的一个应用插件,专门面向NVIDIA GPU,因为docker引擎是不支持NVIDIA驱动的,安装插件后可以在用户层上直接使用cuda。具体看上图。这个图很形象,docker引擎的运行机制也表现出来了,就是在系统内核之上通过cgroup和namespace虚拟出一个容器OS的用户空间,我不清楚这是否运行在ring0上,但是cuda和应用确实可以使用了(虚拟化的问题,如果关心此类问题可以了解一些关于docker、kvm等等虚拟化的实现方式,目前是系统类比较火热的话题)
      这里也可以通过添加apt或者yum sourcelist的方式进行安装
    $ 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
     
    (3)启动容器测试
    nvidia-docker run -v /home/dwai/tensorflow_container/:/tensorflow_container  --rm -it nvidia/cuda:10.0-cudnn7-devel-ubuntu18.04 bash

    下载了一份darknet的样例(关于darknet),在不使用GPU的情况下耗时22s,使用GPU的情况下耗时0.04s

    修改Makefile,GPU=1,CUDNN=1

    #修改cuda路径
    NVCC=/usr/local/cuda-9.0/bin/nvcc #即改为本机CUDA安装地址

    测试:

    ./detect cfg/yolov3.cfg ../darknet_weights/yolov3.weights data/dog.jpg

    效果:

    (4)在容器中使用tensorflow-gpu

    拉取镜像

     启动容器

    sudo docker run --name=dw_contatiner --runtime=nvidia --privileged=true -v /home/dwai/tensorflow_container/:/tf/tensorflow-tutorials/tensorflow_container -p 8888:8888 -p 5000:5000 -d tensorflow/tensorflow:nightly-gpu-py3-jupyter

    进入jupyter

    sudo docker exec dw_contatiner jupyter notebook list

     输入密码:dfc1c647055ec0a17168ac4260efc64fb44cabafe649d188

    sess = tf.Session(config= tf.ConfigProto(log_device_placement=True))

     使用gpu成功

  • 相关阅读:
    我劝你不要记账
    富人不存钱
    1w+的心路历程
    简历这么写才对!
    Android 开发凉了吗!
    三个思维转变
    说一说赚钱
    【原】Effective Objective-C 2.0 编写高质量iOS与OS X代码的52个有效方法(Matt Galloway著)读书笔记(二)
    【原】Effective Objective-C 2.0 编写高质量iOS与OS X代码的52个有效方法(Matt Galloway著)读书笔记(一)
    【原】iOS开发进阶(唐巧)读书笔记(二)
  • 原文地址:https://www.cnblogs.com/answerThe/p/11479618.html
Copyright © 2011-2022 走看看