centos7环境创建cuda环境&&创建insightface

╄→尐↘猪︶ㄣ 提交于 2020-10-26 05:41:33

(1)docker 版本

https://github.com/NVIDIA/nvidia-docker

CentOS 7.X/8.X (docker-ce), RHEL 7.X/8.X (docker-ce), Amazon Linux 1/2

distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | sudo tee /etc/yum.repos.d/nvidia-docker.repo

sudo yum install -y nvidia-container-toolkit
sudo systemctl restart docker

针对 19.03之前 的docker版本:(其实大多数都低于这个版本啊)

Upgrading with nvidia-docker2 (Deprecated) 

sudo yum upgrade -y nvidia-docker2
sudo systemctl restart docker

(2)成熟的docker版本

https://hub.docker.com/r/nvidia/cuda

 

根据这里的dockerfile文件,可以很容易构建成熟的版本;但是centos7的官方版本,却在这里没有提供 。虽然有dockerfile文件,但是在执行的时候,却会报没有这个版本:

 

但是,我们可以在tags页面找到我们想要的:

 

nvidia-docker run --name=cuda -itd nvidia/cuda:10.1-devel-centos7

跑了这个后,我们可以在里面nvidia-smi查到相应的GPU信息。

(3)测试下测试GPU的程序 

还可以运行测试程序

import tensorflow as tf
import os

os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'  # 不显示等级2以下的提示信息

print('GPU', tf.test.is_gpu_available())

a = tf.constant(2.0)
b = tf.constant(4.0)
print(a + b)

(4) 增加insight-face所需要的模块:

暂时使用anaconda来增加。 

  在deploy ,src 拷进容器后进行运行的尝试,进行总结后,需要安装的模块:

conda install tensorflow-gpu
conda install mxnet-gpu
conda install -c conda-forge opencv
conda install -c anaconda scikit-learn
conda install easydict -c conda-forge
 conda install scikit-image
conda install flask





(5)保存镜像:

 docker commit -a 'dualven' -m 'insight-face env' cuda dualvenregistry:5000/cuda10.1-centos7-insight:v1

oh ,mygod ,太大了;进去分析 ,主要是安装的lib,及so太大了。 很多。 

 

(6) 新建insigh-face  dockerfile

FROM dualvenregistry:5000/cuda10.1-centos7-insight:v1

ENV PATH /root/anaconda3/bin:/root/anaconda3/condabin:$PATH
RUN mkdir /app
WORKDIR /app

COPY ./src /app/src
COPY ./start.sh /app/
ENTRYPOINT [ "/app/start.sh" ]

下面是start.sh

#!/bin/bash  这个必须
echo $PATH
source activate 这个不激活,conda activate dualven3.6也没法用。
conda deactivate


conda activate dualven3.6
python src/api/app.py

建立版本:dualvenregistry:5000/in-face:v1 

docker build -t dualvenregistry:5000/in-face:v1 .

 

(7)  运行镜像,形成实例 in-face-1

nvidia-docker run -itd --name=in-face-1 -v /data/test/cuda/start.sh:/app/start.sh -v /data/test/cuda/src:/app/src -p 18080:18080 dualvenregistry:5000/in-face:v1 

GPU已经在用

(8) 测试下:用的时长还是很长。

 

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!