

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# GPU ジョブを実行する
<a name="gpu-jobs"></a>

GPU ジョブを使用して、インスタンスの GPU を使用するジョブを実行できます。

以下の Amazon EC2 GPU ベースのインスタンスタイプがサポートされています。詳細については、[Amazon EC2 G3 インスタンス](https://aws.amazon.com/ec2/instance-types/g3/)、[Amazon EC2 G4 インスタンス](https://aws.amazon.com/ec2/instance-types/g4/)、[Amazon EC2 G5 インスタンス](https://aws.amazon.com/ec2/instance-types/g5/)、[Amazon EC2 G6 インスタンス](https://aws.amazon.com/ec2/instance-types/g6/)、[Amazon EC2 P2 インスタンス](https://aws.amazon.com/ec2/instance-types/p2/)、[Amazon EC2 P3 インスタンス](https://aws.amazon.com/ec2/instance-types/p3/)、[Amazon EC2 P4d インスタンス](https://aws.amazon.com/ec2/instance-types/p4/)、[Amazon EC2 P5 インスタンス](https://aws.amazon.com/ec2/instance-types/p5/)、[Amazon EC2 P6 インスタンス](https://aws.amazon.com/ec2/instance-types/p6/)、[Amazon EC2 Trn1 インスタンス](https://aws.amazon.com/ec2/instance-types/trn1/)、[Amazon EC2 Trn2 インスタンス](https://aws.amazon.com/ec2/instance-types/trn2/)、[Amazon EC2 Inf1インスタンス](https://aws.amazon.com/ec2/instance-types/inf1/)、[Amazon EC2 Inf2 インスタンス](https://aws.amazon.com/ec2/instance-types/inf2/)、[Amazon EC2 Dl1 インスタンス](https://aws.amazon.com/ec2/instance-types/dl1/)、[Amazon EC2 Dl2 インスタンス](https://aws.amazon.com/ec2/instance-types/dl2q/) を参照してください。


|  インスタンスタイプ  |  GPUs  |  GPU メモリ  |  vCPU  |  メモリ  |  ネットワーク帯域幅  | 
| --- | --- | --- | --- | --- | --- | 
|  g3s.xlarge  |  1  |  8 GiB  |  4  |  30.5 GiB  |  10 Gbps  | 
|  g3.4xlarge  |  1  |  8 GiB  |  16  |  122 GiB  |  最大 10 Gbps  | 
|  g3.8xlarge  |  2  |  16 GiB  |  32  |  244 GiB  |  10 Gbps  | 
|  g3.16xlarge  |  4  |  32 GiB  |  64  |  488 GiB  |  25 Gbps  | 
|  g4dn.xlarge  |  1  |  16 GiB  |  4  |  16 GiB  |  最大 25 Gbps  | 
|  g4dn.2xlarge  |  1  |  16 GiB  |  8  |  32 GiB  |  最大 25 Gbps  | 
|  g4dn.4xlarge  |  1  |  16 GiB  |  16  |  64 GiB  |  最大 25 Gbps  | 
|  g4dn.8xlarge  |  1  |  16 GiB  |  32  |  128 GiB  |  50 Gbps  | 
|  g4dn.12xlarge  |  4  |  64 GiB  |  48  |  192 GiB  |  50 Gbps  | 
|  g4dn.16xlarge  |  1  |  16 GiB  |  64  |  256 GiB  |  50 Gbps  | 
|  g5.xlarge  |  1  |  24 GiB  |  4  |  16 GiB  |  最大 10 Gbps  | 
|  g5.2xlarge  |  1  |  24 GiB  |  8  |  32 GiB  |  最大 10 Gbps  | 
|  g5.4xlarge  |  1  |  24 GiB  |  16  |  64 GiB  |  最大 25 Gbps  | 
|  g5.8xlarge  |  1  |  24 GiB  |  32  |  128 GiB  |  25 Gbps  | 
|  g5.16xlarge  |  1  |  24 GiB  |  64  |  256 GiB  |  25 Gbps  | 
|  g5.12xlarge  |  4  |  96 GiB  |  48  |  192 GiB  |  40 Gbps  | 
|  g5.24xlarge  |  4  |  96 GiB  |  96  |  384 GiB  |  50 Gbps  | 
|  g5.48xlarge  |  8  |  192 GiB  |  192  |  768 GiB  |  100 Gbps  | 
|  g5g.xlarge  |  1  |  16 GiB  |  4  |  8 GiB  |  最大 10 Gbps  | 
|  g5g.2xlarge  |  1  |  16 GiB  |  8  |  16 GiB  |  最大 10 Gbps  | 
|  g5g.4xlarge  |  1  |  16 GiB  |  16  |  32 GiB  |  最大 10 Gbps  | 
|  g5g.8xlarge  |  1  |  16 GiB  |  32  |  64 GiB  |  12 Gbps  | 
|  g5g.16xlarge  |  2  |  32 GiB  |  64  |  128 GiB  |  25 Gbps  | 
|  g5g.metal  |  2  |  32 GiB  |  64  |  128 GiB  |  25 Gbps  | 
|  g6.xlarge  |  1  |  24 GiB  |  4  |  16 GiB  |  最大 10 Gbps  | 
|  g6.2xlarge  |  1  |  24 GiB  |  8  |  32 GiB  |  最大 10 Gbps  | 
|  g6.4xlarge  |  1  |  24 GiB  |  16  |  64 GiB  |  最大 25 Gbps  | 
|  g6.8xlarge  |  1  |  24 GiB  |  32  |  128 GiB  |  25 Gbps  | 
|  g6.16xlarge  |  1  |  24 GiB  |  64  |  256 GiB  |  25 Gbps  | 
|  g6.12xlarge  |  4  |  96 GiB  |  48  |  192 GiB  |  40 Gbps  | 
|  g6.24xlarge  |  4  |  96 GiB  |  96  |  384 GiB  |  50 Gbps  | 
|  g6.48xlarge  |  8  |  192 GiB  |  192  |  768 GiB  |  100 Gbps  | 
|  g6e.xlarge  |  1  |  48 GiB  |  4  |  32 GiB  |  最大 20 Gbps  | 
|  g6e.2xlarge  |  1  |  48 GiB  |  8  |  64 GiB  |  最大 20 Gbps  | 
|  g6e.4xlarge  |  1  |  48 GiB  |  16  |  128 GiB  |  20 Gbps  | 
|  g6e.8xlarge  |  1  |  48 GiB  |  32  |  256 GiB  |  25 Gbps  | 
|  g6e.16xlarge  |  1  |  48 GiB  |  64  |  512 GiB  |  35 Gbps  | 
|  g6e.12xlarge  |  4  |  192 GiB  |  48  |  384 GiB  |  100 Gbps  | 
|  g6e.24xlarge  |  4  |  192 GiB  |  96  |  768 GiB  |  200 Gbps  | 
|  g6e.48xlarge  |  8  |  384 GiB  |  192  |  1536 GiB  |  400 Gbps  | 
|  gr6.4xlarge  |  1  |  24 GiB  |  16  |  128 GiB  |  最大 25 Gbps  | 
|  gr6.8xlarge  |  1  |  24 GiB  |  32  |  256 GiB  |  25 Gbps  | 
|  p2.xlarge  |  1  |  12 GiB  |  4  |  61 GiB  |  高  | 
|  p2.8xlarge  |  8  |  96 GiB  |  32  |  488 GiB  |  10 Gbps  | 
|  p2.16xlarge  |  16  |  192 GiB  |  64  |  732 GiB  |  20 Gbps  | 
|  p3.2xlarge  |  1  |  16 GiB  |  8  |  61 GiB  |  最大 10 Gbps  | 
|  p3.8xlarge  |  4  |  64 GiB  |  32  |  244 GiB  |  10 Gbps  | 
|  p3.16xlarge  |  8  |  128 GiB  |  64  |  488 GiB  |  25 Gbps  | 
|  p3dn.24xlarge  |  8  |  256 GiB  |  96  |  768 GiB  |  100 Gbps  | 
|  p4d.24xlarge  |  8  |  320 GiB  |  96  |  1152 GiB  |  400 Gbps  | 
|  p4de.24xlarge  |  8  |  640 GiB  |  96  |  1152 GiB  |  400 Gbps  | 
|  p5.48xlarge  |  8  |  640 GiB  |  192  |  2 TiB  |  3200 Gbps  | 
|  p5e.48xlarge  |  8  |  1128 GiB  |  192  |  2 TiB  |  3200 Gbps  | 
|  p5en.48xlarge  |  8  |  1128 GiB  |  192  |  2 TiB  |  3200 Gbps  | 
|  p6-b200.48xlarge  |  8  |  1440 GiB  |  192  |  2 TiB  |  100 Gbps  | 
|  trn1.2xlarge  |  1  |  32 GiB  |  8  |  32 GiB  |  最大 12.5 Gbps  | 
|  trn1.32xlarge  |  16  |  512 GiB  |  128  |  512 GiB  |  800 Gbps  | 
|  trn1n.32xlarge  |  16   |  512 GiB  |  128  |  512 GiB  |  1600 Gbps  | 
|  trn2.48xlarge  |  16  |  1.5 TiB  |  192  |  2 TiB  |  3.2 Tbps  | 
|  inf1.xlarge  |  1  |  8 GiB  |  4  |  8 GiB  |  最大 25 Gbps  | 
|  inf1.2xlarge  |  1  |  8 GiB  |  8  |  16 GiB  |  最大 25 Gbps  | 
|  inf1.6xlarge  |  4  |  32 GiB  |  24  |  48 GiB  |  25 Gbps  | 
|  inf1.24xlarge  |  16  |  128 GiB  |  96  |  192 GiB  |  100 Gbps  | 
|  inf2.xlarge  |  1  |  32 GiB  |  4  |  16 GiB  |  最大 15 Gbps  | 
|  inf2.8xlarge  |  1  |  32 GiB  |  32  |  128 GiB  |  最大 25 Gbps  | 
|  inf2.24xlarge  |  6  |  192 GiB  |  96  |  384 GiB  |  50 Gbps  | 
|  inf2.48xlarge  |  12  |  384 GiB  |  192  |  768 GiB  |  100 Gbps  | 
|  dl1.24xlarge  |  8  |  256 GiB  |  96  |  768 GiB  |  400 Gbps  | 
|  dl2q.24xlarge  |  8  |  128 GiB  |  96  |  768 GiB  |  100 Gbps  | 

**注記**  
GPU ジョブでは、NVIDIA GPUs を持つインスタンスタイプ AWS Batch のみをサポートします。例えば、[https://aws.amazon.com/ec2/instance-types/g4/#Amazon_EC2_G4ad_instances](https://aws.amazon.com/ec2/instance-types/g4/#Amazon_EC2_G4ad_instances) ファミリーは GPU スケジューリングではサポートされていません。ジョブ定義で vcpu とメモリの要件のみを定義し、Amazon ECS または Amazon EKS コンピューティング最適化 AMI、または AMD GPUs を使用するためのカスタマイズされた AMI を使用して Amazon EC2 [起動テンプレートのユーザーデータ](launch-templates.md#lt-user-data.title)をカスタマイズすることでホスト GPUs に直接アクセス AWS Batch することで、 [https://aws.amazon.com/ec2/instance-types/g4/#Amazon_EC2_G4ad_instances](https://aws.amazon.com/ec2/instance-types/g4/#Amazon_EC2_G4ad_instances)で を引き続き使用できます。 Amazon EC2   
ARM64 アーキテクチャを使用するインスタンスタイプは、カスタマイズされたコードと設定によって GPU にアクセスするために AWS Batch または Amazon EC2 ユーザーデータに提供されるカスタム AMIs の GPUs ジョブでサポートされています。例えば、[https://aws.amazon.com/ec2/instance-types/g5g/](https://aws.amazon.com/ec2/instance-types/g5g/) インスタンスファミリーです。

ジョブ定義の [[resourceRequirements]](job_definition_parameters.md#ContainerProperties-resourceRequirements) パラメータは、コンテナに固定される GPU の数を指定します。この GPU の数は、そのジョブの期間中にインスタンスで実行される他のジョブでは使用できません。GPU ジョブを実行するコンピューティング環境のすべてのインスタンスタイプは `p6`、`p3`、`p4`、`p5`、`g3`、`g3s`、`g4`、`g5`、`g6` インスタンスファミリーのいずれかにする必要があります。これを行わないと、GPU ジョブが `RUNNABLE` 状態で固まる可能性があります。

GPU を使用しないジョブは GPU インスタンスで実行できます。ただし、類似の GPU 以外のインスタンスで実行するよりも、GPU インスタンスで実行する方がコストがかかる場合があります。特定の vCPU、メモリ、および所要時間によっては、このような GPU を使用しないジョブによって GPU ジョブの実行がブロックされる場合があります。

**Topics**
+ [Amazon EKS で GPU ベースの Kubernetes クラスターを作成する](create-gpu-cluster-eks.md)
+ [Amazon EKS GPU ジョブ定義を作成する](create-eks-gpu-job-definition.md)
+ [Amazon EKS クラスターで GPU ジョブを実行する](run-gpu-job-eks-cluster.md)

# Amazon EKS で GPU ベースの Kubernetes クラスターを作成する
<a name="create-gpu-cluster-eks"></a>

Amazon EKS で GPU ベースの Kubernetes クラスターを作成する前に、[Amazon EKS AWS Batch での の開始方法](getting-started-eks.md) のステップを完了しておく必要があります。また、次の操作を行います。
+ AWS Batch では、NVIDIA GPUs。
+ デフォルトでは、 は Amazon EKS クラスターコントロールプレーンKubernetesのバージョンに一致するバージョンで Amazon EKS 高速 AMI AWS Batch を選択します。

```
$ cat <<EOF > ./batch-eks-gpu-ce.json
{
  "computeEnvironmentName": "My-Eks-GPU-CE1",
  "type": "MANAGED",
  "state": "ENABLED",
  "eksConfiguration": {
    "eksClusterArn": "arn:aws:eks:<region>:<account>:cluster/<cluster-name>",
    "kubernetesNamespace": "my-aws-batch-namespace"
  },
  "computeResources": {
    "type": "EC2",
    "allocationStrategy": "BEST_FIT_PROGRESSIVE",
    "minvCpus": 0,
    "maxvCpus": 1024,
    "instanceTypes": [
      "p3dn.24xlarge",
      "p4d.24xlarge"
    ],
    "subnets": [
        "<eks-cluster-subnets-with-access-to-internet-for-image-pull>"
    ],
    "securityGroupIds": [
        "<eks-cluster-sg>"
    ],
    "instanceRole": "<eks-instance-profile>"
  }
}
EOF

$ aws batch create-compute-environment --cli-input-json file://./batch-eks-gpu-ce.json
```

AWS Batch はユーザーに代わって NVIDIA GPU デバイスプラグインを管理しません。このプラグインを Amazon EKS クラスターにインストールし、 AWS Batch ノードをターゲットにする必要があります。詳細については、GitHub Kubernetes の[GPU Support の有効化](https://github.com/NVIDIA/k8s-device-plugin#enabling-gpu-support-in-kubernetes) を参照してください。

 AWS Batch ノードをターゲットにするようにNVIDIAデバイスプラグイン (`DaemonSet`) を設定するには、次のコマンドを実行します。

```
# pull nvidia daemonset spec
$ curl -O https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v0.12.2/nvidia-device-plugin.yml
# using your favorite editor, add Batch node toleration
# this will allow the DaemonSet to run on Batch nodes
- key: "batch.amazonaws.com/batch-node"
  operator: "Exists"

$ kubectl apply -f nvidia-device-plugin.yml
```

コンピューティングベース (CPU とメモリ) のワークロードと GPU ベースのワークロードを、コンピューティング環境とジョブキューを同じ組み合わせで混在させることはお勧めしません。これは、コンピューティングジョブが GPU の容量を使い果たす可能性があるためです。

ジョブキューをアタッチするには、以下のコマンドを実行します。

```
$ cat <<EOF > ./batch-eks-gpu-jq.json
 {
    "jobQueueName": "My-Eks-GPU-JQ1",
    "priority": 10,
    "computeEnvironmentOrder": [
      {
        "order": 1,
        "computeEnvironment": "My-Eks-GPU-CE1"
      }
    ]
  }
EOF

$ aws batch create-job-queue --cli-input-json file://./batch-eks-gpu-jq.json
```

# Amazon EKS GPU ジョブ定義を作成する
<a name="create-eks-gpu-job-definition"></a>

現時点では `nvidia.com/gpu` のみサポートされており、設定するリソース値は整数でなければなりません。GPU の一部を使用することはできません。詳細については、*Kubernetes ドキュメント* の [GPUのスケジュール](https://kubernetes.io/docs/tasks/manage-gpus/scheduling-gpus/) を参照してください。

Amazon EKS に GPU ジョブ定義を登録するには、以下のコマンドを実行します。

```
$ cat <<EOF > ./batch-eks-gpu-jd.json
{
    "jobDefinitionName": "MyGPUJobOnEks_Smi",
    "type": "container",
    "eksProperties": {
        "podProperties": {
            "hostNetwork": true,
            "containers": [
                {
                    "image": "nvcr.io/nvidia/cuda:10.2-runtime-centos7",
                    "command": ["nvidia-smi"],
                    "resources": {
                        "limits": {
                            "cpu": "1",
                            "memory": "1024Mi",
                            "nvidia.com/gpu": "1"
                        }
                    }
                }
            ]
        }
    }
}
EOF

$ aws batch register-job-definition --cli-input-json file://./batch-eks-gpu-jd.json
```

# Amazon EKS クラスターで GPU ジョブを実行する
<a name="run-gpu-job-eks-cluster"></a>

GPU リソースは非圧縮です。 は GPU ジョブのポッド仕様 AWS Batch を作成します。**リクエスト**の値は**制限**の値と等しくなります。Kubernetes は必須です。

ジョブを再起動するには、以下のコマンドを実行します。

```
$ aws batch submit-job --job-queue My-Eks-GPU-JQ1 --job-definition MyGPUJobOnEks_Smi --job-name My-Eks-GPU-Job

# locate information that can help debug or find logs (if using Amazon CloudWatch Logs with Fluent Bit)
$ aws batch describe-jobs --job <job-id> | jq '.jobs[].eksProperties.podProperties | {podName, nodeName}'
{
  "podName": "aws-batch.f3d697c4-3bb5-3955-aa6c-977fcf1cb0ca",
  "nodeName": "ip-192-168-59-101.ec2.internal"
}
```