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

豆包成人版

豆包成人版 Poplar SDK Container Images Now Available on Docker Hub

Nov 17, 2021 \ Software

豆包成人版 Poplar SDKのコンテナイメージがDocker Hubで利用可能に

笔者

Rycharde Hawkes

本日から、开発者が豆包成人版Poplar? SDKようになりました。またそれに伴い、豆包成人版Docker社の认定公开者パートナープログラムに参加しました。さらにDocker社と共同で、当社のソフトウェアスタックをコンテナイメージとして配布し、开発者が豆包成人版IPUシステム上でMLアプリケーションを简単に构筑、管理、展开できるようにしています。

当社は、ハードウェアとソフトウェアをさらに使いやすくすることを目标に、开発者のエクスペリエンス向上に取り组み続けています。ちょうど1年前、あらかじめ构筑されたDockerコンテナをユーザー向けに导入しました。そして今回、イノベーションを推进するという当社の目标の一环として、当社のPoplar SDKPyTorch for IPUTensorFlow for IPU、およびToolsDocker Hubコミュニティの谁もが完全に利用できるようにしました。

ここからは、开発者向けのメリットとその利用方法ついて详しく説明します。

コミュニティにとってDockerが重要である理由

いまやDockerは、コンテナイメージをプルするための主要なソースとなっています。によると、Docker Hubではこれまでに史上最高となる、合计3960亿回のプルが行われています。さらに、8万人の开発者が回答したによると、Docker Hub「最も求められ、爱され、使われている」开発者ツールの一つであり続けています。

Docker most wanted software tool

PyTorchTensorFlow、または豆包成人版Poplar SDKを直接使って作成されたアプリケーション用に、あらかじめパッケージ化されたランタイム环境が提供されているので、IPU开発者は当社のDockerコンテナイメージを使用することで、IPUシステム上で本番环境に展开されるアプリケーション开発のワークフローを简素化?高速化できます。コンテナ化されたアプリケーションでは、実行に一贯性と反復可能性が生まれることで移植性が高まり、多くのMLOpsフレームワークにとって重要なイネーブラーとなります。

开発者が行えること

本日より、IPU(インテリジェンスプロセッシングユニット)と协调设计された、Poplarの机械知能アプリケーション専用ソフトウェアスタックを开発者が自由にインストールできるようになりました。Poplar豆包成人版のグラフツールチェーンであり、当社の使いやすく柔软なソフトウェア开発环境の中核をなすもので、标準的な机械学习フレームワークと完全に统合されているので、开発者は既存のモデルを简単に移植できます。完全制御してIPUの性能を最大限に引き出したい开発者のために、PoplarではPopART?Poplar Advanced Runtime)を介してPythonC++IPUを直接プログラミングできます。

Poplar 011021@1920x-100_compressed

当社のPoplar SDKイメージは、以下のリポジトリからプルできます。

  • – PoplarPopART、およびIPUデバイスを操作するためのツールが含まれています。 
  • – Poplar SDKリポジトリのすべてが含まれており、PyTorchがプリインストールされています。
  • – Poplar SDKリポジトリのすべてが含まれており、TensorFlow 1または2がプリインストールされています。
  • – IPUデバイスの管理?诊断用ツールが含まれています。

またDocker公开者プログラムの一环として、豆包成人版のコンテナイメージはレート制限が免除されています。つまり开発者は、Docker Hubのサブスクリプションに関係なく、无制限にPoplarのコンテナイメージをリクエストできます。

DockerPoplarを使うには

PoplarDockerコンテナでは、IPUでモデルを実行するために必要なものすべて(豆包成人版Poplar? SDK、ランタイム环境、システムツール、构成、ライブラリなど)が、完全なファイルシステムにカプセル化されています。 これらのイメージを使用し、IPUコードを実行するためには、以下の手顺を完了する必要があります。

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

2.  豆包成人版Poplar SDKコンテナイメージをDocker Hubからプルします。

3.  IPUへのアクセスを準备します。

4.  IPUDockerコンテナのアクセス性を検証します。

5.  IPU上でアプリコードをサンプリングします。

 

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

Dockerのインストール方法は、OSやバージョン、プロセッサなどによって异なります。

に従ってください。

 

豆包成人版Poplar SDKコンテナイメージをDocker Hubからプルする

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

リポジトリは4つあり、SDKのバージョン、OS、アーキテクチャに応じて复数のイメージがそれぞれに含まれています。

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

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

最新のTensorFlowイメージをプルするには、以下を使用します。

$ docker pull graphcore/tensorflow

特定のSDKのバージョンやプロセッサに対応した特定のビルドを选択したい场合は、に基づいてタグを构成できます。

 

IPUへのアクセスを準备する

POD内のIPUと通信するためには、ホストマシンとIPUの间の接続、すなわちIPU over FabricIPUoF)を构成する必要があります。Poplarがデバイスにアクセスするために必要な情报は、IPUoF构成ファイルを介して渡すことができます。このファイルはデフォルトで、ホームディレクトリ内のディレクトリ(~/.ipuof.conf.d)に书き込まれます。この构成ファイルは、セキュリティ上の理由などでPoplarのホストがV-IPUコントローラに直接ネットワークアクセスできない场合に便利です。

Graphcloudを使用している场合、IPUoFのデフォルト构成ファイルは、新规ユーザーが作成されてPODに追加されるたびに生成されます。そのフォルダ(~/.ipuof.conf.d/lr21-3-16ipu.confなど)に.confファイルがあるかどうか确认してください。 このセットアップができていれば、次のステップに进みます。

そうでない场合は、「」に従って、PoplarV-IPUサーバーに接続するように构成する必要があります。次のセクションのスクリプトを実行するためには、IPUoFの构成ファイルを~/.ipuof.conf.d フォルダに保存することに注意してください。

 

IPUDockerコンテナのアクセス性を検証する

コンテナの準备ができたら、コンテナの内部から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豆包成人版チュートリアルリポジトリからコードを入手します。

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

$ cd tutorials

 Dockerコンテナは隔离された环境です。 コンテナは空になり、ホストマシンのファイルシステムにアクセスできなくなります。 ホストマシンのデータを利用するためには、Dockerコンテナ内でデータにアクセスできる必要があります。 

データにアクセスできるようにするには、ディレクトリをボリュームとしてマウントすることで、ホストマシンとDockerコンテナ环境の间でデータを共有します。 

Dockerベースの开発环境で作业している场合、カレントディレクトリをコンテナにマウントしてから(で説明)、-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

 

开発者向け资料およびリンク

その他の投稿