NVIDIA Claraの使い方(その1)

2020.12.02 GDEP Labs

最近NVIDIA CLALAについてのお問い合わせが増えています。NVIDIA Clara Imaging は、医用画像処理における AI の開発と導入を加速するアプリケーション フレームワークです。高品質なラベル付きデータセットを作成し易くするためのツールや、AIモデルをトレーニングするためのツール、エッジ側の実装ツールなどから構成されています。 今回はそんなClaraを実際にDGX上で利用するまでをまとめてみました。

Clara Train- Getting Started について(その1)

先日の GTC2020において、いろいろなトピックが公演されており、ここでは日本で実施された、実際にClara を動かしてみようというトピックを、当方の視点で振り返ってみようと思い記事にしております。内容のボリュームがありすぎ1時間で説明しようというのは、かなり挑戦的な取り組みだったと思います。

セミナーのあらましとして私が感じ取ったのは、

・前準備
ーまずは、nvidia docker を動かす準備

・稼働開始
ー必要な docker image と staring data を持ってきて、juypter note book を起動するまで

・稼働してから何をするのか?
ーjupyter notebook にアクセスして、手順通りサンプルを動かしてみる。
ーAIAAサーバと3D Slicer を使い、Anotation 操作をしてゆく。

となります。最後の段からは、リンクに張っている、Clara Train Live-Demo というドキュメントに沿って説明刺されるのですが、まず最初のデモを実行するファイル群がダウンロードできません。ただ、このセミナー自体は、 Clara Train SDK v3.0 を基に作成されているはずですので、これを読み進めていくと、最後の付録のところにやっとそれらしき項目が出てきます。

Clara Train – Getting started with a Cloud Service Provide

そこには、実際にどうやって、Public クラウドで Clara の実行を試すことができるかが書かれています。内容自体は Cloud で実行する必要なく、最低必要な環境は、

1. Nvidia docker 18+
2. User is in the docker group. ( you can check by typing `groups` in the terminal, you should see `docker`)
3. One or more Nvidia GPU. (2+GPUS are recommended for advanced features as AutoML).

とのことですから、Nvidia Docker ready のマシンがであればたいていは動作するだろうということわかります。 次にやることは、Getting Started Script をダウンロードすることです!(これにたどり着くまでに時間がかかる!)

https://ngc.nvidia.com/catalog/resources/nvidia:med:clara:getting_started

wget –content-disposition https://api.ngc.nvidia.com/v2/resources/nvidia/med/getting_started/versions/1/zip -O getting_started_1.zip


そして、download した gettings_started__1.zip を適当なディレクトリに展開し、下記のルールで実行するわけです。
./startDocker.sh

cd scripts

bash ./startDocker.sh 8890 ‘0,1,2,3’ 5000


例えば、DGX OS Server 5 の環境で実行すると、

clara-test@dgx1v50:~/getstart/scripts$ bash ./startDocker.sh 8890 ‘0,1,2,3’ 5000

———————————–

starting docker for nvcr.io/nvidia/clara-train-sdk:v3.0 using GPUS 0,1,2,3

———————————–

starting please run ./installDashBoardInDocker.sh to install the lab extensions then start the jupeter lab

once completed use web browser with token given yourip:8890 to access it

Unable to find image ‘nvcr.io/nvidia/clara-train-sdk:v3.0’ locally

v3.0: Pulling from nvidia/clara-train-sdk

5667fdb72017: Pulling fs layer

d83811f270d5: Pulling fs layer

ee671aafb583: Pulling fs layer

7fc152dfb3a6: Waiting

dbc57626691b: Waiting

e20092842144: Waiting

d64c76da70d5: Waiting

429f0b34bf97: Waiting

39d853a0098c: Waiting

dc9dfc23df66: Waiting

1a32524cb863: Waiting

d3d394313ced: Waiting

857b6050fd78: Waiting

3a51649b9b50: Waiting

885e286ed6cc: Waiting

62be33d17790: Waiting

6a7d05a28b83: Waiting

11ff4c1b1e9b: Pulling fs layer

252fb308c785: Waiting

4749ee710260: Waiting

47668c0cb079: Waiting

4f9ec6b1521d: Waiting

292b425b68e8: Waiting

93e46b746825: Waiting

9334b2469b1a: Pulling fs layer

a9d3427ef8f1: Waiting

0a91c68ff9a1: Waiting

f5f626660a65: Waiting

e16685627c50: Pulling fs layer

99dfb0f50bad: Waiting

5e0430538e53: Waiting

c3c3189112dc: Waiting

0a9b551dba88: Waiting

dd23726b6281: Waiting

bcf5e26ee78d: Waiting

57897222b520: Waiting

35cf7ceb758a: Waiting

9fe8816ccbaf: Waiting

568529d84601: Waiting

feac13e821f0: Waiting

63bf01aa2e10: Pulling fs layer

8237dc0aa519: Waiting

e08f7bfdba39: Waiting

5dbebdcd9dd4: Waiting

10b59eb6c0e7: Waiting

4321391484e3: Pulling fs layer

e34075c0c812: Waiting

5c3fd4b3c64e: Pulling fs layer

5773b85768cb: Waiting

8a463a607b0d: Waiting

5c41a81fbb6e: Waiting

e36b20174218: Pulling fs layer

d6bb84f1169f: Waiting

6bb825deb8a9: Waiting

01ee13459f0e: Waiting

4fa013da199b: Pulling fs layer

a62afce2d344: Waiting

480282b992b1: Waiting

2f94baa14ffe: Waiting

eb272cd761dd: Waiting

a8494a349af6: Waiting

a11b5605d0d6: Waiting

7a5d03ee7ce5: Waiting

b4c087b35334: Waiting

913dbe33ddb0: Waiting

5cd9e9488409: Pulling fs layer

b3ef5d01df03: Waiting

9b2535eeb94c: Waiting

c023baf1b469: Waiting

6b7432d01360: Waiting

03ab8f428549: Pulling fs layer

ce6aa4b56297: Pulling fs layer

d28be18cb7b8: Waiting

80736fbe77ce: Waiting

a5896ade2941: Pull complete

49599169fa47: Pull complete

7bf7ff836426: Pull complete

4db3d1afd038: Pull complete

3c174de81957: Pull complete

4fac5e4fdc02: Pull complete

69e6ca08f03e: Pull complete

88fe0d048b8a: Pull complete

973ed82e78ff: Pull complete

8a40c2b0da69: Pull complete

15561e315253: Pull complete

c932b0fabd1d: Pull complete

eb081e209b8c: Pull complete

1749189c9773: Pull complete

a5d1a52cac6a: Pull complete

06fcb0eb5b34: Pull complete

fd86186f22b9: Pull complete

ebf4541c69bb: Pull complete

af9dbc4eed3a: Pull complete

7d12a3572637: Pull complete

96b3b2ae8e7f: Pull complete

693d9dd52a58: Pull complete

d8e624108b6d: Pull complete

Digest: sha256:23cef5514b585e5e8c383e74ce1491190ef51d3023e236f1bc22b5de7972140a

Status: Downloaded newer image for nvcr.io/nvidia/clara-train-sdk:v3.0

  

================

== TensorFlow ==

================

  

NVIDIA Release 19.10 (build 8471601)

TensorFlow Version 1.14.0

  

Container image Copyright (c) 2019, NVIDIA CORPORATION. All rights reserved.

Copyright 2017-2019 The TensorFlow Authors. All rights reserved.

  

Various files include modifications (c) NVIDIA CORPORATION. All rights reserved.

NVIDIA modifications are covered by the license terms that apply to the underlying project or file.

  

ERROR: Detected MOFED driver 5.1-2.4.6, but this container has version 4.4-1.0.0.

        Unable to automatically upgrade this container.

        Use of RDMA for multi-node communication will be unreliable.

  

root@79d4ea70a040:/claraDevDay/scripts#


と表示されるようになります。5.0 と 4.x 系では、Infiniband driver のバージョンが異なるのでさすがに、IB を使いノードをまたがった、マルチGPUを使うことは執筆状況(2020/12月初頭)では対応していませんが、Horovid に対応していそうなので、OSを適合環境に下げるや、適合した Docker container の組み合わせがあれば、できる可能性はあります。
それはまた機会があったら試すとして、まずはダッシュボードを立ち上げてみましょう。

しばらくすると、次のように表示されます。

8888 にアクセスするよう書かれていますが、 docker で port 変換が行われているので、8890 にアクセスすべきでしょう。 今回のテストでは、teraterm の ssh のport forward 転送を使い、リモートホストの 8890 を localhost の 8890 と接続したうえで、ウエブブラウザで localhost:8890 に接続すると。



20113001

そちらにアクセスして最初に行うことはテストデータのダウンロードになります。



20113003

まずはデータをダウンロードしてみましょう。書かれている通りにステップを踏むだけですので、Play ボタンを押していきましょう。



20113003

ステップが実行中はアスタリスマークが[*]、終われば、python のステップ数[1] が出てきます。ステップ数が出てくれば次に進みます。 では次回は、Welcome.ipynb からのステップを実際にやってみたいと思います。

 

~「NVIDIA Clalaの使い方(その2)」(12/8掲載予定)へつづく~


内田盛久

ジーデップ・アドバンス エンジニアリングフェロー 兼 ULGS株式会社代表
京都大学大学院工学研究科を経て20年以上HPCの仕事に携わり、国プロ絡みの大規模案件を多数経験。 HPCクラスターやGPUクラスターの構築、HPC系ジョブスケジューラーの運用に強いノウハウを持つ。 2021年からジーデップ・アドバンスにおけるUbuntuOSのサポートサービス「UGDEP」の提供を開始予定。

TOPへ