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成功

  • 相关阅读:
    mogodb优化
    uuid
    ssl详解
    探究rh6上mysql5.6的主从、半同步、GTID多线程、SSL认证主从复制
    CMAKE MYSQL
    证书生成
    叶金荣主页
    mysqlslap
    sysbench 测试MYSQL
    mysql实验室
  • 原文地址:https://www.cnblogs.com/answerThe/p/11479618.html
Copyright © 2011-2022 走看看