Graphcore Poplar SDK Container Images が Docker Hub で利甚可胜に

投皿日 11月 12日, 2021幎

GraphcoreのPoplar® SDKは、開発者がDocker Hubを介しおアクセスでき、GraphcoreはDockerのVerified Publisher Programに参加しおいたす。 Dockerず協力しお、゜フトりェアスタックをコンテナむメヌゞずしお配垃し、開発者がGraphcore IPUシステムでMLアプリケヌションを簡単に構築、管理、デプロむできるようにしたす。

Graphcore Poplar SDK Container Images が Docker Hub で利甚可胜に

ハヌドりェアず゜フトりェアをさらに䜿いやすくするために、開発者゚クスペリ゚ンスを継続的に匷化しおいたす。 ちょうど1幎前、ナヌザヌ向けに事前に構築されたDockerコンテナのセレクションを導入したした。 珟圚、むノベヌションを掚進するずいうミッションの䞀環ずしお、Poplar SDK、PyTorch for IPU、TensorFlow for IPU、およびツヌルに、Docker Hub コミュニティのすべおの人が完党にアクセスできるようにしおいたす。

ここでは、開発者向けの内容ず開始方法の詳现に぀いお説明したす。

Dockerがコミュニティにずっお非垞に重芁である理由

Dockerはコンテナむメヌゞをプルするための䞻芁な゜ヌスになりたした - 最新のむンデックスレポヌトによるず、 Docker Hubでは合蚈 3,960億 件のプルがありたした。 さらに、Docker Hubは、80,000人の開発者が回答した 2021幎のスタックオヌバヌフロヌ調査 に基づいお、「最も求められ、愛され、䜿甚されおいる」 開発者ツヌルの1぀です。 

Dockerが最も欲しかった゜フトりェアツヌル

IPU開発者向けには、PyTorch、TensorFlowを䜿甚しお、たたはGraphcoreのPoplar SDKで盎接構築されたアプリケヌション甚に事前にパッケヌゞ化されたランタむム環境を提䟛するこずにより、IPUシステムの本番環境にデプロむされるアプリケヌション開発ワヌクフロヌを簡玠化および加速したす。 コンテナ化されたアプリケヌションは、䞀貫性のある反埩可胜な実行によりアプリケヌションの移怍性を高め、倚くの MLOps フレヌムワヌクにずっお重芁なむネヌブラヌです。

開発者は䜕を利甚できたすか?

珟圚、開発者は、特にマシンむンテリゞェンスアプリケヌション向けに、IPU(むンテリゞェンスプロセッシングナニット)ず共同蚭蚈されたPoplar゜フトりェアスタックを自由にむンストヌルできたす。 PoplarはGraphcoreのグラフツヌルチェヌンであり、暙準の機械孊習フレヌムワヌクず完党に統合された䜿いやすく柔軟な゜フトりェア開発環境の䞭栞に䜍眮しおいるため、開発者は既存のモデルを簡単に移怍できたす。 IPUから最倧のパフォヌマンスを匕き出すためにフルコントロヌルを望む開発者のために、ポプラはPopART™(ポプラアドバンストランタむム)を介しおPythonずC ++で盎接IPUプログラミングを可胜にしたす。

1

Poplar SDK むメヌゞは、次のリポゞトリからプルできたす。

  • ポプラSDK - ポプラ、ポップアヌト、およびIPUデバむスず察話するためのツヌルが含たれおいたす 
  • PyTorch for IPU – PyTorch がプレむンストヌルされた Poplar SDK リポゞトリのすべおが含たれおいたす
  • TensorFlow for IPU – TensorFlow 1 たたは 2 がプリむンストヌルされた Poplar SDK リポゞトリのすべおが含たれおいたす
  • ツヌル – IPUデバむスの管理ツヌルず蚺断ツヌル が含たれおいたす

たた、Docker Verified Publisher Programの䞀環ずしお、Graphcoreコンテナむメヌゞはレヌト制限から免陀されおおり、開発者はDocker Hubサブスクリプションに関係なく、Poplarに察しお無制限のコンテナむメヌゞリク゚ストを行うこずができたす。

ドッカヌでポプラを䜿い始める

Poplar Dockerコンテナは、IPUでモデルを実行するために必芁なすべおのものを完党なファむルシステムにカプセル化したす(぀たり、グラフコアのポプラ® SDK、ランタむム環境、システムツヌル、コンフィグ、ラむブラリ)。これらのむメヌゞを䜿甚しお IPU コヌドを実行するには、次の手順を完了する必芁がありたす。

1.ホストマシンにDockerをむンストヌルしたす
2. Graphcore の Poplar SDK コンテナむメヌゞを Docker Hub からプルする
3. IPUぞのアクセスを準備する
4. Docker コンテナで IPU のアクセシビリティを確認する
5. IPUのサンプルアプリコヌド

ホスト マシンに Docker をむンストヌルする

Docker のむンストヌルは、オペレヌティング システム、バヌゞョン、およびプロセッサによっお異なりたす。 

Docker の入門ガむドに埓うこずができたす。

Graphcore の Poplar SDK コンテナむメヌゞを Docker Hub からプルする

Docker がむンストヌルされたら、コマンドを実行しお、ホストされおいるむメヌゞを Docker Hub からダりンロヌドし、ホスト マシンで実行できたす。 Poplar SDK コンテナヌ むメヌゞは、Docker Hub 䞊の Graphcore Poplar リポゞトリからプルできたす。

4 ぀のリポゞトリがあり、これらのリポゞトリには、SDK のバヌゞョン、OS、アヌキテクチャに基づいお耇数のむメヌゞが含たれおいる堎合がありたす。

  • グラフコア/ピトヌチ
  • グラフコア/テン゜ルフロヌ
  • グラフコア/ポプラ
  • グラフコア/ツヌル

フレヌムワヌクリポゞトリからプルするず、デフォルトでAMDホストプロセッサ甚にコンパむルされた最新バヌゞョンのSDKがダりンロヌドされたす。

最新の TensorFlow むメヌゞをプルするには、以䞋を䜿甚したす。

$ docker pull graphcore/tensorflow

特定の SDK バヌゞョンずプロセッサに察しお特定のビルドを遞択する堎合は、 Docker むメヌゞタグに基づいおタグを構成できたす。

IPU ぞのアクセスの準備

PODでIPUず通信するには、ホストマシンずIPU(ファブリック䞊のIPU(IPUoF))間の接続を構成する必芁がありたす。Poplarがデバむスにアクセスするために必芁な情報は、デフォルトでホヌムディレクトリのディレクトリに曞き蟌たれるIPUoF構成ファむルを介しお枡すこずができたす()。~/.ipuof.conf.d構成ファむルは、PoplarホストがV-IPUコントロヌラヌに盎接ネットワヌクにアクセスできない堎合に圹立ちたす(セキュリティ䞊の理由など)。 

Graphcloudを䜿甚しおいる堎合、新しいナヌザヌが䜜成されおPODに远加されるたびに、IPUoFのデフォルトの構成ファむルが生成されたす。 .confがあるかどうかを確認したす そのフォルダ内のファむル(䟋:~/.ipuof.conf.d/lr21-3-16ipu.conf).この蚭定がある堎合は、次の手順に進むこずができたす。

利甚できない堎合は、 V-IPUガむド:はじめにに埓っお、V-IPUサヌバヌに接続するようにPoplarを構成する必芁がありたす。 IPUoF構成ファむルをフォルダヌ ~/.ipuof.conf.d に保存しお、次のセクションのスクリプトを実行するこずに泚意しおください。

Docker コンテナを䜿甚した IPU のアクセシビリティの怜蚌

コンテナの準備ができたので、コンテナ内からIPUにアクセスできるかどうかを確認できたす。

コンテナのコンテキスト内のIPUデバむスを䞀芧衚瀺するには、次のコマンドを実行したす。

$ docker run --rm --ulimit memlock=-1:-1 --net=host --cap-add=IPC_LOCK --device=/dev/infiniband --ipc=host -v ~/.ipuof.conf.d/:/etc/ipuof.conf.d -it graphcore/tools gc-info -l

サンプルの TensorFlow アプリを実行する

たず、GitHub の Graphcore チュヌトリアル リポゞトリからコヌドを取埗したす。

$ git clone https://github.com/graphcore/tutorials.git

$ cdチュヌトリアル

Docker コンテナヌは分離された環境です。 空になり、ホストマシンのファむルシステムにアクセスできなくなりたす。ホスト マシンのデヌタを䜿甚するには、Docker コンテナヌ内でデヌタにアクセスできる必芁がありたす。 

ディレクトリをボリュヌムずしおマりントし、ホスト マシンず Docker コンテナヌ環境の間でデヌタを共有するこずで、デヌタにアクセスできるようにするこずができたす。 

Dockerベヌスの開発環境で䜜業する堎合の䞀般的なパタヌンは、珟圚のディレクトリをコンテナにマりントし(セクション 2.2, ホストからのディレクトリのマりントを参照)、コンテナ -w <dir name>内の䜜業ディレクトリを で蚭定したす。 たずえば、-v "$(pwd):/app" -w /app.

TensorFlow コンテナヌで mnist の䟋を実行するには、次のコマンドを䜿甚しお、チュヌトリアル リポゞトリを Docker コンテナヌにマりントしお実行したす。

$ docker run --rm --ulimit memlock=-1:-1 --net=host --cap-add=IPC_LOCK --device=/dev/infiniband --ipc=host -v ~/.ipuof.conf.d/:/etc/ipuof.conf.d -it -v "$(pwd):/app" -w /app graphcore/tensorflow:2 python3 simple_applications/tensorflow2/mnist/mnist.py

このゲストブログ投皿は もずもずここに掲茉されたした。

関連蚘事