本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 GPU 工作负载 AMI
要在您的 AWS Batch 计算资源上运行 GPU 工作负载,必须使用具有 GPU 支持的 AMI。有关更多信息,请参阅 Amazon Elastic Container Service 开发人员指南中的在 Amazon ECS 上使用 GPU 以及 Amazon ECS 优化的 AMI。
在托管式计算环境中,如果计算环境指定任何 p6, p3, p4, p5, g3, g3s, g4、g5 或 g6 实例类型或实例系列,则 AWS Batch 会使用 Amazon ECS GPU 优化型 AMI。
在非托管计算环境中,建议使用经过 Amazon ECS GPU 优化的 AMI。可以使用 AWS Command Line Interface 或 AWS Systems Manager Parameter Store GetParameter、GetParameters 和 GetParametersByPath 操作来检索元数据,从而获得建议的经过 Amazon ECS GPU 优化的 AMI。
注意
只有等于或高于 Amazon ECS GPU 优化的 AMI 20230912 的版本才支持 p5 实例系列,并且它们与 p2 和 g2 实例类型不兼容。如果需要使用 p5 实例,请确保您的计算环境不包含 p2 或 g2 实例,并使用最新的版本的默认 Batch AMI。创建新的计算环境将使用最新的 AMI,但是如果您要更新计算环境以包含 p5,则可以通过在 ComputeResource 属性中将 updateToLatestImageVersion 设置为 true 来确保使用的是最新的 AMI。有关 AMI 与 GPU 实例兼容的更多信息,请参阅 Amazon Elastic Container Service 开发人员指南中的在 Amazon ECS 上使用 GPU。
以下示例演示了如何使用 GetParameter 命令。
- AWS CLI
-
$aws ssm get-parameter --name /aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended \ --regionus-east-2--output json输出在
Value参数中包含 AMI 信息。{ "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'])输出仅包含 AMI ID 和 AMI 名称:
image_id = ami-083c800fe4211192f image_name = amzn2-ami-ecs-gpu-hvm-2.0.20190402-x86_64-ebs
以下示例演示 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 \ --regionus-east-2--output json输出包含每个参数的完整元数据:
{ "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'])输出包含 AMI ID 和 AMI 名称,并使用名称的完整路径。
/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
以下示例显示如何使用 GetParametersByPath 命令。
- AWS CLI
-
$aws ssm get-parameters-by-path --path /aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended \ --regionus-east-2--output json输出包含指定路径下的所有参数的完整元数据。
{ "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'])输出包含指定路径下的所有参数名称的值,使用完整路径名称。
/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
有关更多信息,请参阅 Amazon Elastic Container Service 开发人员指南中的检索 Amazon ECS 优化的 AMI 元数据。