あなたの好奇心を刺激する、テックと科学の総合ニュースサイト

PyTorch 2.0が公開 – CPUとGPUのパフォーマンスが大幅に向上

数ヶ月のプレビュー期間を経て、PyTorch 2.0がPyTorch Foundationにより一般公開された。

オープンソースのPyTorchプロジェクトは、機械学習(ML)トレーニングのために最も広く使用されている技術の1つだ。もともとはFacebook(現Meta)が始めたPyTorch 1.0は2018年に登場し、数年にわたる段階的な改良の恩恵を受けている。

2022年9月、よりオープンなガバナンスを可能にし、より多くのコラボレーションと貢献を促すために、PyTorch Foundationが設立された。この努力は実を結び、2022年12月にPyTorch 2.0のベータ版がプレビューされた

PyTorch 2.0では、何よりもパフォーマンスが重視されている。実際、主要な新機能の1つにAccelerated Transformers(以前はBetter Transformersとして知られていた)がある。これは現代の大規模言語モデル(LLM)や生成AIの中核をなすもので、モデルが異なる概念間の接続を行うことを可能にする。

PyTorch 2.0では、メインAPIとしてtorch/compileを採用し、NVIDIAとAMDのGPUを搭載したTorchInductorでは、深層学習コンパイラをOpenAI Tritonに依存し、バックエンドのMetal Performance Shadersは、GPUアクセラレーションによるpyTorch on macOS、AWS Graviton CPUでの推論性能向上とその他様々な新しい試作機能・技術が採用されている。また、CPUの高速化のために、GNNの推論とトレーニングのいくつかの「重要な」最適化、およびIntel oneDNN Graphの活用によるCPUパフォーマンスの高速化が行われている。

「我々は、この次世代PyTorchシリーズにおける大幅な性能強化に特に期待しており、PyTorchの未来を形作るために、より大きなイノベーションで開発者を支援します」と、PyTorch Foundationの執行役員、Ibrahim Haddad氏はVentureBeatに書面で声明を発表している。

主な更新内容は以下の通りだ。

  • torch.compile は PyTorch 2.0 のメイン API で、モデルをラップしてコンパイルしたモデルを返します。これは完全に付加的な(そしてオプションの)機能であり、それゆえ2.0は定義上100%後方互換性があります。
  • torch.compileの基盤技術として、NVIDIAとAMDのGPUを搭載したTorchInductorは、OpenAI Triton深層学習コンパイラに依存して、パフォーマンスの高いコードを生成し、低レベルのハードウェア詳細を隠蔽します。OpenAI Tritonが生成するカーネルは、手書きのカーネルやcublasなどの特殊なcudaライブラリと同等の性能を達成します。
  • Accelerated Transformersは、scaled dot product attention(SPDA)用のカスタムカーネルアーキテクチャを使用して、学習と推論のための高性能サポートを導入しています。このAPIはtorch.compile()に統合されており、モデル開発者は新しいscaled_dot_product_attention()演算子を呼び出して、スケールドドットプロダクトアテンションカーネルを直接使用することもできます。
  • Metal Performance Shaders (MPS)バックエンドは、MacプラットフォームでGPUアクセラレーションによるPyTorchトレーニングを提供し、最も使用されているトップ60のオペレーションのサポートを追加し、300以上のオペレーションのカバレッジを実現しました。
  • Amazon AWSは、AWS Graviton3ベースのC7gインスタンスにおけるPyTorchのCPU推論を最適化します。PyTorch 2.0では、Resnet50やBertの改良を含め、Gravitonでの推論性能が以前のリリースと比較して向上しています。
  • TensorParallel、DTensor、2D parallel、TorchDynamo、AOTAutograd、PrimTorch、TorchInductorにわたる新しいプロトタイプ機能および技術。

PyTorch 2.0はMLをどう加速させるか?

PyTorchプロジェクトの目標は、最先端のトランスフォーマーモデルのトレーニングや展開をより簡単かつ迅速に行うことだ。

トランスフォーマーは、GPT-3(および現在のGPT-4)などのOpenAIのモデルを含む、現代のジェネレーティブAIの時代を実現するのに貢献した基礎的な技術だ。PyTorch 2.0 accelerated transformersでは、scaled dot product attention (SPDA)として知られるアプローチのためのカスタムカーネルアーキテクチャを使用して、学習と推論のための高性能なサポートが得られる。

トランスフォーマーをサポートできるハードウェアの種類は複数あるため、PyTorch 2.0は複数のSDPAカスタムカーネルをサポートすることが出来る。さらに、PyTorchはカスタムカーネル選択ロジックを統合し、与えられたモデルやハードウェアタイプに対して最高性能のカーネルを選択することが可能だ。

この高速化によって、開発者は以前のPyTorchよりも高速にモデルを学習できるようになり、その影響は計り知れないものがあるだろう。

「たった1行のコードを追加するだけで、PyTorch 2.0はTransformersモデルのトレーニングに1.5xから2.xのスピードアップを与えてくれます。これは、混合精度トレーニングが導入されて以来、最もエキサイティングなことです!」と、HuggingFace transformersのプライマリメンテナ、Sylvain Gugger氏はプレスリリースで述べている。


Source

Follow Me !

この記事が気に入ったら是非フォローを!

Share!!

関連コンテンツ

執筆者
Photo of author

masapoco

TEXAL管理人。中学生の時にWindows95を使っていたくらいの年齢。大学では物理を専攻していたこともあり、物理・宇宙関係の話題が得意だが、テクノロジー関係の話題も大好き。最近は半導体関連に特に興味あり。アニメ・ゲーム・文学も好き。最近の推しは、アニメ『サマータイムレンダ』

記事一覧を見る

コメントする