O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×

GTC Japan 2017

Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio

Confira estes a seguir

1 de 20 Anúncio

Mais Conteúdo rRelacionado

Diapositivos para si (20)

Semelhante a GTC Japan 2017 (20)

Anúncio

Mais recentes (20)

Anúncio

GTC Japan 2017

  1. 1. AIクラウドのソフトウェアエコシステム 構築に向けた産総研の取り組み 産業技術総合研究所 ⼈⼯知能研究センター ⼈⼯知能クラウド研究チーム 佐藤 仁
  2. 2. ⼈⼯知能技術の発展には アルゴリズム×ビッグデータ×計算基盤 の⼀体的な進展が不可⽋ 2 ビッグデータ アルゴリズム 計算基盤 深層学習, 機械学習, etc. クラウド, スパコン, etc. 研究開発・実証・橋渡しを⾒据えたAIプラットフォームの構築・展開
  3. 3. スパコンの新しい応⽤: HPCとAI/ビッグデータ処理の融合 • ⼤規模グラフ処理 – Graph500: ⼤規模グラフの探索能⼒でスーパーコン ピュータのビッグデータ処理を評価する 新しいベンチマーク • ⼈⼯知能・機械学習 – コンピュータがデータからルールや知識 を⾃動的に学習 ex. 画像・映像・⾳声認識、⾃動運転、 バイオ・ヘルスケア、ロボット・ドローン on the Graph500 Ranking of Supercomputers with 38621.4 GE/s on Scale 40 on the 10th Graph500 list published at the International Supercomputing Conference, July 12, 2015. Congratulations from the Graph500 Executive Committee No.1 RIKEN Advanced Institute for Computational Science (AICS)’s K computer is ranked Kronecker graph A: 0.57, B: 0.19 C: 0.19, D: 0.05 TSUBAME-KFC TSUBAME3.0 プロトタイプ ⾼度な学習のためにはマルチペタフロップス/バイト級の計算・スト レージ性能が必要 ⼈⼯的に⽣成された10万時間の⾳声データを 基に学習 [Baidu2015] 類似した アーキテクチャ GPUによるアクセラレーション 約1兆頂点、16兆辺のグラフ 82,944台, 663,552プロセスで0.45秒で 処理
  4. 4. 4 産総研AIクラウド(通称AAIC)とは? • 400x NVIDIA Tesla P100s and Infiniband EDR accelerate various AI workloads including ML (Machine Learning) and DL (Deep Learning). • Advanced data analytics leveraged by 4PiB shared Big Data Storage and Apache Spark w/ its ecosystem. AI Computation System Large Capacity Storage System Computation Nodes (w/GPU) x50 • Intel Xeon E5 v4 x2 • NVIDIA Tesla P100 (NVLink) x8 • 256GiB Memory, 480GB SSD Computation Nodes (w/o GPU) x68 • Intel Xeon E5 v4 x2 • 256GiB Memory, 480GB SSD Mgmt & Service Nodes x16 Interactive Nodes x2 400 Pascal GPUs 30TB Memory 56TB SSD DDN SFA14K • File server (w/10GbEx2, IB EDRx4) x4 • 8TB 7.2Krpm NL-SAS HDD x730 • GRIDScaler (GPFS) Computation Network Mellanox CS7520 Director Switch • EDR (100Gbps) x216 Bi-direction 200Gbps Full bi-section bandwidth Service and Management Network IB EDR (100Gbps) IB EDR (100Gbps) GbE or 10GbE GbE or 10GbE Firewall • FortiGate 3815D x2 • FortiAnalyzer 1000E x2 UTM Firewall 40-100Gbps class 10GbE SINET5 Internet Connection 10-100GbE >4PiB effective RW100GB/s 既存のGPUスパコン に類似した構成
  5. 5. GPU計算ノードの構成 • NVIDIA TESLA P100 x 8 • Intel Xeon E5-2630 v4 x 2 ソケット – ソケットあたり10コア – Hyper Threading (HT) で動作 – ノードあたり40コアにみえる • 256GiBのメモリ • 480GBのSSD • EDR Infiniband – 計算ノード – GPFSストレージへ接続 5 Machine (256GB total) NUMANode P#0 (128GB) Package P#0 L3 (25MB) L2 (256KB) L1d (32KB) L1i (32KB) Core P#0 PU P#0 PU P#20 L2 (256KB) L1d (32KB) L1i (32KB) Core P#1 PU P#1 PU P#21 L2 (256KB) L1d (32KB) L1i (32KB) Core P#2 PU P#2 PU P#22 L2 (256KB) L1d (32KB) L1i (32KB) Core P#3 PU P#3 PU P#23 L2 (256KB) L1d (32KB) L1i (32KB) Core P#4 PU P#4 PU P#24 L2 (256KB) L1d (32KB) L1i (32KB) Core P#8 PU P#5 PU P#25 L2 (256KB) L1d (32KB) L1i (32KB) Core P#9 PU P#6 PU P#26 L2 (256KB) L1d (32KB) L1i (32KB) Core P#10 PU P#7 PU P#27 L2 (256KB) L1d (32KB) L1i (32KB) Core P#11 PU P#8 PU P#28 L2 (256KB) L1d (32KB) L1i (32KB) Core P#12 PU P#9 PU P#29 PCI 10de:15f9 card1 renderD128 PCI 10de:15f9 card2 renderD129 PCI 10de:15f9 card3 renderD130 PCI 10de:15f9 card4 renderD131 PCI 8086:8d62 sda PCI 1a03:2000 card0 controlD64 PCI 8086:8d02 NUMANode P#1 (128GB) Package P#1 L3 (25MB) L2 (256KB) L1d (32KB) L1i (32KB) Core P#0 PU P#10 PU P#30 L2 (256KB) L1d (32KB) L1i (32KB) Core P#1 PU P#11 PU P#31 L2 (256KB) L1d (32KB) L1i (32KB) Core P#2 PU P#12 PU P#32 L2 (256KB) L1d (32KB) L1i (32KB) Core P#3 PU P#13 PU P#33 L2 (256KB) L1d (32KB) L1i (32KB) Core P#4 PU P#14 PU P#34 L2 (256KB) L1d (32KB) L1i (32KB) Core P#8 PU P#15 PU P#35 L2 (256KB) L1d (32KB) L1i (32KB) Core P#9 PU P#16 PU P#36 L2 (256KB) L1d (32KB) L1i (32KB) Core P#10 PU P#17 PU P#37 L2 (256KB) L1d (32KB) L1i (32KB) Core P#11 PU P#18 PU P#38 L2 (256KB) L1d (32KB) L1i (32KB) Core P#12 PU P#19 PU P#39 PCI 8086:1528 enp129s0f0 PCI 8086:1528 enp129s0f1 PCI 10de:15f9 card5 renderD132 PCI 10de:15f9 card6 renderD133 PCI 10de:15f9 card7 renderD134 PCI 10de:15f9 card8 renderD135 PCI 15b3:1013 ib0 mlx5_0 Indexes: physical Date: Tue May 30 11:32:43 2017 MEM CPU Cores GPUs Infiniband HBA SSD
  6. 6. 現状のAIクラウドの利⽤法(≒ スパコンの利⽤法) • ジョブスケジューラの存在 – スクリプトファイルの作成 – ジョブの投⼊ • ユーザ権限でのプログラム実⾏ – システムに予めインストールされた ソフトウェアの利⽤ • GPUランタイム・ライブラリCUDA, CuDNN, NCCL • 並列分散処理ソフトウェア(MPI) • 共有ストレージの利⽤ – 複数ユーザで共有された並列ファイルシステム 6 /home (GPFS) Job Job Job Job NQS Submit Scheduling script file $ qsub <option> script_filename inter-connect SSH ( )
  7. 7. AIアプリケーションの事例(Linuxコンテナ) • lang2program – https://github.com/kelvinguu/ lang2program – ACL 2017 paper内で⽤いられた実装 – Dockerfileの提供 • Tensorflow, PostgresQL, Python pip Packages, etc. • 依存関係のあるソフトウェアの インストールが⼤量に発⽣ 7 HPC環境(スパコン)で動くか? • Dockerの⾮サポート (セキュリティ上ホストのrootを与えることができない) • マニュアルにインストールすれば可能だが煩雑
  8. 8. AIアプリケーションの事例(ファイルI/O) ImageNet-1kの対象とするファイルサイズの数と分布 学習データ テストデータ 8 サイズの⼩さなファイルへの⼤量アクセス → 共有ファイルシステムが苦⼿なI/Oパターン(メタデータアクセス増)
  9. 9. 9 ユーザプログラム 数値計算 ライブラリBLAS ドメイン 固有⾔語 デバッグ・ 性能プロファイル MPI・OpenMP・CUDA/OpenCL 並列ファイルシステム Lustre・GPFS バッチ ジョブスケジューラ Linux OS InfiniBabd ネットワーク SAN+ローカ ルストレージ X86+ GPU/ アクセラ レーター 仮想マシン・Linuxコンテナ Ethernet ネットワーク ローカル ノード ストレージ x86 CPU 分散ファイルシステム HDFS MapReduceフレームワーク Spark/Hadoop ユーザプログラム RDB PostgresQL 機械学習 ライブラリ MLlib/ Mahout グラフ処理 ライブラリ GraphX/ Giraph Java・Scala+統合開発環境 SQLクエリ エンジン Hive/Pig CloudDB/NoSQL Hbase/Cassandra/MondoDB コーディネーションエンジン ZooKeeper Linux OS 既存クラウド 既存スパコンアプリケーション層 システムソフトウェア層 ハードウェア層 OS層 Fortran・C・C+++統合開発環境 • クラウドはプログラムの実⾏に対話的な操作が必要。 • スパコンはバッチジョブによる実⾏のため不要。 • クラウドは利便性が⾼いプログラム⾔語を採⽤するも⾼速化には向かない。 データ解析等頻繁にプログラムを書き換える利⽤に特化。 • スパコンはマシンの性能を活かせるプログラム⾔語を採⽤するも、プログ ラムが難しく⽣産性が低い。数値演算などコアな処理はあまりプログラム を書き換える必要がないため。 • クラウドはデータベース利⽤が多い。 • スパコンは数千・数万台の計算機向けにデバッグ・性能チューニングが必要。 • クラウドは仮想マシン・コンテナ技術による⽤途に応じた環境構築が可能。 • スパコンは⾼速処理のためのベアメタル環境が主。 • クラウドはWebサーバ由来の技術、分散ストレージなどを採⽤。 • スパコンは超広帯域・低遅延ネットワーク、共有ストレージ、GPUなどを採⽤。 AI/ビッグデータ処理の⾼速化が最重要だがソフトウェアエコシステムは皆無 特に分散深層学習・強化学習、HPCと融合したワークロード等 既存のクラウドとスパコンで異なるソフトウェアエコシステム
  10. 10. AIクラウドのためのソフトウェアエコシステム 既存のクラウド・スパコンの両⽅の技術要素が必要 10 数値計算 ライブラリ BLAS/Matlab デバッグ・ 性能プロファイル MPI・OpenMP・CUDA/OpenCL バッチジョブスケジューラ・ワークフロー Linux OS InfiniBabd ネットワーク SAN+ローカ ルストレージ X86+GPU/ アクセラレーター Linuxコンテナ 分散ファイ ルシステム HDFS ユーザプログラム RDB PostgresQL 機械学習 ライブラリ グラフ処理 ライブラリ Python, Jupyter Notebook, R etc.+ 統合開発環境 CloudDB/ NoSQL AIクラウド アプリケーション層 OS層 深層学習 ライブラリ Web サービス ビッグデータ 処理カーネル Sort etc. Fortran・C・ C++ ネイティブコード 並列ファイ ルシステム Lustre・GPFS システムソフトウェア層 ハードウェア層 • 分散深層学習をはじめとする各種フレームワークを簡 単にバッチ処理や対話的な操作で利⽤ • 場合によってはウェブサービスの提供 • Python, Rなどのスクリプト⾔語、Jupyter Nodebookなどのフレームワークの利⽤ • MPI, OpenMP, CUDAを利⽤した並列処理、HPC由来 の数値演算カーネル(BLAS),ビッグデータ処理カーネ ル(Sort, PrefixSum, Merge, SetIntersection)のサ ポート • ⼤規模なパラメータサーベイ、ジョブの⻑時間実⾏、 ワークフローのサポート • 画像、映像、⾳声、テキストなど細粒度I/O, 秘匿性の あるデータへのアクセス • Linuxコンテナのサポート • スーパコンピュータ由来のInfiniband, GPUの利⽤、 コモディティサーバの採⽤
  11. 11. Singularity (ソフトウェアの名称です) • Singularity – ⽶国LBLで開発中のHPC向けLinuxコンテナ • http://singularity.lbl.gov/ • https://github.com/singularityware/singularity • 修正BSDライセンス – ユーザ権限でプログラムを実⾏、ストレージへアクセス • rootで動作するデーモンが不要 • setuidでroot権限を与えたコマンドを実⾏ – Dockerイメージが利⽤可能 • DockerHubと連携 – HPC系のソフトウェアスタックが利⽤可能 • CUDA, MPI, Infiniband, etc. 11
  12. 12. Singularityの利⽤イメージ sudo singularity build –sandbox tmpdir/ Singularity sudo singularity build –writable container.img Singularity sudo singularity build container.img Singularity sudo singularity build container.img docker://ubuntu sudo singularity build container.img shub://ubuntu Sandboxディレクトリの⽣成 コンテナイメージファイルの⽣成 sudo singularity shell –writable container.img パッケージソフトウェアを インストール(yum, apt等) Recipeファイルの利⽤ DockerHubの利⽤ (Dockerコンテナイメージ) SingularityHubの利⽤(Singularityコンテナイメージ) container.img コンテナイメージ ファイルを転送 インタラクティブにコンテナイメージを作成 既存のコンテナイメージを利⽤して作成 予め定めた⼿順によりコンテナイメージを作成 singularity run container.img singularity exec container.img … singularity shell container.img シェルを実⾏(shell) コマンドを与えて実⾏ (exec) 予め定義された動作を 実⾏(run) ユーザ環境 共有計算機環境
  13. 13. 分散深層学習フレームワーク向けコンテナイメージの構築 • ホスト側 – GPUやIninibandを活⽤するために デバイス関連ドライバ・ライブラリを コンテナ側へマウント • GPUやIninibandの利⽤ • nvidia-docker⽅式 • コンテナ側 – ユーザランドライブラリの インストール • CUDA, CuDNN, NCCL2, ibverbs, MPI – 分散深層学習フレームワークの インストール • 最適化されたビルド 13 Base Drivers, Libraries on Host CUDA Drivers Infiniband Drivers Filesystem Libraries (GPFS, Lustre) Userland Libraries on Container CUDA CuDNN NCCL2 MPI (mpi4py) Mount ibverbs Distributed Deep Learning Frameworks Caffe2 ChainerMNDistributed TensorflowMXNet
  14. 14. Singularityを⽤いた分散深層学習フレームワークの実⾏ • 実験環境 – AAIC 8 nodes (64 GPUs) – フレームワーク: CHainerMN v1.0.0 • Chainer 2.1.0, Cupy 1.0.3, mpi4py 2.0.0, Python 3.6.1 – コンテナ • Singularity v2.3.1 • Ubuntu 16.04, gcc-5.4.0, glibc-2.23 – ベアメタル • CentOS 7.3, gcc-4.8.5, glibc-2.17, • 実験設定 – データセット: Imagenet-1K – モデル: ResNet-50 – 訓練: • バッチサイズ: GPU毎に32, 32 x 64 • 学習率: 30 epoch毎に0.1倍 • 最適化: Momentum SGD (momentum=0.9) • Weight Decay: 0.0001 • 訓練エポック数: 100 14 ベアメタル実⾏とほぼ遜⾊のない性能を確認
  15. 15. AICloudModules: AI向けコンテナイメージ集 • Base Images – AIクラウド向けに最適化した OSイメージ • CUDA,CuDNN, NCCL, MPI, etc. • CUDA, Infiniband, GPFS等は ホスト側のドライバを利⽤ • DL Images – 基盤となるOSイメージを拡張し、 深層学習フレームワークや その他AIアプリケーションを導⼊ 15 Base Images Base OS Images incl. CUDA, CuDNN, NCCL2, MPI, Infiniband DL Images Images for Deep Learning Frameworks based on HPCBase CentOSUbuntu Base Drivers, Libraries on Host GPU Infiniband GPFSMPI Caffe2 ChainerMNDistributed TensorflowMXNet 公開に向けて準備中 CNTK
  16. 16. Distributed Deep Learning Frameworks Distributed Deep Learning Playgrounds: 分散深層学習フレームワークの実⾏サンプル集 • 分散深層学習フレームワーク – CNTK, ChainerMN, Caffe2, Tensorflow, MXNet • AIクラウドをはじめスパコン環境 での実⾏を想定したスクリプト – MPIでのリモートプロセス起動 • プロセスマッピング、MIMDモード – ジョブスケジューラを介したジョブ実⾏ • NQSII, Univa, etc.向けスクリプトファイル 16 Caffe2 ChainerMN Distributed TensorflowMXNet CNTK MPI OpenMPI Mvapich Schedulers NQSII Unvia Others
  17. 17. 細粒度I/Oのためのオンデマンドなデータストア • スケジューラと協調してオンデマンドに 分散ファイルシステムを構築 – スケジューラが計算ノードを確保 – 確保された計算ノードの ローカルストレージ(SSD)を集約 – 共有ファイルシステムから ファイルステージング • 分散ファイルシステム – BeeGFS On Demand • https://www.beegfs.io/content/ – Gfarm Burstbuffer • http://oss-tsukuba.org/software/gfarm 17
  18. 18. AIクラウドのソフトウェアエコシステム構築に向けて • ⽐較的運⽤が保守的なHPC環境でもAI/ビッグデータ処理 のためのソフトウェアスタックが容易に構成可能 • いろいろある⽇本国内のGPU計算資源 → 適切な⼿続き(HPCI, JHPCN,共同研究 etc.)を経れば利⽤可能 – 東京⼤学 Reedbush H, L (NVIDIA Tesla P100 x 2 per node x 128ノード) (NVIDIA Tesla P100 x 2 per node x 64ノード) – 東京⼯業⼤学 TSUBAME3 (NVIDIA Tesla P100 x 4 per node x 540ノード) – 九州⼤学 Ito (NVIDIA Tesla P100 x 4 per node x 128ノード) – 産総研 AAIC (NVIDIA Tesla P100 x 8 per node x 50ノード)
  19. 19. まとめ • 産総研AIクラウド(AAIC)の紹介 • AIクラウドのためのソフトウェアエコシステムの必要性 – 既存のクラウドとスパコンの両⽅の技術要素が必要 • 産総研の取り組み – Singularityを⽤いたユーザ権限でのコンテナ実⾏ – 分散深層学習フレームワークのコンテナ化 – 細粒度I/Oのためのオンデマンドなデータストア構築 19
  20. 20. ABCI AI Bridging Cloud Infrastructure The worlds first large-scale Open AI Infrastructure 20 ABCI Serving your AI needs in Spring 2018

×