Mik*_*ike 7 gpu amazon-ec2 amazon-web-services amazon-ecs
我已经配置了一个在具有单个 GPU 的 g4dn.xlarge 实例上运行的 ECS 服务。在任务定义中,我指定了使用一个 GPU 的容器定义资源要求,如下所示:
"resourceRequirements": [
{
"type":"GPU",
"value": "1"
}
]
Run Code Online (Sandbox Code Playgroud)
在此实例上运行一项任务和一个容器效果很好。当我将服务的所需任务计数设置为 2 时,我在服务上收到一个事件,其中指出:
服务无法放置任务,因为没有容器实例满足其所有要求。最接近的匹配容器实例没有足够的可用 GPU 资源。
根据AWS 文档:
Amazon ECS 将调度可用的支持 GPU 的容器实例,并将物理 GPU 固定到适当的容器,以获得最佳性能。
是否有任何方法可以覆盖此默认行为并强制 ECS 允许多个容器实例共享单个 GPU?
我不相信我们会遇到共享性能问题,因为我们计划使用每个容器进行 H264 编码 (nvenc),这不是 CUDA。如果有人可以指导我查看有关共享 GPU 的容器上的 CUDA 性能的文档,我也将不胜感激。
小智 6
技巧是如果适合您的使用,默认为所有容器启用 nvidia docker 运行时
基于 Amazon AMI amazon/amzn2-ami-ecs-gpu-hvm-2.0.20200218-x86_64-ebs
,连接到实例并添加以下配置:
sudo cat <<"EOF" > /etc/docker/daemon.json
{
"default-runtime": "nvidia",
"runtimes": {
"nvidia": {
"path": "/etc/docker-runtimes.d/nvidia"
}
}
}
EOF
sudo pkill -SIGHUP dockerd
tail -10 /var/log/messages
Run Code Online (Sandbox Code Playgroud)
创建新的 AMI,并且不要在 GPU 容器定义上指定任何值。
归档时间: |
|
查看次数: |
2643 次 |
最近记录: |