翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon SageMaker HyperPod での UltraServers の使用 HyperPod
Ultraservers の SageMaker HyperPod サポートは、AI および機械学習ワークロードに高性能 GPU コンピューティング機能を提供します。NVIDIA GB200 および NVL72 アーキテクチャ上に構築されたこれらの Ultraserver は、デュアルラック構成で 18 GB200 インスタンスに NVLink 接続を提供し、合計 72 B200 GPUs。この NVLink ファブリックにより、ワークロードは GPU 通信を使用できます。これにより、個別のインスタンスで可能な範囲を超えて使用可能な GPU 容量とアドレス可能なメモリが増加し、より複雑でリソース集約型の AI モデルがサポートされます。NVLink 接続は、同じラック内のインスタンス間で安全な GPU ファブリック接続のための低レベル設定を処理する NVIDIA IMEX テクノロジーによって有効になります。
HyperPod は、インテリジェントなトポロジ対応と自動設定により、これらの GPU クラスターのデプロイと管理を簡素化します。プラットフォームは、ノードの物理的な場所とキャパシティブロック情報を自動的に検出してラベル付けします。これにより、分散ワークロードのトポロジ対応スケジューリングがサポートされます。HyperPod は複雑な IMEX 設定要件を抽象化するため、低レベルの GPU ファブリックのセットアップではなくワークロードのデプロイに集中できます。セルフマネージド型ノードと EKS マネージド型ノードグループの両方を含む柔軟なデプロイオプションを選択できます。Amazon EKS は、事前設定された NVIDIA AMIs を提供します。
統合には、標準の Kubernetes トポロジラベルを使用して NVL72 ドメイン間で分散ワークロードが最適にスケジュールされるようにするポッド配置機能が含まれています。組み込みのモニタリング機能と自動復旧機能は、AMI ヘルスエージェントがカーネルログから GPU エラーを検出し、問題を自動的に修正したり、マネージドノードグループの障害のあるノードを置き換えたりできる運用サポートを提供します。GPU スケール、インテリジェントなワークロード配置、自動オペレーションの組み合わせにより、インフラストラクチャの複雑さではなく AI/ML イノベーションに集中しながら、GPU への投資から最大限のパフォーマンスを実現できます。
HyperPod クラスターで UltraServers を使用してセットアップするには、次の手順を参照してください。
-
EKS ベースの HyperPod クラスターを作成します。インスタンスグループを選択するときは、必ず UltraServer を選択してください。
-
クラスターを作成したら、次のコマンドを使用してオペレーションプラグインをインストールします。
NVIDIA デバイスプラグイン v0.17.2
kubectl apply -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v0.17.2/deployments/static/nvidia-device-plugin.yml
FD DaemonSet v0.17.3
kubectl apply -k "https://github.com/kubernetes-sigs/node-feature-discovery/deployment/overlays/default?ref=v0.17.3"
GPU 機能検出
kubectl apply -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v0.17.2/deployments/static/gpu-feature-discovery-daemonset.yaml
ジョブを実行できるようになりました。次の例は、ドメインを作成し、IMEX ドメインを設定し、チャネル割り当てを有効にする方法を示しています。これらのステップでは、NCCL 通信のチャネルをプロビジョニングするポッドを作成することもできます。
-
Kubectl で使用するリソース仕様ファイルを作成します。
cat <<EOF > imex-channel-injection.yaml --- apiVersion: resource.nvidia.com/v1beta1 kind: ComputeDomain metadata: name: imex-channel-injection spec: numNodes: 1 channel: resourceClaimTemplate: name: imex-channel-0 --- apiVersion: v1 kind: Pod metadata: name: imex-channel-injection spec: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: nvidia.com/gpu.clique operator: Exists - key: topology.k8s.aws/ultraserver-id operator: In values: - <
UltraServer-ID
> containers: - name: ctr image: ubuntu:22.04 command: ["bash", "-c"] args: ["ls -la /dev/nvidia-caps-imex-channels; trap 'exit 0' TERM; sleep 9999 & wait"] resources: claims: - name: imex-channel-0 resourceClaims: - name: imex-channel-0 resourceClaimTemplateName: imex-channel-0 EOF -
作成した設定を適用します。
kubectl apply -f imex-channel-injection.yaml
-
ポッドが作成されていることを確認するには、
get pods
コマンドを実行します。kubectl get pods kubectl get pods -n nvidia-dra-driver-gpu -l resource.nvidia.com/computeDomain
-
ポッドのログをチェックして、通信チャネルが割り当てられているかどうかを確認することもできます。
kubectl logs imex-channel-injection
total 0 drwxr-xr-x 2 root root 60 Feb 19 10:43 . drwxr-xr-x 6 root root 380 Feb 19 10:43 .. crw-rw-rw- 1 root root 507, 0 Feb 19 10:43 channel0
-
ログをチェックして、自動 IMEX 設定が割り当てられたチャネルで実行されていることを確認することもできます。
kubectl logs -n nvidia-dra-driver-gpu -l resource.nvidia.com/computeDomain --tail=-1 /etc/nvidia-imex/nodes_config.cfg:
IMEX Log initializing at: 8/8/2025 14:23:12.081 [Aug 8 2025 14:23:12] [INFO] [tid 39] IMEX version 570.124.06 is running with the following configuration options [Aug 8 2025 14:23:12] [INFO] [tid 39] Logging level = 4 [Aug 8 2025 14:23:12] [INFO] [tid 39] Logging file name/path = /var/log/nvidia-imex.log [Aug 8 2025 14:23:12] [INFO] [tid 39] Append to log file = 0 [Aug 8 2025 14:23:12] [INFO] [tid 39] Max Log file size = 1024 (MBs) [Aug 8 2025 14:23:12] [INFO] [tid 39] Use Syslog file = 0 [Aug 8 2025 14:23:12] [INFO] [tid 39] IMEX Library communication bind interface = [JAug 8 2025 14:23:12] [INFO] [tid 39] IMEX library communication bind port = 50000 [Aug 8 2025 14:23:12] [INFO] [tid 39] Identified this node as ID 0, using bind IP of '10.115.131.8', and network interface of enP5p9s0 [Aug 8 2025 14:23:120] [INFO] [tid 39] nvidia-imex persistence file /var/run/nvidia-imex/persist.dat does not exist. Assuming no previous importers. [Aug 8 2025 14:23:12] [INFO] [tid 39] NvGpu Library version matched with GPU Driver version [Aug 8 2025 14:23:12] [INFO] [tid 63] Started processing of incoming messages. [Aug 8 2025 14:23:12] [INFO] [tid 64] Started processing of incoming messages. [Aug 8 2025 14:23:12] [INFO] [tid 65] Started processing of incoming messages. [Aug 8 2025 14:23:12] [INFO] [tid 39] Creating gRPC channels to all peers (nPeers = 1). [Aug 8 2025 14:23:12] [INFO] [tid 66] Started processing of incoming messages. [Aug 8 2025 14:23:12] [INFO] [tid 39] IMEX_WAIT_FOR_QUORUM != FULL, continuing initialization without waiting for connections to all nodes. [Aug 8 2025 14:23:12] [INFO] [tid 67] Connection established to node 0 with ip address 10.115.131.8. Number of times connected: 1 [Aug 8 2025 14:23:12] [INFO] [tid 39] GPU event successfully subscribed
-
すべてを確認したら、ワークロードを削除し、設定を削除します。
kubectl delete -f imex-channel-injection.yaml