<img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=145304570664993&amp;ev=PageView&amp;noscript=1">

91玉篇撞

91玉篇撞 Poplar SDK Container Images Now Available on Docker Hub

Nov 17, 2021 \ Software

91玉篇撞 Poplar SDKのコンテナイメ�`ジがDocker Hubで旋喘辛嬬に

永宀

Rycharde Hawkes

云晩から、蝕�k宀が91玉篇撞のPoplar? SDKをようになりました。またそれに育い、91玉篇撞はDocker芙の範協巷蝕宀パ�`トナ�`プログラムに歌紗しました。さらにDocker芙と慌揖で、輝芙のソフトウェアスタックをコンテナイメ�`ジとして塘下し、蝕�k宀が91玉篇撞のIPUシステム貧でMLアプリケ�`ションを酒�gに更廏、砿尖、婢蝕できるようにしています。

輝芙は、ハ�`ドウェアとソフトウェアをさらに聞いやすくすることを朕炎に、蝕�k宀のエクスペリエンス�鯢呂鉾,袗蕕濔Aけています。ちょうど1定念、あらかじめ更廏されたDockerコンテナをユ�`ザ�`�鬚韻傍屡襪靴泙靴拭�そして書指、イノベ�`ションを容序するという輝芙の朕炎の匯桟として、輝芙のPoplar SDK、PyTorch for IPU、TensorFlow for IPU、およびToolsをDocker Hubコミュニティの豊もが頼畠に旋喘できるようにしました。

ここからは、蝕�k宀�鬚韻離瓮螢奪箸箸修寮�喘圭隈ついて�蠅靴��h苧します。

コミュニティにとってDockerが嶷勣である尖喇

いまやDockerは、コンテナイメ�`ジをプルするための麼勣なソ�`スとなっています。によると、Docker Hubではこれまでに雰貧恷互となる、栽柴3960叮指のプルが佩われています。さらに、8嵐繁の蝕�k宀が指基したによると、Docker Hubは仝恷も箔められ、握され、聞われている々蝕�k宀ツ�`ルの匯つであり�Aけています。

Docker most wanted software tool

PyTorch、TensorFlow、または91玉篇撞のPoplar SDKを岷俊聞って恬撹されたアプリケ�`ション喘に、あらかじめパッケ�`ジ晒されたランタイム桟廠が戻工されているので、IPU蝕�k宀は輝芙のDockerコンテナイメ�`ジを聞喘することで、IPUシステム貧で云桑桟廠に婢蝕されるアプリケ�`ション蝕�kのワ�`クフロ�`を酒殆晒?互堀晒できます。コンテナ晒されたアプリケ�`ションでは、�g佩に匯香來と郡畻苗榻圓�伏まれることで卞峅來が互まり、謹くのMLOpsフレ�`ムワ�`クにとって嶷勣なイネ�`ブラ�`となります。

蝕�k宀が佩えること

云晩より、IPU�┘ぅ鵐謄螢献Д鵐好廛蹈札奪轡鵐哀罐縫奪硲�と亅距譜柴された、Poplarの字亠岑嬬アプリケ�`ション��喘ソフトウェアスタックを蝕�k宀が徭喇にインスト�`ルできるようになりました。Poplarは91玉篇撞のグラフツ�`ルチェ�`ンであり、輝芙の聞いやすく悲罷なソフトウェア蝕�k桟廠の嶄宰をなすもので、炎�糞弔併�亠僥楼フレ�`ムワ�`クと頼畠に由栽されているので、蝕�k宀は屡贋のモデルを酒�gに卞峅できます。頼畠崙囮してIPUの來嬬を恷寄�泙牧�き竃したい蝕�k宀のために、PoplarではPopART?��Poplar Advanced Runtime��を初してPythonやC++でIPUを岷俊プログラミングできます。

Poplar 011021@1920x-100_compressed

輝芙のPoplar SDKイメ�`ジは、參和のリポジトリからプルできます。

  • �C Poplar、PopART、およびIPUデバイスを荷恬するためのツ�`ルが根まれています。 
  • �C Poplar SDKリポジトリのすべてが根まれており、PyTorchがプリインスト�`ルされています。
  • �C Poplar SDKリポジトリのすべてが根まれており、TensorFlow 1または2がプリインスト�`ルされています。
  • �C IPUデバイスの砿尖?寶僅喘ツ�`ルが根まれています。

またDocker巷蝕宀プログラムの匯桟として、91玉篇撞のコンテナイメ�`ジはレ�`ト崙�泙�窒茅されています。つまり蝕�k宀は、Docker Hubのサブスクリプションに�v�Sなく、涙崙�泙�Poplarのコンテナイメ�`ジをリクエストできます。

DockerでPoplarを聞うには

PoplarのDockerコンテナでは、IPUでモデルを�g佩するために駅勣なものすべて��91玉篇撞のPoplar? SDK、ランタイム桟廠、システムツ�`ル、更撹、ライブラリなど��が、頼畠なファイルシステムにカプセル晒されています。 これらのイメ�`ジを聞喘し、IPUコ�`ドを�g佩するためには、參和の返乏を頼阻する駅勣があります。

1.  ホストマシンにDockerをインスト�`ルします。

2.  91玉篇撞のPoplar SDKコンテナイメ�`ジをDocker Hubからプルします。

3.  IPUへのアクセスを�扮犬靴泙后�

4.  IPUとDockerコンテナのアクセス來を�編^します。

5.  IPU貧でアプリコ�`ドをサンプリングします。

 

ホストマシンにDockerをインスト�`ルする

Dockerのインスト�`ル圭隈は、OSやバ�`ジョン、プロセッサなどによって呟なります。

に惄辰討�ださい。

 

91玉篇撞のPoplar SDKコンテナイメ�`ジをDocker Hubからプルする

Dockerがインスト�`ルされたら、コマンドを�g佩してDocker Hubから輝芙のホストイメ�`ジをダウンロ�`ドし、ホストマシンで�g佩できるようになります。Poplar SDKのコンテナイメ�`ジはDocker Hubのリポジトリからプルできます。 

リポジトリは4つあり、SDKのバ�`ジョン、OS、ア�`キテクチャに鬉犬童簡�のイメ�`ジがそれぞれに根まれています。

  • - graphcore/pytorch
  • - graphcore/tensorflow
  • - graphcore/poplar
  • - graphcore/tools

フレ�`ムワ�`クリポジトリからプルすると、デフォルトではAMDホストプロセッサ喘にコンパイルされた恷仟バ�`ジョンのSDKがダウンロ�`ドされます。

恷仟のTensorFlowイメ�`ジをプルするには、參和を聞喘します。

$ docker pull graphcore/tensorflow

蒙協のSDKのバ�`ジョンやプロセッサに��鬉靴震惷┐離咼襯匹鰕��kしたい魁栽は、に児づいてタグを更撹できます。

 

IPUへのアクセスを�扮犬垢�

POD坪のIPUと宥佚するためには、ホストマシンとIPUの寂の俊�A、すなわちIPU over Fabric��IPUoF��を更撹する駅勣があります。Poplarがデバイスにアクセスするために駅勣な秤烏は、IPUoF更撹ファイルを初して局すことができます。このファイルはデフォルトで、ホ�`ムディレクトリ坪のディレクトリ��~/.ipuof.conf.d��に慕き�zまれます。この更撹ファイルは、セキュリティ貧の尖喇などでPoplarのホストがV-IPUコントロ�`ラに岷俊ネットワ�`クアクセスできない魁栽に宴旋です。

Graphcloudを聞喘している魁栽、IPUoFのデフォルト更撹ファイルは、仟号ユ�`ザ�`が恬撹されてPODに弖紗されるたびに伏撹されます。そのフォルダ��~/.ipuof.conf.d/lr21-3-16ipu.confなど��に.confファイルがあるかどうか鳩範してください。 このセットアップができていれば、肝のステップに序みます。

そうでない魁栽は、仝々に惄辰董�PoplarがV-IPUサ�`バ�`に俊�Aするように更撹する駅勣があります。肝のセクションのスクリプトを�g佩するためには、IPUoFの更撹ファイルを~/.ipuof.conf.d フォルダに隠贋することに廣吭してください。

 

IPUとDockerコンテナのアクセス來を�編^する

コンテナの�扮犬�できたら、コンテナの坪何からIPUにアクセスできるかどうか鳩範します。

參和を�g佩して、コンテナのコンテキスト坪の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アプリを�g佩する

まず、GitHubの91玉篇撞チュ�`トリアルリポジトリからコ�`ドを秘返します。

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

$ cd tutorials

 Dockerコンテナは侯宣された桟廠です。 コンテナは腎になり、ホストマシンのファイルシステムにアクセスできなくなります。 ホストマシンのデ�`タを旋喘するためには、Dockerコンテナ坪でデ�`タにアクセスできる駅勣があります。 

デ�`タにアクセスできるようにするには、ディレクトリをボリュ�`ムとしてマウントすることで、ホストマシンとDockerコンテナ桟廠の寂でデ�`タを慌嗤します。 

Dockerベ�`スの蝕�k桟廠で恬匍している魁栽、カレントディレクトリをコンテナにマウントしてから�┐杯h苧��、-w <dir name>でコンテナ坪何の恬匍ディレクトリを譜協するのが匯違議なパタ�`ンです。箭えば仝-v "$(pwd):/app" -w /app々とします。

TensorFlowコンテナでmnistの箭を�g佩するには、チュ�`トリアルリポジトリをDockerコンテナにマウントして�g佩する參和のコマンドを聞喘します。

$ 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

 

蝕�k宀�鬚益柄呂�よびリンク