Pio*_*zyn 6 gpu machine-learning docker amazon-elastic-beanstalk
我只是想与社区分享我如何设法在 AWS Elastic Beanstalk 上的 Docker 容器中运行 GPU 加速应用程序。我花了将近两天的时间反复试验,所以我希望其他人不要浪费时间在这里发表这篇文章。
这些是我的 Elastic Beanstalk 环境的设置:
ami-068d6d02d8775ec52g3s.xlarge它,因为它足以满足我需要做的事情。Dockerfile添加以下几行:ENV NVIDIA_VISIBLE_DEVICES all
ENV NVIDIA_DRIVER_CAPABILITIES compute,utility
Run Code Online (Sandbox Code Playgroud)
.ebextensions/01-nvidia-docker.config文件并粘贴以下代码:option_settings:
aws:autoscaling:launchconfiguration:
# I had to increase storage space for the docker to run my container
BlockDeviceMappings: /dev/xvdcz=:24:true
commands:
configure_docker_run:
# I had to update EB startup script so it passes `--runtime=nvidia` when running docker
command: sed -i 's/docker run -d/docker run --runtime=nvidia -d/' /opt/elasticbeanstalk/hooks/appdeploy/enact/00run.sh
# Following line will be required if docker is updated to 19.1
# command: sed -i 's/docker run --gpus all -d/docker run -d/' /opt/elasticbeanstalk/hooks/appdeploy/enact/00run.sh
Run Code Online (Sandbox Code Playgroud)
瞧,您可以在启用 NVIDIA GPU 的情况下享受在 Elastic Beanstalk 上运行的 Docker 容器。
小智 2
将深度学习 AMI 与 Beanstalk 结合使用可能无法使用某些 Beanstalk 功能,例如运行状况监控、带有工作环境的 sqsd。就我而言,我从 Beanstalk docker AMI 构建了一个自定义 AMI,并使用启用了 GPU 的 docker-compose 部署了应用程序。详情如下:
sudo yum install -y gcc kernel-devel-$(uname -r)
aws s3 cp --recursive s3://nvidia-gaming/linux/latest/ .
chmod +x NVIDIA-Linux-x86_64*.run
sudo ./NVIDIA-Linux-x86_64*.run
nvidia-smi
Run Code Online (Sandbox Code Playgroud)
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 clean expire-cache
sudo yum install nvidia-docker2
Run Code Online (Sandbox Code Playgroud)
services:
test:
image: nvidia/cuda:10.2-base
command: nvidia-smi
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
Run Code Online (Sandbox Code Playgroud)
注意:对于 beanstalk 工作人员 ( https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_docker.container.console.html )
如果您使用 Docker Compose 管理 Docker 环境,Elastic Beanstalk 会假定您将代理服务器作为容器运行。因此,代理服务器设置默认为 None,并且 Elastic Beanstalk 不提供 NGINX 配置
sudo systemctl start nginx)| 归档时间: |
|
| 查看次数: |
1085 次 |
| 最近记录: |