9月3日、PyTorchが「PyTorch 2.14 Release Blog – PyTorch」と題した記事を公開した。PyTorch 2.14は、487名のコントリビューターによる2,995コミットで構成されるリリースで、パフォーマンス、信頼性、ハードウェアサポートの三軸で改善が入っている。特に分散学習・Apple Silicon・コンパイラ周りの変化が大きい。
最注目①:NVGEMMバックエンド
NVGEMM — GPU行列演算の新バックエンド
今回のリリースで最も実運用への影響が大きいのがNVGEMMだ。PyTorch 2.13でInductorに追加されたCuTeDSLコードパスを発展させた完全なGEMMバックエンドで、CUTLASSカーネルをCuTeDSLで生成し、エピローグフュージョン・スケールドGEMM・NVFP4 GEMMをサポートする。TritonおよびATenカーネルと並んでオートチューニングが走るため、ユーザーは意識せずとも状況に応じた最速カーネルが選択される。
低精度フォーマット(NVFP4)のサポートは、学習・推論時のメモリ消費削減に直結する。大規模モデルを多数のGPUで回しているチームには即効性のある変化だ。
最注目②:nccl2バックエンドと耐障害性強化
nccl2 — 分散通信の新バックエンド
PyTorch 2.13でtorchcommsという名称で導入された分散通信バックエンドが、nccl2に改名されin-treeバックエンドとして正式に取り込まれた。torchcommsはPyTorch 2.13時点では実験的な位置づけだったが、今回のリリースでより安定したAPIとして統合されている。ノンブロッキングコミュニケーターとeagerなコミュニケーター分割を実装し、既存のNCCLバックエンドとの完全な互換性を持ちながらスケーラビリティを改善している。
耐障害性がc10dの第一級概念に
フォルトトレランス(耐障害性)がc10dの第一級概念に昇格した。具体的には以下の機能が追加された:
- in-placeなプロセスグループ再構成:ノード障害時に全ジョブを再起動せず、実行中に構成を変え直せる
- One-sided RMA(Remote Memory Access)ウィンドウ
- Flight Recorder:従来NCCLのみ対応だったが、任意のバックエンドで動作するよう拡張
数百〜数千ノードで学習ジョブを走らせる環境では、ノード障害からのリカバリにかかるコストが大きな問題になる。これを「ゼロから再起動」ではなく「その場で再構成」できるようにする変化は、大規模学習インフラの運用負荷を下げる実用的な改善だ。
Apple Silicon:ネイティブ線形代数とMetal移行
Apple Silicon向けの改善も大幅だ。Jacobi法によるSVD、eigh(エルミート固有値分解)、QR分解、Cholesky分解がネイティブ実装として追加された。
MPS(Metal Performance Shaders)バックエンドでは、index_add、index_select、argmin/argmax、conv3d、median、linspace、arangeなど多数のオペレーターがAppleのMPSGraphフレームワークから手書きのMetalカーネルに移行した。MPSGraphはオペレーターごとにコンパイルコストが発生するが、ネイティブMetalカーネルはこれを排除し、スレッドディスパッチとメモリアクセスパターンをPyTorchが直接制御できる。
特に自己回帰デコード(LLMの推論)において、[B, 1, K]形状のアクティベーションがF.linearのfast pathから外れてbf16/fp16で8.5倍のスローダウン(処理遅延)を引き起こしていたバグが修正された。新規GEMVカーネルの追加と合わせ、MPS上での自己回帰デコードのパフォーマンスがCUDAとの差を大きく縮める。
コンパイラ:動的制御フローと宣言的動的シェイプ
torch.switch と torch.while_loop
torch.condは二分岐のみだったため、n方向分岐はネストした条件式で書くしかなく、トレースされるグラフが肥大化していた。新しい**torch.switch**はインデックスによる多方向分岐を直接表現できるHOPで、Mixture-of-Experts(MoE)アーキテクチャのようなモデルでの実用的なバリアを取り除く。また、torch.while_loopがCUDAグラフにキャプチャできるようになった。
@dynamic_spec — 動的シェイプの宣言的記述
@dynamic_specデコレーターにより、どのテンソル次元が実行時に変化するかを一箇所で宣言できるようになった。この宣言はtorch.compile、torch.export、make_fxの三者で共有されるため、これまで環境ごとに個別に設定していた動的シェイプの扱いが一元化される。
その他の主要変更
- Inductorのcompute/communication overlapがデフォルト有効化。分散学習のコンパイル済みワークロードが設定変更なしに自動で恩恵を受ける
- 複素数値テンソルへの
torch.compileサポートが実験的に追加。信号処理や科学計算、複素数値ニューラルネットワークへの適用が可能になるが、まだ全演算はサポートされていない - プラットフォーム拡張:AMD ROCm 7.14のwheelをTheRock pip SDKから提供、Intel XPUがネイティブグラフキャプチャをサポート、InductorがNVIDIAの次世代アーキテクチャRubin(sm_107)をターゲット対象に追加
- **
torch.linalg.polarとtorch.linalg.matrix_sqrth**が新規追加。前者はcuSOLVERのQDWHアルゴリズムを使った極分解で、学習ループ内での利用も可能
PyTorch 2.14に関するQ&Aウェビナーが2026年9月17日(木)に開催予定で、Meta、Reflection AI、Gottbrath Techのエンジニアが参加する。また、2026年10月20〜21日にカリフォルニア州サンノゼでPyTorch Conference North Americaが開催される。
詳細はPyTorch 2.14 Release Blog – PyTorchを参照していただきたい。