使用Azure容器实例和GPU的模型培训比使用相同容器的本地测试慢得多

问题描述 投票:0回答:1

我正在尝试使用我构建的容器来训练Yolo计算机视觉模型,该容器包括Darknet的安装。容器使用的是Nvidia提供的基本映像:nvcr.io/nvidia/cuda:9.0-devel-ubuntu16.04

在我的本地计算机上使用带有gtx 1080 ti的Nvidia-Docker,训练运行得非常快,但是与具有P100 gpu的Azure容器实例一样运行的同一容器训练非常缓慢。这几乎就好像没有使用gpu一样。我还注意到“nvidia-smi”命令在Azure中运行的容器中不起作用,但是当我将ssh插入在我的机器上本地运行的容器时它确实有效。

这是我正在使用的Dockerfile

FROM nvcr.io/nvidia/cuda:9.0-devel-ubuntu16.04
LABEL maintainer="[email protected]" \
      description="Pre-Configured Darknet Machine Learning Environment" \
      version=1.0

# Container Dependency Setup
RUN apt-get update
RUN apt-get upgrade -y
RUN apt-get install software-properties-common -y
RUN apt-get install vim -y
RUN apt-get install dos2unix -y
RUN apt-get install git -y
RUN apt-get install wget -y
RUN apt-get install python3-pip -y
RUN apt-get install libopencv-dev -y

# setup virtual environment
WORKDIR /
RUN pip3 install virtualenv
RUN virtualenv venv
WORKDIR venv
RUN mkdir notebooks
RUN mkdir data
RUN mkdir output


# Install Darknet
WORKDIR /venv
RUN git clone https://github.com/AlexeyAB/darknet
RUN sed -i 's/GPU=0/GPU=1/g' darknet/Makefile
RUN sed -i 's/OPENCV=0/OPENCV=1/g' darknet/Makefile
WORKDIR /venv/darknet
RUN make

# Install common pip packages
WORKDIR /venv
COPY requirements.txt ./
RUN . /venv/bin/activate && pip install -r requirements.txt

# Setup Environment
EXPOSE 8888
VOLUME ["/venv/notebooks", "/venv/data", "/venv/output"]
CMD . /venv/bin/activate && jupyter notebook --ip=0.0.0.0 --port=8888 --allow-root

requirements.txt文件如下所示:

jupyter
matplotlib
numpy
opencv-python
scipy
pandas
sklearn
azure yolo darknet azure-container-instances nvidia-docker
1个回答
0
投票

问题是我的培训数据是在Azure文件共享卷上,并且网络延迟导致培训缓慢。我将数据从共享复制到我的容器中,然后将训练指向它,一切运行得更快。

© www.soinside.com 2019 - 2024. All rights reserved.