グラフコアのPoplar SDKの最新バージョンが利用可能になり、幅広く機能が拡張し、性能が向上しました。 Poplar SDKでは、最新の第3世代および前世代のBow Podシステムがサポートされており、お客様がIPUで高性能応用を革新および開発することが可能になっています。
Poplar SDK 2.5は、サポートポータルおよびDocker Hubからダウンロードできます。便利で使いやすい最新のPoplarコンテナがあります。
また、NLP、ビジョン、スピーチ、GNNなどの複数の応用分野にわたる、成長中のモデルガーデンに多くの新たな事例を追加しており、範囲と機能は広がり続けています。
POPLAR SDK 2.5のハイライト
新機能には、以下のようなものがあります。更新の完全なリストは、付属のリリースノートをご覧ください。
TensorFlow 2の拡張
このリリースでは、オープンソースバージョンのTensorFlow 2をバージョン2.5に更新しています。Keras Modelサブクラスの使用を可能にすることで、Kerasサポートを拡張し、Kerasモデル用のTensorFlowの視覚化ツールキットTensorBoardとの統合を改善しました。IPUでTensorBoardを使用する、新しいチュートリアルは、GitHubでご覧いただけます。
シリアル化されたコンパイル
Poplar SDK 2.5でデフォルトになっている、ホストメモリの最適化に加えて、一部のモデルでは、新しいオプションを使用して一度にIPUのサブセット用にモデルをコンパイルすることにより、コンパイル中のホストメモリの使用量を減らすことができます。この実験的な機能により、ユーザーはリソースが制限されたシステムで、大規模なモデルをコンパイルできます。Poplar SDK 2.6では、さらなる改善が行われます。
自動損失スケーリング
このリリースには、半精度でモデルをトレーニングする、実験的な自動損失スケーリング機能が含まれています。この機能により、トレーニング中の勾配統計に基づいて損失スケーリング係数を適応させることができ、勾配を表現するためのIEEE 754 16ビット浮動小数点形式の限られたダイナミックレンジが考慮されます。PyTorchおよびPopARTで記述されたモデルで使用できるため、ユーザーは正しいロススケーリング因子を手動で探す必要がなくなります。
オペレーターサポートと最適化の改善
PyTorch演算子のサポート数を拡大し続け、モデルのサポートをさらに拡大していきます。コンパイル時間、メモリ使用量、および実行時の性能を改善する最適化のメリットが、TensorFlowのループベースのモデル(RNNなど)にあります。Poplar SDK全体で、他の多くの最適化が行われました。
監視ツールとライブラリ
Poplar SDKには、IPUとライブラリを監視するための包括的なツールセットが含まれています。お客様はこれらの機能を独自のシステムに統合できます。このリリースで行われた改善には、ユーザーが大規模な展開でのIPUの可用性とステータスをよりよく理解できるようになるマルチユーザー/マルチホスト機能があります。
Poplar Tritonバックエンド
このリリースでは、Triton Inference Serverを使用してIPUで実行されるモデルを提供するプレビューサポートが追加されているため、ユーザーは推論モデルをもっと簡単に展開できるようになります。IPUでPopARTとTensorFlowを使用して記述されたモデルは、コンパイルしてPopEF(Poplar Exchange Format)ファイルに保存し、Poplar Tritonバックエンドから提供できます。詳細は、新しいPoplar Tritonバックエンド ユーザーガイドをご覧ください。
Ubuntu 20.04
Poplar SDK 2.5には、Ubuntu 20.04オペレーティングシステムの完全なサポートが含まれています(以前はプレビュー中でした)。
新しいモデルの例
ユーザーがIPU用に最適化された幅広いモデルを可能な限り簡単に展開できるよう、グラフコアは全力で取り組んでいます。モデルガーデンおよび関連するGitHubリポジトリを継続的に更新しています。
Poplar SDK 2.5リリースの一部として、以下の新しい例を利用可能にしています。
Computer vision
- ViT – 既存の微調整の例に追加された事前トレーニング(PyTorch)
- DINO(PyTorch)
- EfficientDet - 推論(TensorFlow 2)
- Neural Image Fields(TensorFlow 2)
- Swin Transformer - 事前トレーニング(PyTorch)
- ViT(Hugging Face Optimum、微調整)
- ConvNext(Hugging Face Optimum)
NLP
- PackedBERT(PyTorch、PopART)
- BERT-Large(TensorFlow 2)
- GPT2-S/XL - 推論(PyTorch)
- GPT2-M/L - トレーニング(PyTorch)
- BERT-Base/Large(Hugging Face Optimum、事前トレーニングと微調整)
- RoBERTa-Base/Large(Hugging Face Optimum、微調整)
- DeBERTa-Base(Hugging Face Optimum、微調整)
- LXMERT(Hugging Face Optimum、微調整)
- GPT2-S/M(Hugging Face Optimum、微調整)
- T5-Small(Hugging Face Optimum、微調整)
- BART-Base(Hugging Face Optimum、微調整)
Speech
- FastSpeech2 - 推論(TensorFlow 2)
- Conformer-Large(PyTorch)
- Fastpitch(PyTorch)
- HUBERT(Hugging Face Optimum、微調整)
- Wave2Vec2(Hugging Face Optimum)
GNN
- Cluster GCN(TensorFlow 2)
AI for simulation
- DeepDriveMD(TensorFlow 2)
IPUプログラマーのガイド
開始以来、IPUプログラマーのガイドは、グラフコアシステムの旅程を始める開発者にとって、欠かせない人気のあるリソースであることが証明されています。一般的なハードウェアとソフトウェアの概要から、IPUでのプログラムのコンパイルと実行まで、ユーザーをご案内します。
IPUプログラマーのガイドの新しいバージョンをご利用いただけるようになりました。レプリケーション、再演算、モデル並列化やパイプラインなどの一般的なアルゴリズム手法の新しいセクションを含む、広範な更新と追加があります。
最新のドキュメンテーションやチュートリアル、コード例、ウェビナー、ビデオ、研究論文など、IPUのプログラミングに関するあらゆる資料は当社の開発者ポータルでご覧いただけます。ぜひご活用ください。