NVIDIA Claraの使い方(その1)
最近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 に接続すると。

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

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

ステップが実行中はアスタリスマークが[*]、終われば、python のステップ数[1] が出てきます。ステップ数が出てくれば次に進みます。 では次回は、Welcome.ipynb からのステップを実際にやってみたいと思います。
~「NVIDIA Clalaの使い方(その2)」(12/8掲載予定)へつづく~
内田盛久
ジーデップ・アドバンス エンジニアリングフェロー 兼 ULGS株式会社代表
京都大学大学院工学研究科を経て20年以上HPCの仕事に携わり、国プロ絡みの大規模案件を多数経験。 HPCクラスターやGPUクラスターの構築、HPC系ジョブスケジューラーの運用に強いノウハウを持つ。 2021年からジーデップ・アドバンスにおけるUbuntuOSのサポートサービス「UGDEP」の提供を開始予定。