

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 為 Amazon ECS 啟動 GPU 容器執行個體
<a name="gpu-launch"></a>

若要在 Amazon EC2 上的 Amazon ECS 中使用 GPU 執行個體，您需要建立啟動範本、使用者資料檔案並啟動執行個體。

然後，您便可執行使用為 GPU 設定之任務定義的任務。

## 使用啟動範本
<a name="gpu-launch-template"></a>

您可以建立啟動範本。
+ 建立使用 AMI 的 Amazon ECS 最佳化 GPU AMI ID 的啟動範本。如需有關如何建立啟動範本的資訊，請參閱 *Amazon EC2 User Guide* 中的 [Create a new launch template using parameters you define](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-launch-template.html#create-launch-template-define-parameters)。

  將從前一步驟取得的 AMI ID 用於 **Amazon Machine Image**。如需有關如何使用 Systems Manager 參數指定 AMI ID 的資訊，請參閱 *Amazon EC2 User Guide* 中的 [Specify a Systems Manager parameter in a launch template](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-launch-template.html#use-an-ssm-parameter-instead-of-an-ami-id)。

  將下列內容新增至啟動範本中的**使用者資料**。以您的叢集名稱取代 {{cluster-name}}。

  ```
  #!/bin/bash
  echo ECS_CLUSTER={{cluster-name}} >> /etc/ecs/ecs.config;
  echo ECS_ENABLE_GPU_SUPPORT=true >> /etc/ecs/ecs.config
  ```

## 使用 AWS CLI
<a name="gpu-launch-cli"></a>

您可以使用 AWS CLI 來啟動容器執行個體。

1. 建立稱為 `userdata.toml` 的檔案。此檔案會用於執行個體使用者資料。以您的叢集名稱取代 {{cluster-name}}。

   ```
   #!/bin/bash
   echo ECS_CLUSTER={{cluster-name}} >> /etc/ecs/ecs.config;
   echo ECS_ENABLE_GPU_SUPPORT=true >> /etc/ecs/ecs.config
   ```

1. 執行下列命令，取得 GPU AMI ID。您會在以下步驟中使用此 ID。

   ```
   aws ssm get-parameters --names /aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended --region {{us-east-1}}
   ```

1. 執行下列命令，啟動 GPU 執行個體。請記得替換以下參數：
   + 將{{子網路}}替換為執行個體將在其中啟動的私有或公有子網路的 ID。
   + 將 {{bottlerocket\_ami}} 取代為從前一步驟取得的 AMI ID。
   + 將 {{t3.large}} 替換為您要使用的執行個體類型。
   + 將 {{region}} 替換為區域代碼。

   ```
   aws ec2 run-instances --key-name ecs-gpu-example \
      --subnet-id {{subnet}} \
      --image-id {{gpu_ami}} \
      --instance-type {{t3.large}} \
      --region {{region}} \
      --tag-specifications 'ResourceType=instance,Tags=[{Key=GPU,Value=example}]' \
      --user-data file://userdata.toml \
      --iam-instance-profile Name=ecsInstanceRole
   ```

1. 執行下列命令來驗證容器執行個體是否已註冊至叢集。當您執行此命令時，請記得替代下列參數：
   + 將 {{cluster}} 替代為叢集名稱。
   + 將 {{region}} 替換為您的區域代碼。

   ```
   aws ecs list-container-instances --cluster {{cluster-name}} --region {{region}}
   ```