首页 > 解决方案 > 为什么我无法创建附加推理加速器的 ECS 任务定义?

问题描述

我想尝试将推理加速器附加到 ECS 任务。我创建了以下 Cloudformation 模板:

{
    "Resources": {
        "Task": {
          "Type" : "AWS::ECS::TaskDefinition",
          "Properties" : {
              "ContainerDefinitions" : [
                  {
                      "Name": "TestAccelerated",
                      "Image": "xxxxxxxxxxxxx.dkr.ecr.eu-central-1.amazonaws.com/myimage",
                      "Essential": true,
                      "ResourceRequirements": [{
                          "Type": "InferenceAccelerator",
                          "Value": "eia-device-1"
                      }]
                  }
              ],
              "Cpu" : "256",
              "ExecutionRoleArn" : "arn:aws:iam::xxxxxxxxxxxxx:role/ecsTaskExecutionRole",
              "Family" : "TestService",
              "InferenceAccelerators" : [ {
                "DeviceName": "eia-device-1",
                "DeviceType": "eia1.medium"
              } ],
              "Memory" : "512",
              "NetworkMode" : "awsvpc",
              "RequiresCompatibilities" : [ "FARGATE" ],
              "TaskRoleArn" : "arn:aws:iam::xxxxxxxxxxxxx:role/ecsTaskExecutionRole"
            }
        }
    }
}

当我尝试创建堆栈时,cloudformation 失败并出现以下错误:

Invalid request provided: Create TaskDefinition: Unsupported field 'inferenceAccelerators'

但是有两件事对我来说似乎很奇怪:

我做错了什么,这是一个错误,还是由于某种原因,任务定义中真的不支持推理加速器?

标签: amazon-web-servicesmachine-learningamazon-ecsaws-fargate

解决方案


可能是因为您正在使用FARGATE并且 Fargate不支持 GPU。但支持已经在 AWS 路线图上:

您可以尝试为 EC2 启动类型而不是 Fargate 重新定义您的任务定义和 ecs 服务。

更新

Amazon Elastic Inference仅适用于 EC2 类型的 ECS 任务

使用使用EC2 启动类型的 Linux 容器和任务时支持此功能。


推荐阅读