

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

# Amazon ECS 受管執行個體的 GPU 自動修復
<a name="managed-instances-gpu-auto-repair"></a>

Amazon ECS 會在使用 GPU 硬體的 Amazon ECS 受管執行個體上監控 NVIDIA GPU 運作狀態。當 Amazon ECS 偵測到 GPU 硬體故障時，它可以自動取代受損的執行個體。Amazon ECS 受管執行個體預設會啟用 GPU 自動修復。

## 運作方式
<a name="managed-instances-gpu-auto-repair-how-it-works"></a>

Amazon ECS 使用 NVIDIA 資料中心 GPU Manager (DCGM) 在具有 GPU 硬體的受管執行個體上監控 NVIDIA GPU 運作狀態。當 DCGM 回報嚴重 GPU 失敗時，Amazon ECS 會將執行個體標記為受損。

啟用 GPU 自動修復時，Amazon ECS 會使用start-before-stop工作流程取代受損的執行個體：

1. Amazon ECS 會將受損的執行個體設定為 DRAINING。新任務不會放置在執行個體上。

1. Amazon ECS 會佈建替換執行個體。

1. Amazon ECS 允許現有任務正常停止。Amazon ECS 會遵守執行個體上任務的任務停止逾時。

1. 耗盡期間結束後，Amazon ECS 會終止受損的執行個體。

Amazon ECS Rate-limits 修復動作，以防止階層取代。一次不可耗盡超過 20% 屬於容量提供者的執行個體。如果容量提供者中的執行個體少於 9 個，則一次最多會耗盡一個執行個體。

## 監控 GPU 運作狀態
<a name="managed-instances-gpu-auto-repair-monitoring"></a>

您可以使用 `DescribeContainerInstances` API 來檢查 GPU 運作狀態。如需詳細資訊，請參閱[監控 Amazon ECS 容器執行個體運作狀態](container-instance-health.md)。您也可以透過 監控 GPU 運作狀態變更[Amazon ECS 容器執行個體運作狀態變更事件](ecs_container_instance_health_events.md)。

## 監控的 XID 錯誤代碼
<a name="managed-instances-gpu-auto-repair-xid-errors"></a>

Amazon ECS 會監控下列 NVIDIA Xid 錯誤代碼。如果 Amazon ECS 偵測到任何這些錯誤，它會將執行個體標記為受損，並取代執行個體。


| Xid | 說明 | 
| --- | --- | 
| 46 | GPU 已停止處理 | 
| 48 | 雙位元 ECC 錯誤 | 
| 54 | 未連接輔助電源連接器 | 
| 62 | 內部微型控制器停止 | 
| 64 | GPU 記憶體重新映射失敗 | 
| 74 | NVLink 錯誤 | 
| 79 | GPU 已脫離匯流排 | 
| 95 | 未包含的記憶體錯誤 | 
| 109 | 內容切換逾時 | 
| 110 | GPU 從匯流排消失 | 
| 136 | 超過 GPU 記憶體頁面淘汰限制 | 
| 140 | 無法復原的 ECC 錯誤 | 
| 142 | GPU 記憶體頁面因無法修正錯誤而淘汰 | 
| 143 | GPU 記憶體頁面因可修正的錯誤閾值而淘汰 | 
| 151 | GPU 到 CPU 互連錯誤 | 
| 155 | GPU NVLink 碎片 CRC 錯誤 | 
| 156 | GPU NVLink 通道錯誤 | 
| 158 | GPU InfoROM 已損毀 | 

若要了解 XID 錯誤的詳細資訊，請參閱 *NVIDIA GPU 部署與管理文件中*的 [Xid 錯誤](https://docs.nvidia.com/deploy/xid-errors/index.html#topic_5_1)。若要了解個別 XID 訊息的詳細資訊，請參閱 *NVIDIA GPU 部署與管理文件中*的[了解 Xid 訊息](https://docs.nvidia.com/deploy/gpu-debug-guidelines/index.html#understanding-xid-messages)。

## 停用自動修復
<a name="managed-instances-gpu-auto-repair-disable"></a>

Amazon ECS 受管執行個體預設會啟用 GPU 自動修復。若要停用 GPU 自動修復，請在建立或更新容量提供者`autoRepairConfiguration`時，將 `actionsStatus`設為 `DISABLED`中的 。您也可以在建立或更新容量提供者時，在 Amazon ECS 主控台中停用 GPU 自動修復。

停用 GPU 自動修復時，Amazon ECS 會繼續監控 GPU 運作狀態，但不會自動取代受損的執行個體。

**注意**  
停用 GPU 自動修復也會停用 Amazon ECS Managed Daemons 自動修復。如需詳細資訊，請參閱 [Amazon ECS Managed Daemons 自動修復](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/managed-daemons-auto-repair.html)。

**停用 GPU 自動修復**

```
aws ecs update-capacity-provider \
    --name {{my-gpu-capacity-provider}} \
    --managed-instances-provider '{
        "infrastructureRoleArn": "arn:aws:iam::{{111122223333}}:role/ecsInfrastructureRole",
        "instanceLaunchTemplate": {
            "ec2InstanceProfileArn": "arn:aws:iam::{{111122223333}}:instance-profile/ecsInstanceRole",
            "networkConfiguration": {
                "subnets": ["{{subnet-0123456789abcdef0}}"],
                "securityGroups": ["{{sg-0123456789abcdef0}}"]
            }
        },
        "autoRepairConfiguration": {
            "actionsStatus": "DISABLED"
        }
    }'
```

**啟用 GPU 自動修復**

```
aws ecs update-capacity-provider \
    --name {{my-gpu-capacity-provider}} \
    --managed-instances-provider '{
        "infrastructureRoleArn": "arn:aws:iam::{{111122223333}}:role/ecsInfrastructureRole",
        "instanceLaunchTemplate": {
            "ec2InstanceProfileArn": "arn:aws:iam::{{111122223333}}:instance-profile/ecsInstanceRole",
            "networkConfiguration": {
                "subnets": ["{{subnet-0123456789abcdef0}}"],
                "securityGroups": ["{{sg-0123456789abcdef0}}"]
            }
        },
        "autoRepairConfiguration": {
            "actionsStatus": "ENABLED"
        }
    }'
```

**驗證組態**

```
aws ecs describe-capacity-providers \
    --capacity-providers {{my-gpu-capacity-provider}}
```