GPUノードとML計算
概要
GPU上で成功したMLスタックは、ハードウェア、ソフトウェア、プランニング、データおよびオブザビリティソリューションのコレクションです。クラスタは同様によく行うことができるはずです:1.列車モデル(高利用率、高速チェックポイント、割り込み公差)
2.サーブ推論(高い変換時の低いp95レイテンシ)、
3.コスト予測可能なお金(FinOps、クォータ、マルチテナント)、
4.安全であること(分離、サプライチェーン、スケール/データセットの制御)。
ハードウェアとトポロジー
GPUとメモリ
HBMボリュームとバンドは、LLM/RecSysの「raw TFLOPS」よりも重要です。
多くの小さな要求の推論-組み込みメモリ(KV-キャッシュ)とハイクロック/電力制限の優先度。
接続性
NVLink/NVSwitch-ノード内で高速にオールリデュース。
InfiniBand/RoCE-DDP/FSDP (≥ 100〜200 Gb/秒)のノード間交換。
PCIeツリー:NICとGPUを同じNUMAノードに保つようにします。ホットPCIeスイッチのボトルネックを避けます。
基本的なBIOS/ホストチューニング
パフォーマンスモード、C状態の無効化(または最小値の増加)、NUMA認識、重要なPCIeでASPMをオフにします。
パワー:安定したプロファイル、攻撃的ではないパワーセーブ-そうでなければp99「震えます」。
基本的なソフトスタック
NVIDIA+CUDA+cuDNN/TensorRT互換マトリックスドライバにマッチしました。
コンテナ内のGPU用NVIDIAコンテナツールキット。
NCCL (collectives)、 UCX (transport)、 Apex/xFormers/Flash-Attention-速度のための。
高速NVMe/IBのオプションのGDS (GPUDirect Storage)-データフローを高速化します。
GPU用Kubernetes
キーコンポーネント
NVIDIA GPU Operator(ドライバ、DCGM、デバイスプラグイン)。
NVIDIAデバイスプラグイン-リソースエクスポート'nvidia。com/gpu'。
MIG (A100/H100)-1つの物理GPUを分離プロファイルに分割します(例えば、'1g。10gb')。
タイムスライシング-小さな推論タスクのための時間内にGPUの論理的な分割。
Node Feature Discovery-GPUタイプ/トポロジーによるラベル。
企画・分離
トレーニング/推論/実験を分離するTains/Tolerations/NodeSelectors。
NUMAアライメントのトポロジマネージャとCPUマネージャ(静的)。
K8s/Ray上の火山/スラム-キュー、優先順位、大きな仕事のための先制。
yaml resources:
limits:
nvidia. com/gpu: 1 # or MIG profile: nvidia. com/mig-1g. 10gb: 1 requests:
nvidia. com/gpu: 1
専用トレーニングプールのtaint/affinityの例:
yaml tolerations:
- key: "gpu-train"
operator: "Exists"
effect: "NoSchedule"
nodeSelector:
gpu. pool: "train"
学習: 規模と持続可能性
並行処理
DDP-標準データの並列処理。
FSDP/ZeRO-sharding parameters/hail/optimizersは、メモリを削減します。
テンソル/パイプラインパラレル-非常に大きなLLMの場合;NVLink/IBが必要です。
グラデーション蓄積-メモリピークを増やすことなく効果的なバッチを増加させます。
混合精度とメモリ最適化
AMP (bf16/fp16)+ロススケーリング; のために-可能であれば 。
アクティベーション/グラデーションチェックポイント、長いシーケンスのためのFlash-Attention。
Paged/Chunked KV-cacheを使用して推論を準備します。
チェックポイントとフォールトトレランス
高速なNVMe/オブジェクトをリッチングで頻繁にインクリメンタルチェックポイント。
Idempotent jabs(反復的な創傷識別子)。
スポット安定性:私たちはSIGTERMをキャッチし、すぐに状態をマージします。スケジューラはジョブをキューに返します。
重要なNCCL/ネットワーク変数(例)
bash
NCCL_IB_HCA=mlx5_0
NCCL_SOCKET_IFNAME=eth1
NCCL_P2P_LEVEL=NVL
NCCL_MIN_NRINGS=8
NCCL_NET_GDR_LEVEL=SYS
推論: 低いレイテンシ、高いリターン
フレームワークの提供
Triton Inference Serverは、TensorRT/ONNX/TS/PyTorch用のシングルサーバです。
vLLM/TGI/TensorRT-LLM-LLMスペシャリスト(paged-attention、 effective KV-cache、 continuous batching)。
加速技術
量子化:INT8/FP8/quantum。-aware (AWQ、 GPTQ)-VRAMの減少、TPSの増加。
Batching/Continuous Batching: p95の成長なしで要求のバーストを提供します。
HBMのKVキャッシュのピン留め、文脈の減少;投機的デコード(ドラフトモデル)。
GPUの並行性:MIG/time-sliceの複数のスレッド/モデル。
ターゲットプロファイル(SLO例)
チャットモデル応答のp95レイテンシ≤プレフィックス/トークンあたり300ミリ秒です。
スループット≥ターゲットプロファイル上の200現在の/s/GPU;
p99テールは、sheduling (QoSクラスとコンテキスト制限)によって制御されます。
トリトン展開(フラグメント)
yaml env:
- name: CUDA_VISIBLE_DEVICES value: "0"
- name: TRITONSERVER_MODEL_CONTROL value: "explicit"
args: ["--backend-config=tensorrt,output_memory_pool_size=1024"]
データとパイプライン
フォーマット:寄木細工/矢印、ストリーミング読み取りのためのwebdataset (tar-shards)。
Prefetch/Async I/O: DataLoader-pin-memory、 prefetch-pipelines、 GDS。
オンライン機能のための機能ストア(詐欺防止/推奨事項)。
バージョン管理:DVC/LakeFS/MLflowモデルレジストリ;データセット、コード、およびハイパーパラメータをキャプチャします。
観測可能性とSLO
DCGM/Prometheus指標(最小)
'dcgm_sm_util'、' dcgm_fb_used'、'dcgm_power_usage'、'dcgm_pcie_rx/tx'、'dcgm_dram_bw'
温度/周波数とECCエラー(成長を警告)。
占有と停止の理由(狭いコア層)を達成しました。
サービスメトリック
生成モデル:トークン/秒、p50/p95/p99、キュー深度、メモリ障害。
トレーニング:steps/sec、 era time、 all-reduce効率、%time in I/O。
SLOパネル:コンプライアンスp95、 「error budget」 (≥ 99。5%「成功した」推論)。
アラート(アイデア)
'fb_used/ fb_total> 0。95分5秒→スロットル/スケールアウト。
モデル/コードの劣化-同じ処分でTPSはN%低下します。
ECC/温度上昇→ジョブ/インシデントアイアン移行。
安全性と絶縁性
マルチテナンシー:MIGプロファイルまたはチームノードごとの名前空間/クォータ。
IOMMU/PSP、 cgroup、特権コンテナbarring、 CAP_constraint。
MPS(マルチプロセスサービス)-きちんと:より高い処分、しかし分離はMIGより弱いです。
サプライチェーン:コンテナ署名(コサイン)、アーティファクトの検証、モデルアップロードの制御。
データ/重み:ディスク上の暗号化、アクセス制御(ABAC/RBAC)、モデルの透かし/ハッシュレジスタ。
FinOps: コスト、クォータ、オートスケール
ノードプール:'train' (on-demand/reserves)、 'infer' (mix on-demand+spot)、 'exp' (spot-heavy)。
スポットの安定性:頻繁なチェックポイント、高速再起動ロジック、優先順位を持つ火山キュー。
Reserves/RI/Savingsは安定した基盤に計画します;空のノードを自動的に無効にします。
右サイジングモデル:「完全な」モデルの代りの量子化/LoRAのアダプター;SLAでMIGプロファイルを選択します。
予算の概要:チームごとのGPU時間割当、「1kリクエスト/トークンのコスト」。
YAMLパターンとアーティファクト
1) MIGのプロフィール(概念)
yaml apiVersion: nvidia. com/v1 kind: MigStrategy metadata: { name: mig-a100-1g10gb }
spec:
deviceFilter: "a100"
mode: single resources:
- profile: "1g. 10gb"
count: 7
2)訓練のための火山のキュー
yaml apiVersion: scheduling. volcano. sh/v1beta1 kind: Queue metadata: { name: train-q }
spec:
weight: 100 reclaimable: true capability:
resources:
- name: nvidia. com/gpu quantity: 64
3)回転推論の深さのオートスケールのためのKEDA
yaml apiVersion: keda. sh/v1alpha1 kind: ScaledObject metadata: { name: llm-infer }
spec:
scaleTargetRef: { name: llm-deploy }
pollingInterval: 5 minReplicaCount: 2 maxReplicaCount: 80 triggers:
- type: rabbitmq metadata:
queueName: infer-queue mode: QueueLength value: "200"
GPUクラスタ起動チェックリスト
- NVLink/IBトポロジーマップ;1つのNUMA上のNIC/GPU。
- ドライバ/CUDA一貫、オペレータ/デバイスプラグインがインストールされています。
- 名前空間のMIG/time-slicingプロファイルとクォータ。
- ステージングでテストされたDDP/FSDPパイプライン;チェックポイントは速い。
- Triton/vLLM-連続バッチ処理;p95とTPSのターゲットが設定されています。
- DCGM/Prometheus/Grafana+ECC アラート/温度/メモリ/TPS。
- セキュリティポリシー(PSP、コサイン、重量難読化/制御)。
- FinOps:スポット/リプール、$/1kトークンレポート、アイドル状態の自動シャットダウン。
よくあるエラー
トレーニングと推論は、緊張のない同じノードで混合される→GPU/IOは互いに「切断」される。
チェックポイントとプリエンプションロジックがない→その場で進行が失われる。
DCGMメトリックがない→「ブラインド」処分と過熱。
NUMA/PCIeトポロジ→低NCCL帯域幅を無視します。
MIG/time-slice→p99レイテンシと「Out of Memory」プロファイルが正しくありません。
TPS/latency→lateスケールではなくCPUによるHPA。
iGaming/フィンテック特異性
Antifraud/Scoring: SLA推論≤クリティカルパス(支払い/結論)に関する50 ms p95;「フォールバック」モデルライトを維持します。
推奨事項/パーソナライゼーション:夜間のオンポリシー/オフポリシー学習、オンライン機能-低遅延。
チャットアシスタント/RAG:コンテンツキャッシュ、要求Dedeuplication、ガードレール;ベクトル検索インデックスをシャーディングします。
ピーク(マッチ/トーナメント):モデル/kv-cacheの事前ウォームアップ、minReplicasの増加、VIPのためのQoSクラス。
合計
ハードウェア(HBM/NVLink/IB)、ソフトウェアマトリックス(CUDA/NCCL)、スケジューリング(MIG、キュー、テイン)、データ(高速パイプライン/GDS)、観測性(DCGS) M/SLO)とコスト(FinOps/quotas)が同時に動作します。これをIaCとクラスタポリシーにピン留めすると、予測可能な学習速度、安定した低p95レイテンシ推論、透過的なGPUクロックエコノミーが得られます。