SlideShare uma empresa Scribd logo
1 de 27
Baixar para ler offline
AIクラウドでのLinuxコンテナ利⽤
に向けた性能評価
佐藤 仁, ⼩川 宏⾼
産業技術総合研究所 ⼈⼯知能研究センター
1
2017年12⽉17⽇
第162回ハイパフォーマンスコンピューティング研究発表会
Exclusive Summary
2
とある講演を聞いた
某スパコンユーザの
Facebook(Twitterともリンク設定)
⼈⼯知能技術の発展には
アルゴリズム×ビッグデータ×計算基盤
の⼀体的な進展が不可⽋
3
ビッグデータ
アルゴリズム
計算基盤
深層学習, 機械学習, etc.
クラウド, スパコン, etc.
研究開発・実証・橋渡しを⾒据えたAIプラットフォームの構築・展開
4
NEDOプロ(NAIROBI)
人工知能研究開発・実証
のための研究テストベッド
H28.6運用開始
産総研AIクラウド(AAIC)
産総研と連携機関による
人工知能実証のための
共用プラットフォーム
H29.6運用開始
AI橋渡しクラウド(ABCI)
高密度・省エネ構成
運用技術・ノウハウ
うまくいった成果を
大規模実証
複数の産学官による
オープンイノベーションプ
ラットフォーム
最初からIDCへの技術移転
を見越した設計・運用
H30.3納入(予定)
IDCなどに
商用展開
AIRCの計算基盤ロードマップ
グリーンITプロ
実サービス化
5
産総研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スパコン
に類似した構成
GPU計算ノードの構成
• NVIDIA TESLA P100 x 8
• Intel Xeon E5-2630 v4 x 2 ソケット
– ソケットあたり10コア
– Hyper Threading (HT) で動作
– ノードあたり40コアにみえる
• 256GiBのメモリ
• 480GBのSSD
• EDR Infiniband
– 計算ノード
– GPFSストレージへ接続
6
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
AIアプリケーションの事例(Linuxコンテナ)
• lang2program
– https://github.com/kelvinguu/
lang2program
– ACL 2017 paper内で⽤いられた実装
– Dockerfileの提供
• Tensorflow, PostgresQL,
Python pip Packages, etc.
• 依存関係のあるソフトウェアの
インストールが⼤量に発⽣
7
HPC環境(スパコン)で動くか?
• Dockerの⾮サポート
(セキュリティ上ホストのrootを与えることができない)
• マニュアルにインストールすれば可能だが煩雑
8
ユーザプログラム
数値計算
ライブラリ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と融合したワークロード等
既存のクラウドとスパコンで異なるソフトウェアエコシステム
AIクラウドのためのソフトウェアエコシステム
既存のクラウド・スパコンの両⽅の技術要素が必要
9
数値計算
ライブラリ
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の利⽤、
コモディティサーバの採⽤
Singularity
(ソフトウェアの名称です)
• Singularity
– ⽶国LBNLで開発中のHPC向けLinuxコンテナ
• http://singularity.lbl.gov/
• https://github.com/singularityware/singularity
• 修正BSDライセンス
– ユーザ権限でプログラムを実⾏、ストレージへアクセス
• rootで動作するデーモンが不要 => 資源管理をスケジューラに委ねる
• setuidでroot権限を与えたコマンドを実⾏
(マウント、名前空間の作成、コンテナ内へのホストのPathのʼ作成など)
– Dockerイメージが利⽤可能
• DockerHubと連携
– HPC系のソフトウェアスタックが利⽤可能
• CUDA, MPI, Infiniband, etc.
10
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)
ユーザ環境 共有計算機環境
11
Singularityでできること
• GPU, Infiniband, XXXが利⽤できるか?
– ホスト側のデバイス関連ドライバ・ライブラリをコンテナ側
へみせる(nvidia-docker⽅式?)
• MPIが利⽤できるか?
– ホストのMPIをコンテナ側へみせる(コンテナなメリットが薄い)
– コンテナ内にMPIをインストールし、コンテナの外からキックする
(ホスト側と同じMPIを使⽤し, Buildも同じにする必要)
• mpirun –np N singularity exec container.img mpi_program
• mpi4pyが利⽤できるか?
– コンテナ内にMPIをインストール
– コンテナ内のMPIに対してmpi4pyをインストール
– コンテナ外からキック
12
分散深層学習フレームワーク向けコンテナイメージの構築
• ホスト側
– 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
予備実験
• AIのワークロードを想定
– 演算性能(GEMM)
– メモリバンド幅性能(STREAM)
– 通信性能(OSU Micro Benchmarks)
– ストレージI/O性能 (FIO)
– 分散深層学習性能(Imagenet-1K)
• 実験環境
– AAIC
– ベアメタル
• CentOS 7.3, Linux 3.10.0,
gcc v4.8.5, glibc v2.17
– Singularity
• Singularity 2.4
• Ubuntu 16.04, Linux v3.10.0
gcc v5.4.0, glibc v2.23
– 両環境
• CUDA 8.0.61.2, CuDNN v6.0.21
NCCL v2.0.5, OpenMPI v2.1.1
14
GPU計算ノードの構成(再掲)
• NVIDIA TESLA P100 x 8
• Intel Xeon E5-2630 v4 x 2 ソケット
– ソケットあたり10コア
– Hyper Threading (HT) で動作
– ノードあたり40コアにみえる
• 256GiBのメモリ
• 480GBのSSD
• EDR Infiniband
– 計算ノード
– GPFSストレージへ接続
15
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
演算性能(GEMM)
CPU GPU
16
Better
メモリバンド幅性能(STREAM)
17
Triad
Better
通信性能(OSU Micro Benchmarks v5.3.2)
AllReduce (Ave. Latency, 2nodes, 8gpus/node)
AllReduce(h2h) AllReduce(d2d)
18
Better
ストレージI/O性能(FIO v2.19)
スループット
READ WRITE
19
Better
ストレージI/O性能(FIO v2.19)
IOPS (qdepth=1, 16)
READ WRITE
20
Better
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
21
ベアメタル実⾏とほぼ遜⾊のない性能を確認
Better
議論
• Singularity
– ベアメタルと⽐較してほぼ遜⾊のない性能を確認
• 演算性能だけでなく、メモリバンド幅、ストレージI/O,
ネットワーク性能(要確認)も
• メモリのフットプリントは未確認
– OSの違いを超えられる(CentOS vs. Ubuntu)
• 特に、glibcのバージョンの違いも容易に超えられる
(glibcが互換性を担保するような実装になっている)
– 導⼊しやすさ
• configure, make, make installで可能。共有ストレージへも可能。
– あとはエンジニアリングイシュー
• ソフトウェアの安定性の向上
• セキュリティイシューを潰す
22
議論 (contʼd)
• Singularityの⽋点
– コンテナ内常駐デーモン不可
– Debug系(gdb)不可
– 資源管理は(cgroupsではなく)スケジューラまかせ
23
議論 (contʼd)
• ユーザが任意のコンテナを動かして問題が起きるか?
– 特に問題がないと判断している(問題を定義したい)
– 基本的には実⾏するユーザの責任
(現状でも任意のソフトウェアをユーザが動かしているので
ほぼ同じ問題)
• 特殊なコンテナが必要?制限はある?
– 基本的には不要。ARMでもOPAでも(Linuxであれば)動く。
– ただし、計算環境に最適化するためには再コンパイルなどした⽅が良い。
• ISVアプリのライセンス
– コンテナに含めるのは難しい(気がする)
– ユーザ権限でホストの環境をコンテナ側にreadマウントすることはできる
– ホストにISVアプリをインストール、コンテナ側にマウント?
24
関連研究
• Docker
– root権限が必要なデーモンによりコンテナ起動
– cgroupによる資源管理 (rktも)
• Shifter
– NERSCで開発 (Coriとかで利⽤?)、CSCSで拡張(Piz Dizant)
– Singulairtyと同様の技術, ImageGatewayの存在, Crayのサポート
• ChalieCloud [SCʼ17]
– Singulairtyと同様の技術
– Singularityのほうが盛り上がっている感はある
(OpenMPI v3.0やMvapich v2.3.2のSingularityサポート)
• McKernel Integration [Rossʼ17]
– Oakforest PACSの事例
– GeoFM, CCS-QCD, mniFE、今回の報告と同様の結果・傾向
25
まとめ
• AIクラウドのためのソフトウェアエコシステムの必要性
– AIには既存のクラウドとスパコンの両⽅の技術要素が必要
– AIというマーケットが広そうなところに
如何にHPC技術を取り込みやすい環境を作っていくか?
• Singularityを⽤いたユーザ権限でのコンテナ実⾏
– 分散深層学習フレームワーク(≒HPCアプリケーション)の
コンテナ化
– 予備実験による性能⽐較
• ベアメタルと⽐較してほぼ遜⾊のない性能を確認
26
ABCI AI Bridging Cloud Infrastructure
The worlds first large-scale Open AI Infrastructure
27
ABCI
Serving your AI needs
in Spring 2018

Mais conteúdo relacionado

Mais procurados

Deep Dive into the Linux Kernel - メモリ管理におけるCompaction機能について
Deep Dive into the Linux Kernel - メモリ管理におけるCompaction機能についてDeep Dive into the Linux Kernel - メモリ管理におけるCompaction機能について
Deep Dive into the Linux Kernel - メモリ管理におけるCompaction機能についてNTT DATA Technology & Innovation
 
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021Preferred Networks
 
ネットワークでなぜ遅延が生じるのか
ネットワークでなぜ遅延が生じるのかネットワークでなぜ遅延が生じるのか
ネットワークでなぜ遅延が生じるのかJun Kato
 
3D CNNによる人物行動認識の動向
3D CNNによる人物行動認識の動向3D CNNによる人物行動認識の動向
3D CNNによる人物行動認識の動向Kensho Hara
 
ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43
ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43
ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43Preferred Networks
 
[Dl輪読会]A simple neural network module for relational reasoning
[Dl輪読会]A simple neural network module for relational reasoning[Dl輪読会]A simple neural network module for relational reasoning
[Dl輪読会]A simple neural network module for relational reasoningDeep Learning JP
 
【DL輪読会】Patches Are All You Need? (ConvMixer)
【DL輪読会】Patches Are All You Need? (ConvMixer)【DL輪読会】Patches Are All You Need? (ConvMixer)
【DL輪読会】Patches Are All You Need? (ConvMixer)Deep Learning JP
 
モデル高速化百選
モデル高速化百選モデル高速化百選
モデル高速化百選Yusuke Uchida
 
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)NTT DATA Technology & Innovation
 
レイトレ空間構造入門
レイトレ空間構造入門レイトレ空間構造入門
レイトレ空間構造入門Toru Matsuoka
 
1076: CUDAデバッグ・プロファイリング入門
1076: CUDAデバッグ・プロファイリング入門1076: CUDAデバッグ・プロファイリング入門
1076: CUDAデバッグ・プロファイリング入門NVIDIA Japan
 
深層学習を用いたコンピュータビジョン技術とスマートショップの実現
深層学習を用いたコンピュータビジョン技術とスマートショップの実現深層学習を用いたコンピュータビジョン技術とスマートショップの実現
深層学習を用いたコンピュータビジョン技術とスマートショップの実現DeNA
 
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編Fixstars Corporation
 
ソフト高速化の専門家が教える!AI・IoTエッジデバイスの選び方
ソフト高速化の専門家が教える!AI・IoTエッジデバイスの選び方ソフト高速化の専門家が教える!AI・IoTエッジデバイスの選び方
ソフト高速化の専門家が教える!AI・IoTエッジデバイスの選び方Fixstars Corporation
 
【DL輪読会】EPro-PnP: Generalized End-to-End Probabilistic Perspective-n-Pointsfor...
【DL輪読会】EPro-PnP: Generalized End-to-End Probabilistic Perspective-n-Pointsfor...【DL輪読会】EPro-PnP: Generalized End-to-End Probabilistic Perspective-n-Pointsfor...
【DL輪読会】EPro-PnP: Generalized End-to-End Probabilistic Perspective-n-Pointsfor...Deep Learning JP
 
カルマンフィルタ入門
カルマンフィルタ入門カルマンフィルタ入門
カルマンフィルタ入門Yasunori Nihei
 

Mais procurados (20)

Deep Dive into the Linux Kernel - メモリ管理におけるCompaction機能について
Deep Dive into the Linux Kernel - メモリ管理におけるCompaction機能についてDeep Dive into the Linux Kernel - メモリ管理におけるCompaction機能について
Deep Dive into the Linux Kernel - メモリ管理におけるCompaction機能について
 
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
 
pg_trgmと全文検索
pg_trgmと全文検索pg_trgmと全文検索
pg_trgmと全文検索
 
ネットワークでなぜ遅延が生じるのか
ネットワークでなぜ遅延が生じるのかネットワークでなぜ遅延が生じるのか
ネットワークでなぜ遅延が生じるのか
 
Lucas kanade法について
Lucas kanade法についてLucas kanade法について
Lucas kanade法について
 
3D CNNによる人物行動認識の動向
3D CNNによる人物行動認識の動向3D CNNによる人物行動認識の動向
3D CNNによる人物行動認識の動向
 
ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43
ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43
ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43
 
[Dl輪読会]A simple neural network module for relational reasoning
[Dl輪読会]A simple neural network module for relational reasoning[Dl輪読会]A simple neural network module for relational reasoning
[Dl輪読会]A simple neural network module for relational reasoning
 
【DL輪読会】Patches Are All You Need? (ConvMixer)
【DL輪読会】Patches Are All You Need? (ConvMixer)【DL輪読会】Patches Are All You Need? (ConvMixer)
【DL輪読会】Patches Are All You Need? (ConvMixer)
 
モデル高速化百選
モデル高速化百選モデル高速化百選
モデル高速化百選
 
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
 
レイトレ空間構造入門
レイトレ空間構造入門レイトレ空間構造入門
レイトレ空間構造入門
 
CuPy解説
CuPy解説CuPy解説
CuPy解説
 
1076: CUDAデバッグ・プロファイリング入門
1076: CUDAデバッグ・プロファイリング入門1076: CUDAデバッグ・プロファイリング入門
1076: CUDAデバッグ・プロファイリング入門
 
深層学習を用いたコンピュータビジョン技術とスマートショップの実現
深層学習を用いたコンピュータビジョン技術とスマートショップの実現深層学習を用いたコンピュータビジョン技術とスマートショップの実現
深層学習を用いたコンピュータビジョン技術とスマートショップの実現
 
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
 
ソフト高速化の専門家が教える!AI・IoTエッジデバイスの選び方
ソフト高速化の専門家が教える!AI・IoTエッジデバイスの選び方ソフト高速化の専門家が教える!AI・IoTエッジデバイスの選び方
ソフト高速化の専門家が教える!AI・IoTエッジデバイスの選び方
 
【DL輪読会】EPro-PnP: Generalized End-to-End Probabilistic Perspective-n-Pointsfor...
【DL輪読会】EPro-PnP: Generalized End-to-End Probabilistic Perspective-n-Pointsfor...【DL輪読会】EPro-PnP: Generalized End-to-End Probabilistic Perspective-n-Pointsfor...
【DL輪読会】EPro-PnP: Generalized End-to-End Probabilistic Perspective-n-Pointsfor...
 
Your hash is.
Your hash is.Your hash is.
Your hash is.
 
カルマンフィルタ入門
カルマンフィルタ入門カルマンフィルタ入門
カルマンフィルタ入門
 

Semelhante a 第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会

45分で理解する 最近のスパコン事情 斉藤之雄
45分で理解する 最近のスパコン事情 斉藤之雄45分で理解する 最近のスパコン事情 斉藤之雄
45分で理解する 最近のスパコン事情 斉藤之雄Yukio Saito
 
CUDAプログラミング入門
CUDAプログラミング入門CUDAプログラミング入門
CUDAプログラミング入門NVIDIA Japan
 
20170421 tensor flowusergroup
20170421 tensor flowusergroup20170421 tensor flowusergroup
20170421 tensor flowusergroupManaMurakami1
 
seccamp2012 チューター発表
seccamp2012 チューター発表seccamp2012 チューター発表
seccamp2012 チューター発表Hirotaka Kawata
 
第1回 配信講義 計算科学技術特論A (2021)
第1回 配信講義 計算科学技術特論A (2021)第1回 配信講義 計算科学技術特論A (2021)
第1回 配信講義 計算科学技術特論A (2021)RCCSRENKEI
 
20170726 py data.tokyo
20170726 py data.tokyo20170726 py data.tokyo
20170726 py data.tokyoManaMurakami1
 
2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMFAtomu Hidaka
 
【たぶん日本初導入!】Azure Stack Hub with GPUの性能と機能紹介
【たぶん日本初導入!】Azure Stack Hub with GPUの性能と機能紹介【たぶん日本初導入!】Azure Stack Hub with GPUの性能と機能紹介
【たぶん日本初導入!】Azure Stack Hub with GPUの性能と機能紹介NTT Communications Technology Development
 
【A-1】AIを支えるGPUコンピューティングの今
【A-1】AIを支えるGPUコンピューティングの今【A-1】AIを支えるGPUコンピューティングの今
【A-1】AIを支えるGPUコンピューティングの今Developers Summit
 
Deep Learning Lab - Microsoft Machine Learning meetup 2018/06/27 - 推論編
Deep Learning Lab - Microsoft Machine Learning meetup 2018/06/27 - 推論編Deep Learning Lab - Microsoft Machine Learning meetup 2018/06/27 - 推論編
Deep Learning Lab - Microsoft Machine Learning meetup 2018/06/27 - 推論編Daiyu Hatakeyama
 
マルチコアのプログラミング技法 -- OpenCLとWebCL
マルチコアのプログラミング技法 -- OpenCLとWebCLマルチコアのプログラミング技法 -- OpenCLとWebCL
マルチコアのプログラミング技法 -- OpenCLとWebCLmaruyama097
 
PyCoRAMを用いたグラフ処理FPGAアクセラレータ
PyCoRAMを用いたグラフ処理FPGAアクセラレータPyCoRAMを用いたグラフ処理FPGAアクセラレータ
PyCoRAMを用いたグラフ処理FPGAアクセラレータShinya Takamaeda-Y
 
NVIDIA deep learning最新情報in沖縄
NVIDIA deep learning最新情報in沖縄NVIDIA deep learning最新情報in沖縄
NVIDIA deep learning最新情報in沖縄Tak Izaki
 
PCCC22:東京大学情報基盤センター 「Society5.0の実現を目指す「計算・データ・学習」の融合による革新的スーパーコンピューティング」
PCCC22:東京大学情報基盤センター 「Society5.0の実現を目指す「計算・データ・学習」の融合による革新的スーパーコンピューティング」PCCC22:東京大学情報基盤センター 「Society5.0の実現を目指す「計算・データ・学習」の融合による革新的スーパーコンピューティング」
PCCC22:東京大学情報基盤センター 「Society5.0の実現を目指す「計算・データ・学習」の融合による革新的スーパーコンピューティング」PC Cluster Consortium
 
2015年度GPGPU実践基礎工学 第14回 GPGPU組込開発環境
2015年度GPGPU実践基礎工学 第14回 GPGPU組込開発環境2015年度GPGPU実践基礎工学 第14回 GPGPU組込開発環境
2015年度GPGPU実践基礎工学 第14回 GPGPU組込開発環境智啓 出川
 
FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料一路 川染
 
2値ディープニューラルネットワークと組込み機器への応用: 開発中のツール紹介
2値ディープニューラルネットワークと組込み機器への応用: 開発中のツール紹介2値ディープニューラルネットワークと組込み機器への応用: 開発中のツール紹介
2値ディープニューラルネットワークと組込み機器への応用: 開発中のツール紹介Hiroki Nakahara
 

Semelhante a 第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会 (20)

GTC Japan 2017
GTC Japan 2017GTC Japan 2017
GTC Japan 2017
 
45分で理解する 最近のスパコン事情 斉藤之雄
45分で理解する 最近のスパコン事情 斉藤之雄45分で理解する 最近のスパコン事情 斉藤之雄
45分で理解する 最近のスパコン事情 斉藤之雄
 
Cmc cmd slim
Cmc cmd slimCmc cmd slim
Cmc cmd slim
 
CUDAプログラミング入門
CUDAプログラミング入門CUDAプログラミング入門
CUDAプログラミング入門
 
20170421 tensor flowusergroup
20170421 tensor flowusergroup20170421 tensor flowusergroup
20170421 tensor flowusergroup
 
seccamp2012 チューター発表
seccamp2012 チューター発表seccamp2012 チューター発表
seccamp2012 チューター発表
 
第1回 配信講義 計算科学技術特論A (2021)
第1回 配信講義 計算科学技術特論A (2021)第1回 配信講義 計算科学技術特論A (2021)
第1回 配信講義 計算科学技術特論A (2021)
 
20170726 py data.tokyo
20170726 py data.tokyo20170726 py data.tokyo
20170726 py data.tokyo
 
Imaocande LT
Imaocande LTImaocande LT
Imaocande LT
 
2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF
 
【たぶん日本初導入!】Azure Stack Hub with GPUの性能と機能紹介
【たぶん日本初導入!】Azure Stack Hub with GPUの性能と機能紹介【たぶん日本初導入!】Azure Stack Hub with GPUの性能と機能紹介
【たぶん日本初導入!】Azure Stack Hub with GPUの性能と機能紹介
 
【A-1】AIを支えるGPUコンピューティングの今
【A-1】AIを支えるGPUコンピューティングの今【A-1】AIを支えるGPUコンピューティングの今
【A-1】AIを支えるGPUコンピューティングの今
 
Deep Learning Lab - Microsoft Machine Learning meetup 2018/06/27 - 推論編
Deep Learning Lab - Microsoft Machine Learning meetup 2018/06/27 - 推論編Deep Learning Lab - Microsoft Machine Learning meetup 2018/06/27 - 推論編
Deep Learning Lab - Microsoft Machine Learning meetup 2018/06/27 - 推論編
 
マルチコアのプログラミング技法 -- OpenCLとWebCL
マルチコアのプログラミング技法 -- OpenCLとWebCLマルチコアのプログラミング技法 -- OpenCLとWebCL
マルチコアのプログラミング技法 -- OpenCLとWebCL
 
PyCoRAMを用いたグラフ処理FPGAアクセラレータ
PyCoRAMを用いたグラフ処理FPGAアクセラレータPyCoRAMを用いたグラフ処理FPGAアクセラレータ
PyCoRAMを用いたグラフ処理FPGAアクセラレータ
 
NVIDIA deep learning最新情報in沖縄
NVIDIA deep learning最新情報in沖縄NVIDIA deep learning最新情報in沖縄
NVIDIA deep learning最新情報in沖縄
 
PCCC22:東京大学情報基盤センター 「Society5.0の実現を目指す「計算・データ・学習」の融合による革新的スーパーコンピューティング」
PCCC22:東京大学情報基盤センター 「Society5.0の実現を目指す「計算・データ・学習」の融合による革新的スーパーコンピューティング」PCCC22:東京大学情報基盤センター 「Society5.0の実現を目指す「計算・データ・学習」の融合による革新的スーパーコンピューティング」
PCCC22:東京大学情報基盤センター 「Society5.0の実現を目指す「計算・データ・学習」の融合による革新的スーパーコンピューティング」
 
2015年度GPGPU実践基礎工学 第14回 GPGPU組込開発環境
2015年度GPGPU実践基礎工学 第14回 GPGPU組込開発環境2015年度GPGPU実践基礎工学 第14回 GPGPU組込開発環境
2015年度GPGPU実践基礎工学 第14回 GPGPU組込開発環境
 
FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料
 
2値ディープニューラルネットワークと組込み機器への応用: 開発中のツール紹介
2値ディープニューラルネットワークと組込み機器への応用: 開発中のツール紹介2値ディープニューラルネットワークと組込み機器への応用: 開発中のツール紹介
2値ディープニューラルネットワークと組込み機器への応用: 開発中のツール紹介
 

Mais de Hitoshi Sato

ABCI: AI Bridging Cloud Infrastructure for Scalable AI/Big Data
ABCI: AI Bridging Cloud Infrastructure for Scalable AI/Big DataABCI: AI Bridging Cloud Infrastructure for Scalable AI/Big Data
ABCI: AI Bridging Cloud Infrastructure for Scalable AI/Big DataHitoshi Sato
 
AI橋渡しクラウド(ABCI)における高性能計算とAI/ビッグデータ処理の融合
AI橋渡しクラウド(ABCI)における高性能計算とAI/ビッグデータ処理の融合AI橋渡しクラウド(ABCI)における高性能計算とAI/ビッグデータ処理の融合
AI橋渡しクラウド(ABCI)における高性能計算とAI/ビッグデータ処理の融合Hitoshi Sato
 
Building Software Ecosystems for AI Cloud using Singularity HPC Container
Building Software Ecosystems for AI Cloud using Singularity HPC ContainerBuilding Software Ecosystems for AI Cloud using Singularity HPC Container
Building Software Ecosystems for AI Cloud using Singularity HPC ContainerHitoshi Sato
 
産総研AIクラウドでChainerMN
産総研AIクラウドでChainerMN産総研AIクラウドでChainerMN
産総研AIクラウドでChainerMNHitoshi Sato
 
Japan Lustre User Group 2014
Japan Lustre User Group 2014Japan Lustre User Group 2014
Japan Lustre User Group 2014Hitoshi Sato
 
MemoryPlus Workshop
MemoryPlus WorkshopMemoryPlus Workshop
MemoryPlus WorkshopHitoshi Sato
 

Mais de Hitoshi Sato (8)

ABCI: AI Bridging Cloud Infrastructure for Scalable AI/Big Data
ABCI: AI Bridging Cloud Infrastructure for Scalable AI/Big DataABCI: AI Bridging Cloud Infrastructure for Scalable AI/Big Data
ABCI: AI Bridging Cloud Infrastructure for Scalable AI/Big Data
 
AI橋渡しクラウド(ABCI)における高性能計算とAI/ビッグデータ処理の融合
AI橋渡しクラウド(ABCI)における高性能計算とAI/ビッグデータ処理の融合AI橋渡しクラウド(ABCI)における高性能計算とAI/ビッグデータ処理の融合
AI橋渡しクラウド(ABCI)における高性能計算とAI/ビッグデータ処理の融合
 
Building Software Ecosystems for AI Cloud using Singularity HPC Container
Building Software Ecosystems for AI Cloud using Singularity HPC ContainerBuilding Software Ecosystems for AI Cloud using Singularity HPC Container
Building Software Ecosystems for AI Cloud using Singularity HPC Container
 
産総研AIクラウドでChainerMN
産総研AIクラウドでChainerMN産総研AIクラウドでChainerMN
産総研AIクラウドでChainerMN
 
Japan Lustre User Group 2014
Japan Lustre User Group 2014Japan Lustre User Group 2014
Japan Lustre User Group 2014
 
MemoryPlus Workshop
MemoryPlus WorkshopMemoryPlus Workshop
MemoryPlus Workshop
 
LUG 2014
LUG 2014LUG 2014
LUG 2014
 
GTC Japan 2014
GTC Japan 2014GTC Japan 2014
GTC Japan 2014
 

第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会

  • 1. AIクラウドでのLinuxコンテナ利⽤ に向けた性能評価 佐藤 仁, ⼩川 宏⾼ 産業技術総合研究所 ⼈⼯知能研究センター 1 2017年12⽉17⽇ 第162回ハイパフォーマンスコンピューティング研究発表会
  • 5. 5 産総研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スパコン に類似した構成
  • 6. GPU計算ノードの構成 • NVIDIA TESLA P100 x 8 • Intel Xeon E5-2630 v4 x 2 ソケット – ソケットあたり10コア – Hyper Threading (HT) で動作 – ノードあたり40コアにみえる • 256GiBのメモリ • 480GBのSSD • EDR Infiniband – 計算ノード – GPFSストレージへ接続 6 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
  • 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 ユーザプログラム 数値計算 ライブラリ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と融合したワークロード等 既存のクラウドとスパコンで異なるソフトウェアエコシステム
  • 9. AIクラウドのためのソフトウェアエコシステム 既存のクラウド・スパコンの両⽅の技術要素が必要 9 数値計算 ライブラリ 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の利⽤、 コモディティサーバの採⽤
  • 10. Singularity (ソフトウェアの名称です) • Singularity – ⽶国LBNLで開発中のHPC向けLinuxコンテナ • http://singularity.lbl.gov/ • https://github.com/singularityware/singularity • 修正BSDライセンス – ユーザ権限でプログラムを実⾏、ストレージへアクセス • rootで動作するデーモンが不要 => 資源管理をスケジューラに委ねる • setuidでroot権限を与えたコマンドを実⾏ (マウント、名前空間の作成、コンテナ内へのホストのPathのʼ作成など) – Dockerイメージが利⽤可能 • DockerHubと連携 – HPC系のソフトウェアスタックが利⽤可能 • CUDA, MPI, Infiniband, etc. 10
  • 11. 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) ユーザ環境 共有計算機環境 11
  • 12. Singularityでできること • GPU, Infiniband, XXXが利⽤できるか? – ホスト側のデバイス関連ドライバ・ライブラリをコンテナ側 へみせる(nvidia-docker⽅式?) • MPIが利⽤できるか? – ホストのMPIをコンテナ側へみせる(コンテナなメリットが薄い) – コンテナ内にMPIをインストールし、コンテナの外からキックする (ホスト側と同じMPIを使⽤し, Buildも同じにする必要) • mpirun –np N singularity exec container.img mpi_program • mpi4pyが利⽤できるか? – コンテナ内にMPIをインストール – コンテナ内のMPIに対してmpi4pyをインストール – コンテナ外からキック 12
  • 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. 予備実験 • AIのワークロードを想定 – 演算性能(GEMM) – メモリバンド幅性能(STREAM) – 通信性能(OSU Micro Benchmarks) – ストレージI/O性能 (FIO) – 分散深層学習性能(Imagenet-1K) • 実験環境 – AAIC – ベアメタル • CentOS 7.3, Linux 3.10.0, gcc v4.8.5, glibc v2.17 – Singularity • Singularity 2.4 • Ubuntu 16.04, Linux v3.10.0 gcc v5.4.0, glibc v2.23 – 両環境 • CUDA 8.0.61.2, CuDNN v6.0.21 NCCL v2.0.5, OpenMPI v2.1.1 14
  • 15. GPU計算ノードの構成(再掲) • NVIDIA TESLA P100 x 8 • Intel Xeon E5-2630 v4 x 2 ソケット – ソケットあたり10コア – Hyper Threading (HT) で動作 – ノードあたり40コアにみえる • 256GiBのメモリ • 480GBのSSD • EDR Infiniband – 計算ノード – GPFSストレージへ接続 15 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
  • 18. 通信性能(OSU Micro Benchmarks v5.3.2) AllReduce (Ave. Latency, 2nodes, 8gpus/node) AllReduce(h2h) AllReduce(d2d) 18 Better
  • 21. 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 21 ベアメタル実⾏とほぼ遜⾊のない性能を確認 Better
  • 22. 議論 • Singularity – ベアメタルと⽐較してほぼ遜⾊のない性能を確認 • 演算性能だけでなく、メモリバンド幅、ストレージI/O, ネットワーク性能(要確認)も • メモリのフットプリントは未確認 – OSの違いを超えられる(CentOS vs. Ubuntu) • 特に、glibcのバージョンの違いも容易に超えられる (glibcが互換性を担保するような実装になっている) – 導⼊しやすさ • configure, make, make installで可能。共有ストレージへも可能。 – あとはエンジニアリングイシュー • ソフトウェアの安定性の向上 • セキュリティイシューを潰す 22
  • 23. 議論 (contʼd) • Singularityの⽋点 – コンテナ内常駐デーモン不可 – Debug系(gdb)不可 – 資源管理は(cgroupsではなく)スケジューラまかせ 23
  • 24. 議論 (contʼd) • ユーザが任意のコンテナを動かして問題が起きるか? – 特に問題がないと判断している(問題を定義したい) – 基本的には実⾏するユーザの責任 (現状でも任意のソフトウェアをユーザが動かしているので ほぼ同じ問題) • 特殊なコンテナが必要?制限はある? – 基本的には不要。ARMでもOPAでも(Linuxであれば)動く。 – ただし、計算環境に最適化するためには再コンパイルなどした⽅が良い。 • ISVアプリのライセンス – コンテナに含めるのは難しい(気がする) – ユーザ権限でホストの環境をコンテナ側にreadマウントすることはできる – ホストにISVアプリをインストール、コンテナ側にマウント? 24
  • 25. 関連研究 • Docker – root権限が必要なデーモンによりコンテナ起動 – cgroupによる資源管理 (rktも) • Shifter – NERSCで開発 (Coriとかで利⽤?)、CSCSで拡張(Piz Dizant) – Singulairtyと同様の技術, ImageGatewayの存在, Crayのサポート • ChalieCloud [SCʼ17] – Singulairtyと同様の技術 – Singularityのほうが盛り上がっている感はある (OpenMPI v3.0やMvapich v2.3.2のSingularityサポート) • McKernel Integration [Rossʼ17] – Oakforest PACSの事例 – GeoFM, CCS-QCD, mniFE、今回の報告と同様の結果・傾向 25
  • 26. まとめ • AIクラウドのためのソフトウェアエコシステムの必要性 – AIには既存のクラウドとスパコンの両⽅の技術要素が必要 – AIというマーケットが広そうなところに 如何にHPC技術を取り込みやすい環境を作っていくか? • Singularityを⽤いたユーザ権限でのコンテナ実⾏ – 分散深層学習フレームワーク(≒HPCアプリケーション)の コンテナ化 – 予備実験による性能⽐較 • ベアメタルと⽐較してほぼ遜⾊のない性能を確認 26
  • 27. ABCI AI Bridging Cloud Infrastructure The worlds first large-scale Open AI Infrastructure 27 ABCI Serving your AI needs in Spring 2018