NCCL/RDMA fabric 失敗の観測・診断・復旧設計
記事状態: 公開 · 最終確認: 2026-10-20
要点
「NCCL/RDMA障害はNCCL errorだけで根因を決めず、RAS/diagnostics、GPU・NVLink・PCIe、NIC/RDMA、fabric、nccl-tests、framework イベントを同一incidentで相関し、fault domainを段階的に狭める。正常時比較の基準を保存し、復旧後も同条件で再検証する。バージョン依存の診断機能と設定はlive環境で確認する。」
現在の判断
「NCCL/RDMA障害はNCCL errorだけで根因を決めず、RAS/diagnostics、GPU・NVLink・PCIe、NIC/RDMA、fabric、nccl-tests、framework イベントを同一incidentで相関し、fault domainを段階的に狭める。正常時比較の基準を保存し、復旧後も同条件で再検証する。バージョン依存の診断機能と設定はlive環境で確認する。」
どこまで当てはまるか
NCCL/RDMA fabric 失敗の観測・診断・復旧設計
詳しく理解する
主要記述・判断
分散GPU workloadのhang・collective 処理待ち時間の上限・性能急落を、NCCL errorだけから単一の全体の起点 causeへ直結させてはいけません。NCCL 2.32.3の公式Troubleshootingは、built-in Diagnostics、GPU troubleshooting、Networking Troubleshooting、実行環境/MPI、Performance/Tuning、Logging、RASを別レイヤーとして案内しています。NCCL RASは2.24以降、実行中jobの状態を低overheadで収集し、unresponsive process等のoutlierを見つけて「疑わしい箇所を絞る」機構です。NVIDIA自身も、RAS情報からシステム log analysis等の別手法へ進んで全体の起点 causeを狭める設計を示しており、RAS単独の自動根因判定器として扱うのは不適切です。
NCCL 2.31以降のbuilt-in diagnosticsは、RAS diagnosticsとactive diagnosticsを分離します。RAS diagnosticsはGPU inventory、CUDA/driver、NCCL 設定等をrank間で比較するreadiness probeであり、NCCL data path自体をexerciseしません。active diagnosticsはcommunicator initialization時に実通信pathへdataを流し、GPU間P2Pやnetwork pathを検証します。したがって「設定整合性」「GPU/NVLink/PCIe」「NIC/RDMA」「fabric」「NCCL collective」「framework/process」の観測を段階化し、どの層で異常が再現するかを記録する必要があります。
実装・運用
- jobごとに
job_id,rank,host,gpu_uuid,nic/hca,rail,NCCL version,CUDA/driver,NCCL config fingerprint,topology snapshotを紐付けます。 - NCCL RASを有効なバージョンでは常時観測面として使い、hang/crash時にprocess/communicator状態とoutlierを取得します。RASの指摘は全体の起点 causeではなく「次に調べる対象」として保存します。
- NCCL 2.31+では、事前readinessにRAS diagnostics、通信path検証にactive diagnosticsを使い分けます。active diagnosticsはdefault disabledなので、実行policyを明示します。
- node admission/preflightではDCGM diagnosticsとGPU/NVLink/PCIe healthを確認し、失敗 nodeをschedulerから隔離できる運用へ接続します。
- InfiniBand/RoCEではlink 状態だけでなくbandwidth、latency、再試行/error、port/fabric counterを比較の基準化します。multi-rail環境ではrail単位で比較します。
nccl-testsをknown-good topologyで定期実行し、pairwise/group 比較の基準を保存します。異常時はslow pair→片側node交換→rail固定の順でfault domainを狭めます。- NCCL log、kernel log、Xid/SXid、DCGM、RDMA/NIC counter、switch 稼働状況の記録、framework 再試行/restart イベントを同一incident timelineへ結合します。
- 復旧は原因層ごとに分けます。process/rank 失敗ならframework/job restart、node/GPU/NIC faultならdrain/quarantine、fabric faultならrail/path隔離またはnetwork remediationを選び、原因未確定のままNCCL tuningだけで恒久復旧扱いにしません。
- 復旧後は同じdiagnosticと比較の基準 testを再実行し、正常化結果の照合をincident close条件にします。
適用境界
NCCL RAS/Diagnosticsの機能はバージョン依存です。RASは2.24以降、RAS diagnosticsとactive diagnosticsは2.31以降の機能を含むため、clusterの実NCCL バージョンを確認してからrunbookへ組み込みます。短命communicatorではRAS diagnosticsが非同期収集のため情報不完全になり得ます。
InfiniBandとRoCEでは確認すべきcounter・ツール・fabric設定が異なります。NCCL_IB_GID_INDEX等の設定もバージョン依存で、現行NCCL文書は2.21以降のRoCE GID 索引動的選択を説明しています。古いrunbookを現行clusterへ機械適用しません。
出典 / 出典・来歴 locators
- NVIDIA NCCL 2.32.3, Troubleshooting: https://docs.nvidia.com/deeplearning/nccl/user-guide/docs/troubleshooting.html
- NVIDIA NCCL 2.32.3, RAS: https://docs.nvidia.com/deeplearning/nccl/user-guide/docs/troubleshooting/ras.html
- NVIDIA NCCL 2.32.3, Diagnostics: https://docs.nvidia.com/deeplearning/nccl/user-guide/docs/troubleshooting/diagnostics.html
- NVIDIA NCCL 2.32.3, Networking Troubleshooting: https://docs.nvidia.com/deeplearning/nccl/user-guide/docs/troubleshooting/networking_troubleshooting.html
- NVIDIA GPU Debug Guidelines, GPU Node Triage: https://docs.nvidia.com/deploy/gpu-debug-guidelines/gpu-node-triage.html
- NVIDIA NCCL 仕様・利用方法の文書 Archives (2.30.7 / 2.31.2 / 2.32.3): https://docs.nvidia.com/deeplearning/nccl/archives/index.html
よくある失敗・反証
典型的な失敗は、NCCL 処理待ち時間の上限を見てNCCL環境変数を先に変更し、hardware/fabric degradationを隠すことです。NCCL Networking Troubleshootingは、InfiniBandでは
ibstat/ibstatusによるlink 状態/rate、ib_write_bw/ib_write_latによるbandwidth/latency、rdma statisticの再試行/error、perfqueryやibdiagnetによるfabric診断を案内しています。RoCEではethtool -S、PFC/ECN/CNP/queue drop等のcounter、rping等を確認します。GPU/node側も切り分けます。NVIDIA GPU Debug GuidelinesはDCGM diagnosticsを本番環境 node health/readiness検査として位置付け、network性能は
nccl-testsのall_reduce_perf等で比較の基準を取得し、slow pairを別nodeとのpairwise testで再検証して問題node/railを絞ることを推奨しています。したがって「job失敗時だけ測る」のではなく、正常時比較の基準を保存して差分で判断する方が有効です。grey 失敗にも注意が必要です。linkがUPでもerror増加、遅い要求の応答時間、retransmission、driver/firmware異常でcollective全体が遅くなることがあります。単純なup/down health checkだけでは不足します。
active diagnosticsが成功しても、アプリケーション traffic時だけ発生するcongestion、scale依存、thermal/power、intermittent grey 失敗、framework-level deadlockを否定できません。逆にdiagnostic 失敗も、即座に特定hardware部品の故障を証明するとは限りません。
nccl-testsの比較の基準は有用ですが、collective、message size、node count、topology、GPU/NIC generation、処理先の振り分け、background trafficが違えば性能期待値も変わります。別clusterの数値を固定thresholdとして流用せず、自環境比較の基準と同条件比較を優先します。
まだ確認できていないこと
- EA-749-UNKNOWN-01
- 実clusterでのNCCL/CUDA/driver/DCGM/NIC firmwareのバージョン matrix
- 各rail・switch portまでrank/GPU/NICを結ぶinventoryの完全性
- grey 失敗検知に使うcounterの組織固有threshold
- frameworkごとのrank 失敗時restart semanticsと途中状態の保存地点 loss
- cloud-managed fabricで利用者に公開されないswitch/稼働状況の記録範囲
- active diagnosticsの実行costと本番環境 preflight頻度
根拠資料
- 研究資料研究資料
NVIDIA NCCL 2.32.3, Troubleshooting:
確認上の限界
元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
- 研究資料研究資料
NVIDIA NCCL 2.32.3, RAS:
確認上の限界
元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
- 研究資料研究資料
NVIDIA NCCL 2.32.3, Diagnostics:
確認上の限界
元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
- 研究資料研究資料
NVIDIA NCCL 2.32.3, Networking Troubleshooting:
確認上の限界
元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
- 研究資料研究資料
NVIDIA GPU Debug Guidelines, GPU Node Triage:
確認上の限界
元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
- 研究資料研究資料
NVIDIA NCCL 仕様・利用方法の文書 Archives (2.30.7 / 2.31.2 / 2.32.3):
確認上の限界
元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
更新履歴
EA-749-RESEARCH-20261020-R1: 正式な 監査/publication 対応付け
出典ID・検証情報・機械可読データ
根拠の種類と情報の鮮度は、ラベルとアイコンで確認できます。
- 記事ID
- EA-749
- 最終確認日
- 2026-10-20
- 提供元・モデル・プラン・利用環境
- —
- 対象地域
- —
元資料の全文と収録照合記録
主要claim
分散GPU workloadのhang・collective timeout・性能急落を、NCCL errorだけから単一のroot causeへ直結させてはいけません。NCCL 2.32.3の公式Troubleshootingは、built-in Diagnostics、GPU troubleshooting、Networking Troubleshooting、Runtime/MPI、Performance/Tuning、Logging、RASを別レイヤーとして案内しています。NCCL RASは2.24以降、実行中jobの状態を低overheadで収集し、unresponsive process等のoutlierを見つけて「疑わしい箇所を絞る」機構です。NVIDIA自身も、RAS情報からsystem log analysis等の別手法へ進んでroot causeを狭める設計を示しており、RAS単独の自動根因判定器として扱うのは不適切です。
NCCL 2.31以降のbuilt-in diagnosticsは、RAS diagnosticsとactive diagnosticsを分離します。RAS diagnosticsはGPU inventory、CUDA/driver、NCCL configuration等をrank間で比較するreadiness probeであり、NCCL data path自体をexerciseしません。active diagnosticsはcommunicator initialization時に実通信pathへdataを流し、GPU間P2Pやnetwork pathを検証します。したがって「設定整合性」「GPU/NVLink/PCIe」「NIC/RDMA」「fabric」「NCCL collective」「framework/process」の観測を段階化し、どの層で異常が再現するかを記録する必要があります。
運用上の意味・failure
典型的なfailureは、NCCL timeoutを見てNCCL環境変数を先に変更し、hardware/fabric degradationを隠すことです。NCCL Networking Troubleshootingは、InfiniBandではibstat/ibstatusによるlink state/rate、ib_write_bw/ib_write_latによるbandwidth/latency、rdma statisticのretry/error、perfqueryやibdiagnetによるfabric診断を案内しています。RoCEではethtool -S、PFC/ECN/CNP/queue drop等のcounter、rping等を確認します。
GPU/node側も切り分けます。NVIDIA GPU Debug GuidelinesはDCGM diagnosticsをproduction node health/readiness検査として位置付け、network性能はnccl-testsのall_reduce_perf等でbaselineを取得し、slow pairを別nodeとのpairwise testで再検証して問題node/railを絞ることを推奨しています。したがって「job失敗時だけ測る」のではなく、正常時baselineを保存して差分で判断する方が有効です。
grey failureにも注意が必要です。linkがUPでもerror増加、tail latency、retransmission、driver/firmware異常でcollective全体が遅くなることがあります。単純なup/down health checkだけでは不足します。
具体的control / implementation implication
- jobごとに
job_id,rank,host,gpu_uuid,nic/hca,rail,NCCL version,CUDA/driver,NCCL config fingerprint,topology snapshotを紐付けます。 - NCCL RASを有効なversionでは常時観測面として使い、hang/crash時にprocess/communicator状態とoutlierを取得します。RASの指摘はroot causeではなく「次に調べる対象」として保存します。
- NCCL 2.31+では、事前readinessにRAS diagnostics、通信path検証にactive diagnosticsを使い分けます。active diagnosticsはdefault disabledなので、実行policyを明示します。
- node admission/preflightではDCGM diagnosticsとGPU/NVLink/PCIe healthを確認し、failure nodeをschedulerから隔離できる運用へ接続します。
- InfiniBand/RoCEではlink stateだけでなくbandwidth、latency、retry/error、port/fabric counterをbaseline化します。multi-rail環境ではrail単位で比較します。
nccl-testsをknown-good topologyで定期実行し、pairwise/group baselineを保存します。異常時はslow pair→片側node交換→rail固定の順でfault domainを狭めます。- NCCL log、kernel log、Xid/SXid、DCGM、RDMA/NIC counter、switch telemetry、framework retry/restart eventを同一incident timelineへ結合します。
- recoveryは原因層ごとに分けます。process/rank failureならframework/job restart、node/GPU/NIC faultならdrain/quarantine、fabric faultならrail/path隔離またはnetwork remediationを選び、原因未確定のままNCCL tuningだけで恒久復旧扱いにしません。
- 復旧後は同じdiagnosticとbaseline testを再実行し、正常化readbackをincident close条件にします。
適用境界
NCCL RAS/Diagnosticsの機能はversion依存です。RASは2.24以降、RAS diagnosticsとactive diagnosticsは2.31以降の機能を含むため、clusterの実NCCL versionを確認してからrunbookへ組み込みます。短命communicatorではRAS diagnosticsが非同期収集のため情報不完全になり得ます。
InfiniBandとRoCEでは確認すべきcounter・tool・fabric設定が異なります。NCCL_IB_GID_INDEX等の設定もversion依存で、現行NCCL文書は2.21以降のRoCE GID index動的選択を説明しています。古いrunbookを現行clusterへ機械適用しません。
counterevidence / limitations
active diagnosticsが成功しても、application traffic時だけ発生するcongestion、scale依存、thermal/power、intermittent grey failure、framework-level deadlockを否定できません。逆にdiagnostic failureも、即座に特定hardware部品の故障を証明するとは限りません。
nccl-testsのbaselineは有用ですが、collective、message size、node count、topology、GPU/NIC generation、routing、background trafficが違えば性能期待値も変わります。別clusterの数値を固定thresholdとして流用せず、自環境baselineと同条件比較を優先します。
OPEN_UNKNOWN
- 実clusterでのNCCL/CUDA/driver/DCGM/NIC firmwareのversion matrix
- 各rail・switch portまでrank/GPU/NICを結ぶinventoryの完全性
- grey failure検知に使うcounterの組織固有threshold
- frameworkごとのrank failure時restart semanticsとcheckpoint loss
- cloud-managed fabricで利用者に公開されないswitch/telemetry範囲
- active diagnosticsの実行costとproduction preflight頻度
SAFE_WORDING
「NCCL/RDMA障害はNCCL errorだけで根因を決めず、RAS/diagnostics、GPU・NVLink・PCIe、NIC/RDMA、fabric、nccl-tests、framework eventを同一incidentで相関し、fault domainを段階的に狭める。正常時baselineを保存し、復旧後も同条件で再検証する。version依存の診断機能と設定はlive環境で確認する。」
Source / provenance locators
- NVIDIA NCCL 2.32.3, Troubleshooting: https://docs.nvidia.com/deeplearning/nccl/user-guide/docs/troubleshooting.html
- NVIDIA NCCL 2.32.3, RAS: https://docs.nvidia.com/deeplearning/nccl/user-guide/docs/troubleshooting/ras.html
- NVIDIA NCCL 2.32.3, Diagnostics: https://docs.nvidia.com/deeplearning/nccl/user-guide/docs/troubleshooting/diagnostics.html
- NVIDIA NCCL 2.32.3, Networking Troubleshooting: https://docs.nvidia.com/deeplearning/nccl/user-guide/docs/troubleshooting/networking_troubleshooting.html
- NVIDIA GPU Debug Guidelines, GPU Node Triage: https://docs.nvidia.com/deploy/gpu-debug-guidelines/gpu-node-triage.html
- NVIDIA NCCL Documentation Archives (2.30.7 / 2.31.2 / 2.32.3): https://docs.nvidia.com/deeplearning/nccl/archives/index.html
EVD-EA-749-URL-FFF3B3BBB6F0研究資料研究資料根拠の出所: SOURCE_PACKET_REFERENCENVIDIA NCCL 2.32.3, Troubleshooting:
- 裏付ける内容
- —
- 確認日
- —
- 出典・実験ID
- SRC-EA-749-URL-FFF3B3BBB6F0
- 検証箇所
- Source / provenance locators · - NVIDIA NCCL 2.32.3, Troubleshooting: https://docs.nvidia.com/deeplearning/nccl/user-guide/docs/troubleshooting.html
- 適用範囲
- Source / provenance locators
- 出典・来歴
- SOURCE_PACKET_REFERENCE_PROJECTED
- 限界
- 元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
EVD-EA-749-URL-045F80529C89研究資料研究資料根拠の出所: SOURCE_PACKET_REFERENCE- 裏付ける内容
- —
- 確認日
- —
- 出典・実験ID
- SRC-EA-749-URL-045F80529C89
- 検証箇所
- Source / provenance locators · - NVIDIA NCCL 2.32.3, RAS: https://docs.nvidia.com/deeplearning/nccl/user-guide/docs/troubleshooting/ras.html
- 適用範囲
- Source / provenance locators
- 出典・来歴
- SOURCE_PACKET_REFERENCE_PROJECTED
- 限界
- 元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
EVD-EA-749-URL-29D01659A58E研究資料研究資料根拠の出所: SOURCE_PACKET_REFERENCENVIDIA NCCL 2.32.3, Diagnostics:
- 裏付ける内容
- —
- 確認日
- —
- 出典・実験ID
- SRC-EA-749-URL-29D01659A58E
- 検証箇所
- Source / provenance locators · - NVIDIA NCCL 2.32.3, Diagnostics: https://docs.nvidia.com/deeplearning/nccl/user-guide/docs/troubleshooting/diagnostics.html
- 適用範囲
- Source / provenance locators
- 出典・来歴
- SOURCE_PACKET_REFERENCE_PROJECTED
- 限界
- 元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
EVD-EA-749-URL-D56263F64718研究資料研究資料根拠の出所: SOURCE_PACKET_REFERENCENVIDIA NCCL 2.32.3, Networking Troubleshooting:
- 裏付ける内容
- —
- 確認日
- —
- 出典・実験ID
- SRC-EA-749-URL-D56263F64718
- 検証箇所
- Source / provenance locators · - NVIDIA NCCL 2.32.3, Networking Troubleshooting: https://docs.nvidia.com/deeplearning/nccl/user-guide/docs/troubleshooting/networking_troubleshooting.html
- 適用範囲
- Source / provenance locators
- 出典・来歴
- SOURCE_PACKET_REFERENCE_PROJECTED
- 限界
- 元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
EVD-EA-749-URL-9D7E75E24ECD研究資料研究資料根拠の出所: SOURCE_PACKET_REFERENCENVIDIA GPU Debug Guidelines, GPU Node Triage:
- 裏付ける内容
- —
- 確認日
- —
- 出典・実験ID
- SRC-EA-749-URL-9D7E75E24ECD
- 検証箇所
- Source / provenance locators · - NVIDIA GPU Debug Guidelines, GPU Node Triage: https://docs.nvidia.com/deploy/gpu-debug-guidelines/gpu-node-triage.html
- 適用範囲
- Source / provenance locators
- 出典・来歴
- SOURCE_PACKET_REFERENCE_PROJECTED
- 限界
- 元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
EVD-EA-749-URL-64C290BB7C2D研究資料研究資料根拠の出所: SOURCE_PACKET_REFERENCENVIDIA NCCL Documentation Archives (2.30.7 / 2.31.2 / 2.32.3):
- 裏付ける内容
- —
- 確認日
- —
- 出典・実験ID
- SRC-EA-749-URL-64C290BB7C2D
- 検証箇所
- Source / provenance locators · - NVIDIA NCCL Documentation Archives (2.30.7 / 2.31.2 / 2.32.3): https://docs.nvidia.com/deeplearning/nccl/archives/index.html
- 適用範囲
- Source / provenance locators
- 出典・来歴
- SOURCE_PACKET_REFERENCE_PROJECTED
- 限界
- 元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
EA-749-CURRENT-APPROVAL研究資料研究資料根拠の出所: AUDITED_CANONICAL_RESEARCH_PACKET現行本文の監査・revision対応
- 裏付ける内容
- 現行台帳のAUDIT_PASSと候補・revision・本文ハッシュの対応を確認しています。
- 確認日
- —
- 出典・実験ID
- EA749-CANDIDATE-20261020-1105JST-C1
- 検証箇所
- 1KqhJtiSb2S84rWmeYVwKcT_76dBwZ_B0ZZuAWQqH0rQ/EA_REVISION_LEDGER#ea_id=EA-749&revision_id=EA-749-RESEARCH-20261020-R1&candidate_id=EA749-CANDIDATE-20261020-1105JST-C1 · EA-749-RESEARCH-20261020-R1
- 適用範囲
- —
- 出典・来歴
- CURRENT_CANONICAL_APPROVAL_READBACK
- 限界
- 監査状態と来歴の記録です。外部根拠の最新性や本文の全主張を追加保証しません。
EA-749-CURRENT-BODY-READBACK実装資料実装資料根拠の出所: IMPLEMENTATION_READBACK現行本文の収録照合
- 裏付ける内容
- 公開生成入力の本文SHA-256が、監査済み候補に結び付いたハッシュと一致しています。
- 確認日
- 2026-10-20
- 出典・実験ID
- BODY-SHA256:0f272d78f4cd6095e3dbec161c61a355e93046d3f66350348d887500a8dbd277
- 検証箇所
- content/staging/EA-749.md · 0f272d78f4cd6095e3dbec161c61a355e93046d3f66350348d887500a8dbd277 · EA-749-RESEARCH-20261020-R1
- 適用範囲
- —
- 出典・来歴
- CURRENT_APPROVED_BODY_HASH_MATCH
- 限界
- 本文の同一性の検査です。外部システムの挙動や全主張の真偽を実証したものではありません。
- 出典ID
- EA749-CANDIDATE-20261020-1105JST-C1, SRC-EA-749-URL-FFF3B3BBB6F0, SRC-EA-749-URL-045F80529C89, SRC-EA-749-URL-29D01659A58E, SRC-EA-749-URL-D56263F64718, SRC-EA-749-URL-9D7E75E24ECD, SRC-EA-749-URL-64C290BB7C2D, BODY-SHA256:0f272d78f4cd6095e3dbec161c61a355e93046d3f66350348d887500a8dbd277
- 追跡中のUNKNOWN ID
- EA-749-UNKNOWN-01
- 再確認のきっかけ
- 正式な 改訂版/publication 状態 change · 本文 成果物 hash change · 出典 現行性 change · new contradiction or 実装 結果の照合
機械検査: 通過 — 機械検査の結果です。情報の正確性や実行の承認を保証するものではありません。
同じ記事IDの機械可読データです。