Usar uma AMI de workload de GPU
Para executar cargas de trabalho de GPU em seus recursos de computação do AWS Batch, você deve usar uma AMI com suporte para GPU. Para obter mais informações, consulte Como trabalhar com GPUs no Amazon ECS e AMIs otimizadas para Amazon ECS no Guia do desenvolvedor do Amazon Elastic Container Service.
Em ambientes de computação gerenciados, se o ambiente de computação epecificar qualquer família de instância ou tipo de instância p2
, p3
, p4
, p5
, g3
, g3s
, g4
ou g5
, o AWS Batch o usa uma AMI otimizada para GPU do Amazon ECS.
Em ambientes de computação não gerenciados, é recomendada uma AMI otimizada para GPU do Amazon ECS. Você pode usar as operações AWS Command Line Interface ou AWS Systems Manager Parameter Store GetParameter, GetParameters, e GetParametersByPath para recuperar os metadados para as AMIs otimizadas para GPU do Amazon ECS recomendadas.
A família de p5
instância só é compatível com versões iguais ou posteriores à AMI otimizada para GPU 20230912
do Amazon ECS, e elas são incompatíveis com os tipos de instância p2
e g2
. Se você precisar usar instâncias p5
, certifique-se de que seu ambiente de computação não contenha instâncias p2
ou g2
e use o Batch AMI padrão mais recente. A criação de um novo ambiente de computação usará a AMI mais recente, mas se você estiver atualizando seu ambiente de computação para incluir p5
, você pode garantir que está usando a AMI mais recente configurando o updateToLatestImageVersion
como true
nas propriedades ComputeResource
. Para obter mais informações sobre a compatibilidade do AMI com instâncias de GPU, consulte Como trabalhar com GPUs no Amazon ECS no Guia do desenvolvedor do Amazon Elastic Container Service.
Os exemplos a seguir mostram como usar o comando GetParameter.
- AWS CLI
-
$
aws ssm get-parameter --name /aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended \
--region us-east-2
--output json
A saída inclui as informações de AMI no parâmetro Value
.
{
"Parameter": {
"Name": "/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended",
"LastModifiedDate": 1555434128.664,
"Value": "{\"schema_version\":1,\"image_name\":\"amzn2-ami-ecs-gpu-hvm-2.0.20190402-x86_64-ebs\",\"image_id\":\"ami-083c800fe4211192f\",\"os\":\"Amazon Linux 2\",\"ecs_runtime_version\":\"Docker version 18.06.1-ce\",\"ecs_agent_version\":\"1.27.0\"}",
"Version": 9,
"Type": "String",
"ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended"
}
}
- Python
-
from __future__ import print_function
import json
import boto3
ssm = boto3.client('ssm', 'us-east-2
')
response = ssm.get_parameter(Name='/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended')
jsonVal = json.loads(response['Parameter']['Value'])
print("image_id = " + jsonVal['image_id'])
print("image_name = " + jsonVal['image_name'])
A saída inclui apenas o ID da AMI e nome da AMI:
image_id = ami-083c800fe4211192f
image_name = amzn2-ami-ecs-gpu-hvm-2.0.20190402-x86_64-ebs
Os exemplos a seguir demonstram o uso de GetParameters.
- AWS CLI
-
$
aws ssm get-parameters --names /aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/image_name \
/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/image_id \
--region us-east-2
--output json
A saída inclui os metadados completos para cada um dos parâmetros:
{
"InvalidParameters": [],
"Parameters": [
{
"Name": "/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/image_id",
"LastModifiedDate": 1555434128.749,
"Value": "ami-083c800fe4211192f",
"Version": 9,
"Type": "String",
"ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/image_id"
},
{
"Name": "/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/image_name",
"LastModifiedDate": 1555434128.712,
"Value": "amzn2-ami-ecs-gpu-hvm-2.0.20190402-x86_64-ebs",
"Version": 9,
"Type": "String",
"ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/image_name"
}
]
}
- Python
-
from __future__ import print_function
import boto3
ssm = boto3.client('ssm', 'us-east-2
')
response = ssm.get_parameters(
Names=['/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/image_name',
'/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/image_id'])
for parameter in response['Parameters']:
print(parameter['Name'] + " = " + parameter['Value'])
A saída inclui o ID da AMI e nome da AMI, usando o caminho completo para os nomes.
/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/image_id = ami-083c800fe4211192f
/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/image_name = amzn2-ami-ecs-gpu-hvm-2.0.20190402-x86_64-ebs
Os exemplos a seguir mostram como usar o comando GetParametersByPath.
- AWS CLI
-
$
aws ssm get-parameters-by-path --path /aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended \
--region us-east-2
--output json
A saída inclui todos os metadados completos para todos os parâmetros no caminho especificado.
{
"Parameters": [
{
"Name": "/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/ecs_agent_version",
"LastModifiedDate": 1555434128.801,
"Value": "1.27.0",
"Version": 8,
"Type": "String",
"ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/ecs_agent_version"
},
{
"Name": "/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/ecs_runtime_version",
"LastModifiedDate": 1548368308.213,
"Value": "Docker version 18.06.1-ce",
"Version": 1,
"Type": "String",
"ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/ecs_runtime_version"
},
{
"Name": "/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/image_id",
"LastModifiedDate": 1555434128.749,
"Value": "ami-083c800fe4211192f",
"Version": 9,
"Type": "String",
"ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/image_id"
},
{
"Name": "/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/image_name",
"LastModifiedDate": 1555434128.712,
"Value": "amzn2-ami-ecs-gpu-hvm-2.0.20190402-x86_64-ebs",
"Version": 9,
"Type": "String",
"ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/image_name"
},
{
"Name": "/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/os",
"LastModifiedDate": 1548368308.143,
"Value": "Amazon Linux 2",
"Version": 1,
"Type": "String",
"ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/os"
},
{
"Name": "/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/schema_version",
"LastModifiedDate": 1548368307.914,
"Value": "1",
"Version": 1,
"Type": "String",
"ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/schema_version"
}
]
}
- Python
-
from __future__ import print_function
import boto3
ssm = boto3.client('ssm', 'us-east-2
')
response = ssm.get_parameters_by_path(Path='/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended')
for parameter in response['Parameters']:
print(parameter['Name'] + " = " + parameter['Value'])
A saída inclui os valores de todos os nomes de parâmetro no caminho especificado, usando o caminho completo para os nomes.
/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/ecs_agent_version = 1.27.0
/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/ecs_runtime_version = Docker version 18.06.1-ce
/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/image_id = ami-083c800fe4211192f
/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/image_name = amzn2-ami-ecs-gpu-hvm-2.0.20190402-x86_64-ebs
/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/os = Amazon Linux 2
/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/schema_version = 1
Para obter mais informações, consulte Recuperar os metadados da AMI otimizada para Amazon ECS no Guia do desenvolvedor do Amazon Elastic Container Service.