SlideShare a Scribd company logo
G P U O N O P E N S TA C K -
G P U イ ン タ ー ナル ク ラ ウ ド の ベ ス トプ ラ ク ティス
P R E S E N T E D B Y M A S A F U M I O H TA @ m a s a f u m i o h t a
A ‘ S TA C K E R ’ L O O K I N G
I N T O G P G P U U S E .
V O L U N T E E R F O R T H E
R A S P B E R RY P I
F O U N D AT I O N : )
M A S A F U M I O H TA
T H I S P R E S E N TAT I O N I S
R E N E W E D F O R
O P E N S TA C K D AY S T O K Y O
2 0 1 7 .
I T I S I N C L U D E D S O M E
F E E D B A C K S F R O M T H E
S E S S I O N AT # L C 3 C H I N A
I N B E I J I N G , 2 0 1 7
P R E S E N TAT I O N R E N E W E D
O R G I Z N E D B Y V T J A N D
G AT H E R
M E , N V I D I A ( A S K ) , D E L L E M C ,
N E S I C A N D S O M E
C O M PA N I E S W H O
I N T E R E S T E D G P U U S E O N
O P E N S TA C K E N V I R O N M E N T
F O R O U R C U S T O M E R S
T H I S P R O J E C T I S …
T E S L A M 6 0 + D E L L E M C  
P O W E R E D G E
C 4 1 3 0 + O P E N S TA C K
T O E VA L U AT E G P U O N
O P E N S TA C K E N V I R O N M E N T
T H A N K S T W O H E L P I N G
O U T A N D P R O V I D I N G
T H O S E S E R V E R S + C A R D S
N O W E VA L U AT I N G . .
GPU on OpenStack - GPUインターナルクラウドのベストプラクティス - OpenStack最新情報セミナー 2017年7月
な ぜ G P U O N O P E N S TA C K な の か ?
は じ め に
O P E N S TA C K
特 殊 利 用 の 需 要
OpenStackの特殊な利用の需要が
増えてきている
Hadoop(Sahara),HPC,などなど
ほとんどのものはまとめたのが
なく、ググって調べるしかない…
曰く「ドキュメントロスト状態」
これらのものはOpenStackの
Docsにまとめられるべき
ど う や って G P U は O P E N S TA C K 環 境 で 動 作 す る の か?
‘GPU ON OPENSTACK’とは何か?
‘ G P U ’ ト レン ド
の お さ ら い
• 多くのGPUコアを利用する
• 一部の計算は単一MPUユニットが
小さくスピードが遅かろうとも多く
のMPUコアを使うことはいくつか
の計算処理には有効である
• サーバ各々は高パフォーマンスでコ
ンパクトにできる
• 低消費電力化はHPCエンドユー
ザにとって大事なこと
• 多くの省電力・ハイパフォーマンス
サーバを所有しやすくなる
ど う や って G P U
は 動 くの か?
• 現在のところPCIパススルーあるいは
NVIDIA(GPU) dockerでの利用となる
• ‘PCIパススルー’ は土台となるベアメタル仮
想環境に依存する
• VSphereとXenは各々VMにGPUコアを任意の単位
で分割して割り当てすることが可能
• OpenStackの標準的なベアメタル仮想環境として
使われるKVMではコア分割ができず、GPUユニッ
トごとをVMに割り当てることとなる
• 昨今使われるコンテナ仮想環境でのデプロ
イとなるNVIDIA(GPU) DockerはDockerコ
ンテナ同士で一つのGPUユニットを共有し
ているが、明示的な分割はしない
• ウインドウズは’docker vm'としては動作しない
G P U
O P E N S TA C K と は
• インスタントなHPC利用
• いくつかの計算をしおえたらVMその
ものを壊す。
• ちょっとしたお試しでいくつかのVM
を使ってHPCグリッド試してみる。終
わったらすぐ壊す。
• GPUインターナルクラウドとして
のGPU利用
• 主に製造業において、いくつかのシス
テムは情報管理上、パブリッククラウ
ドに外だしができない。
ど ん な G P U の メ カ ニズ ム が O P E N S TA C K 環 境
で う ご いて い る の か?
S E T U P : G P U O N O P E N S TA C K
O p e n S t a c k で G P U を 動 かす 方 法 ( 現 在 )
• PCIパススルー
• PCIデバイスをダイレクトに接続する
• ComputeNodeのハイパーバイザー依存、OpenStack依存ではない
• Xen利用でのGPUコア分割、KVMはNVIDIA/AMDともコア分割不可
• Intel GVT-g(Xen)/GVT-d(KVM)によるIntel GPUのコア分割
• コンテナ
• NVIDIA Dockerの利用
• 複数のコンテナによってGPUを利用できるが、明示的なGPUコア分割はできない

タスク次第でのGPU利用
• Kubernetes/Mesos/Docker Swarmなどとの組み合わせ管理
P C I パ ス ス ル ー は V M 上 で ど う 動 作 す る の か?
• PCIデバイスをダイレクトにLinuxホストを通じて接続する
• 物理ホストよりデバイスを切り離す必要あり
• (NVIDIA) Dockerと違いホスト切り離しとなるため、監視管理等は各VMに必要
• OpenStack依存のことではなく、Linuxのベアメタル環境に依存
• KVM上では一つのGPUデバイスにひとつのVM
• Docker/Xen/VSphereと違いGPUは分割もできなければ共有もできない
• これはKVMの制限であってOpenStackによるものではない
P C I P a s s t h ro u g h o n O p e n S t a c k
• Redhatは公式サポート
• ただ、あまり推しでない気が..
• Ubuntuはドキュメントすらまともにない…
• ググって探すしかない(さすがUbuntu..orz )
• 目下小職/NVIDIA JAPAN/DELLEMC/VTJで再度細く検証と
OpenStackコミュニティのためにドキュメントをまとめ上げる予
定(趣旨に同意いただき参画いただける企業様歓迎いたします)
Linux OS for KVM hypervisor
GPU Driver
App
VM
VMM/KVM
IOMMU/Vt-d
PCI Express x16
Linux/Win OS
ComputeNode
GPU Card
Nova Compute
Nova Scheduler
Nova APILinux OS
ControllerNode
図1:OpenStackどうやってGPUパススルーを実現しているのか?(KVMの場合)
Nova Conductor
pci-stub/vfio-pciGPU Driver
S t e p 1 : ホ ス ト の G P U の 状 態 を ま ず は 調 べ る
• lspci -nn | grep -i nvidia でGPUの状態をまずはチェック
lspci -nn | grep -i nvidia
88:00.0 VGA compatible controller [0300]: NVIDIA Corporation Device [10de:11b4] (rev a1)
88:00.1 Audio device [0403]: NVIDIA Corporation GK104 HDMI Audio Controller [10de:0e0a] (rev a1)
• 全てのGPUユニットがパススルーされている必要がある
• GPUだけでなく、ユニットとして認識されるGPUデバイス自体も
パススルーする必要あり
• でないとVMは動いてくれない..(完全にパススルーにならない)
G P U ポー ト が パ ス ス ル ー さ れて い る か チ ェ ッ ク
• QuadroなどHDMIはビデオポートだけでなくオーディ
オポートももっているため注意
• lspciでチェックされたものについては全てパススルーさせる必
要がある。
S T E P 2 : I O M M U セ ッ トア ップ
• IOMMU(Input/Output Memory Management Unit) は物理デ
バイスを仮想化システムで使う上で必要なもの
• もちろんvt-dはオンにする必要あり (EFI/BIOSののデフォル
トはON)
• intel_iommuとvfio_iommu_type1.allow_unsafe_interruptsの
設定を/etc/default/grubに行う必要あり
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash intel_iommu=on
vfio_iommu_type1.allow_unsafe_interrupts=1”
S T E P 3 : p c i - s t u b と V F I O
• pci-stubは物理デバイスをLinuxホスト側が利用できないようにする
• VFIO(Virtual Function IO) は pci-stubと同様の働きをする。kernel 4.1以
降のサポート
• 未使用時はデバイスをD3ステート(低消費電力モード)に変更する
• It is not used by default デフォルトでは使われないため /etc/module を
編集して、これらと関連するコンポーネンツを追記する (kvm,kvm_intel)
pci_stub
vfio
vfio_iommu_type1
vfio_pci
kvm
kvm_intel
S T E P 4 - 1 : ブ ラ ッ ク リス ト ( 1 )
• ramfsでGPUデバイスを認識できないようにする
• /etc/initramfs-tools/modules to initramfs (ubuntuの場合)
echo ‘pci_stub ids=10de:11b4,10de:0e0a’ >> /etc/initramfs-tools/modules
sudo update-initramfs -u && sudo reboot
S T E P 4 - 2 : B l a c k l i s t ( 2 )
• ブート時にGPUデバイスを認識できないようにする。
• /etc/modprobe.d/blacklist.conf に次を追加:
blacklist nvidia
blacklist nvidia-uvm
• ドライバについてもブラックリストに入れる必要あり
blacklist nouveau
S T E P 5 : 物 理 か ら の ア ンバイ ン ド
• 『物理ホストから切り離しVMへのバインドするため』にpci-stubを
チェックする
1. pci-stub/new_idにパススルーするドライバのPCI IDをエントリする。
2. 関連するPCI識別子を物理ホストから切り離す
3. pci-stubにこのPCI識別子をバインドする。
echo 11de 11b4 > /sys/bus/pci/drivers/pci-stub/new_id
echo 11de 0e0a > /sys/bus/pci/drivers/pci-stub/new_id
echo 0000:88:00.0 > /sys/bus/pci/devices/0000:88:00.0/driver/unbind
echo 0000:88:00.1 > /sys/bus/pci/devices/0000:88:00.1/driver/unbind
echo 0000:88:00.0 > /sys/bus/pci/drivers/pci-stub/bind
echo 0000:88:00.1 > /sys/bus/pci/drivers/pci-stub/bind
• 物理ホストのdmesgに以下の’claimed’がブートプロセスにあるかどう
か確認する。
pci-stub 0000:88:00.1: claimed by stub
物理デバイス
pci-stub
(仮想で使う)
GPUユニット
(全てのデバイス)
‘GPUを物理デバイスよりアンバインドして
仮想デバイスにバインドする’
echo 11de 11b4 > /sys/bus/pci/drivers/pci-stub/new_id
echo 11de 0e0a > /sys/bus/pci/drivers/pci-stub/new_id
echo 0000:88:00.0 > /sys/bus/pci/drivers/pci-stub/bind
echo 0000:88:00.1 > /sys/bus/pci/drivers/pci-stub/bind
echo 0000:88:00.0 > /sys/bus/pci/devices/0000:88:00.0/driver/unbind
echo 0000:88:00.1 > /sys/bus/pci/devices/0000:88:00.1/driver/unbind
図2:物理にあるGPUを切り離し仮想につなぐ
modprobe
/etc/modprobe.d/blacklist.conf
pci-stub
/sys/bus/pci/drivers/pci-stub/
/sys/bus/pci/devices/$(Identifier)/driver/unbind
ramfs
/etc/initramfs-tools/modules
GRUB
/etc/default/grub
modules
/etc/modules
UEFI/BIOS
Vt-d
図3:ブート時のGPUブラックリストのプロセス(Ubuntuの場合)
IOMMU
IOMMU
BLACK
LIST
BLACK
LIST
IOMMU
BLACK
LIST
BLACK
LIST
G P U を 追 加 す る ( 1 )
• lspci の結果を確認- 2つの関連するPCI識別子が確認で
きるはず(識別子番号は使用するシステムに依存)
lspci -nn | grep -i nvidia
88:00.0 VGA compatible controller [0300]: NVIDIA Corporation Device [10de:11b4] (rev a1)
88:00.1 Audio device [0403]: NVIDIA Corporation GK104 HDMI Audio Controller [10de:0e0a] (rev a1)
84:00.0 VGA compatible controller [0300]: NVIDIA Corporation Device [10de:11b4] (rev a1)
84:00.1 Audio device [0403]: NVIDIA Corporation GK104 HDMI Audio Controller [10de:0e0a] (rev a1)
• pci-stubにさらにパススルーするGPUの追記をする。
echo 0000:84:00.0 > /sys/bus/pci/devices/0000:84:00.0/driver/unbind
echo 0000:84:00.1 > /sys/bus/pci/devices/0000:84:00.1/driver/unbind
echo 0000:84:00.0 > /sys/bus/pci/drivers/pci-stub/bind
echo 0000:84:00.1 > /sys/bus/pci/drivers/pci-stub/bind
G P U を 追 加 す る ( 2 )
• 追加のGPUがうまく動いたかVMで確認
ubuntu@guestos$ lspci -nn | grep -i nvidia
00:07.0 VGA compatible controller [0300]: NVIDIA Corporation GK104GL [Quadro K4200] [10de:11b4]
(rev a1)
00:08.0 VGA compatible controller [0300]: NVIDIA Corporation GK104GL [Quadro K4200] [10de:11b4]
(rev a1)
• アプリによっては両方同時に利用する際など、同一の
GPUである必要がある可能性がある。
/nbody -benchmark -numdevices=2 -num bodies=65536
O p e n s t a c k : n o v a - a p i の 設 定
• ControllerNodeの/etc/nova/nova.confを編集しnova-
apiを再起動する
• pci_aliasにPCIデバイスの情報、エイリアス名を記述
pci_alias={“name”:”K4200”,"vendor_id":"10de","product_id":"11b4"}
O p e n S t a c k : n o v a - c o m p u t e の 設 定
• ComputeNodeにある/etc/nova/nova.confを編集し、
nova-computeを再起動する。
• pci_passthrough_whitelistにPCIデバイスの情報、エイリアス名を
記述
pci_passthrough_whitelist={“name”:”K4200","vendor_id":"10de","product_id":"11b4"}
*このケースの場合、ベンダーIDとプロダクトIDが適合したデバイスは全てVMにパススルーする。
• pci_aliasににPCIデバイスの情報、エイリアス名を同様に追記
*Neuton以降
pci_alias={“name”:”K4200”,"vendor_id":"10de","product_id":"11b4"}
O p e n S t a c k : n o v a - s c h e d u l e r の 設 定
• ControllerNodeの/etc/nova/nova.confを設定しnova-
schedulerを再起動する。
• PciPassthroughFilterを利用できるようにするために
PciPassthroughFilterをscheduler_default_filtersに追記する
• 同様にPciPassthroughFilterをscheduler_available_filtersに記述
する
scheduler_available_filters=nova.scheduler.filters.all_filters
scheduler_available_filters=nova.scheduler.filters.pci_passthrough_filter.PciPassthroughFilter
scheduler_default_filters=DifferentHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,Dis
kFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,
ServerGroupAffinityFilter,AggregateInstanceExtraSpecsFilter,PciPassthroughFilter
Linux OS for KVM hypervisor
GPU D
App
VM
VMM/KVM
Linux/W
ComputeNode
Nova Compute
Nova Scheduler
Nova API
Linux OS
ControllerNode
Nova Conductor
pci_alias
pci_passthrough_whitelist
pci_alias
scheduler_default_filters
scheduler_available_filters
図4:NovaがGPU(PCI)パススルーされているComputeNodeで動作するプロセス
P C I デバイ ス を 利 用 可 に して P C I 利 用 の リ ク エ ス ト
を 送 れ る よ う に す る
p c i p a s s t h ro u g h f i l t e r を 利 用 して G P U パ ス ス ル ー
さ れ た C o m p u t e N o d e を 選 ぶ
G P U パ ス ス ル ー し た イ ンスタ ンス を p c i _ a l i a s と
p c i _ p a s s t h ro u g h _ w h i t e l i s t に よ って 発 生 さ せ る
O p e n S t a c k : f l a v o r- k e y の 設 定
• flavor-keyを設定しGPUインスタンスで利用できるよう
にPCIパススルーの設定をflavorに追記する
• pci_passthrough:alias=$(pci_alias_name):$(the number of
GPUs we would like to use)
nova flavor-key $flavor_name set “pci_passthrough:alias”=“K4200:$(the number_of_gpus)”
G P U O N O P E N S TA C K を 使 う に あ た って 注 意 すべ
き 問 題 点
既 知 の 問 題
C l o u d イメー ジ の 問 題
• CloudイメージはGPUを使う上ではとても小さくqemu-imgでリサイズ
する必要がある
• CUDAドライバはperl-packages(dev packages)がインストール時に必要
• それが.debあるいは.rpmパッケージであろうとインストールが必要になる。なぜなら
CUDAパッケージ自体がバイナリパッケージでなく、ソースコードよりバイナリをビ
ルドしていて、makeをパッケージインストールの際に実行している
• NVIDIA曰くCUDAドライバの次期リリースでFIX予定とのこと
• CUDA 7.6以降でfixの予定だったのに..まだfixされてない..orz
V D I と しての W i n d o w s 利 用
• CUDA on Windows は思ったより早いけどカクカクしてしまう
• 多分DISKのスピード、ネットワークなどなどいろいろなものが予想される。多
分エフェメラルモードやその他爆速系のSSD/NVMeの利用やら10g以上のネット
ワーク環境が必要となるだろう
• まだ改善対応をやってみたことはないが、なぜ発生するのかを調べるべく近々検証予定。
• VMは基本メモリ/NW転送などコンテキストスイッチでの動作をするため、CUDAの重い
ワークロードはカクカクする可能性があるかもしれない。
• 詳しくはデモビデオにて…
• GPU on OpenStack上でのWindowsの動作はもっと調査が必要..時間がほしい…
V D I と しての W i n d o w s 利 用 ( f e e d b a c k )
• Thanks giving some feedbacks to my session at LC3 China!
• Should checked and investigate the Windows-related issues below, will
update later.
• Windows 10 on KVM issue
• http://bart.vanhauwaert.org/hints/installing-win10-on-KVM.html
• Windows 10 deployment is succeeded from my KVM but I still have failed the same
deployment from my OpenStack.I should investigate more what happened in detail.
• Nvidia Driver issue (version 337.88 or later)
• https://wiki.archlinux.org/index.php/PCI_passthrough_via_OVMF#.
22Error_43:_Driver_failed_to_load.22_on_Nvidia_GPUs_passed_to_Windows_VMs
• ‘Nvidia drivers on Windows check if an hypervisor is running and fail if it detects one, which
results in an Error 43 in the Windows device manager. ‘ I haven’t found this issue on my
Windows 7 VMs so I should check more in detail
• Related links libvirt for adding the driver, should be checked.
• https://github.com/openstack/nova/blob/master/nova/virt/libvirt/config.py#L2025-L2036
• https://github.com/openstack/nova/blob/master/nova/virt/libvirt/driver.py#L4262-L4264
ラ イ ブ マイグ レ ー シ ョ ン の 問 題
• PCIパススルーを使ったVMはライブマイグレーションができない。マイ
グレーション前のホストのPCIコネクションが切れないままになってし
まう。
• ワークアラウンド:古いコネクションを下記にあるようなmysql DBの
nova.pci_devicesから削除し古いホストを再起動する。
• 再起動は他のホストに影響するため、ありえない。他にmysql DBなど関連プロセ
スの再起動で乗り切る形もあるが、これも他のホストに影響するためありえない
ことになる。
| 2016-08-11 00:54:45 | 2016-08-19 04:58:01 | NULL | 0 | 45 | 21 | 0000:84:00.0 | 11b4 | 10de | type-PCI | pci_0000_84_00_0 |
label_10de_11b4 | available | {} | NULL | NULL | 1 | <<-- old-host
| 2016-08-11 00:54:45 | 2016-08-19 04:58:01 | NULL | 0 | 48 | 21 | 0000:88:00.0 | 11b4 | 10de | type-PCI | pci_0000_88_00_0 |
label_10de_11b4 | available | {} | NULL | NULL | 1 | <<-- old-host
G P U が O P E N S TA C K 環 境 で ど う 動 く か 

チ ェ ッ ク !
デ モ ( ビ デ オ )
イ ンス タ ンス を 立 ち 上 げ G P U の 動 作 を 確 認
• RHEL OpenStackを利用
• パススルーしてあるインスタンスを立ち上げる
• Ubuntuインスタンスを立ち上げlspciとdevicequeryを実行、GPUの
動作を確認
• Windows上でのGPUの動きをGraphicsベンチで確認、RDSでのリ
モートサイトにあるものの接続のため、カクカクしてしまうがベン
チの結果だけ?良いことを確認する。
• デモビデオではSlashtopを利用
関 連 リ ン ク
• Attaching physical PCI devices to guests:
https://docs.openstack.org/admin-guide/compute-pci-
passthrough.html
• Container as a Service on GPU Cloud- Our Decision
Among K8s, Mesos, Docker Swarm, and OpenStack
Zun:
https://www.slideshare.net/secret/AiUdO4dLxNTkfI
• OVMF_による_PCI_パススルー

https://goo.gl/icq9mV
S p e c i a l T h a n k s t o :
• GPU on OpenStack project members
VirtualTech Japan
NVIDIA
DellEMC
NEC Networks & System Integration
• @zgock999 at Tokaido-LUG, Nagoya, Japan
Teach me some hints how to use GPGPU on VM!
• Matthew Treinish of IBM attended my session at LC3 china and
figure out and feedback some point!
• Our customers! give the chance to evaluate!
P R E S E N T B Y M A S A F U M I O H TA
T W E E T @ m a s a f u m i o h t a m a i l t o : m a s a f u m i @ p i d 0 . o rg
T H A N K S V E RY M U C H F O R C O M I N G M Y S E S S I O N !

More Related Content

PDF
3分でわかるAzureでのService Principal
PDF
WebSocketのキホン
PDF
SSHパケットの復号ツールを作ろう_v1(Decrypt SSH .pcap File)
PDF
Java仮想マシンの実装技術
PPTX
Dockerからcontainerdへの移行
PPTX
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
PDF
Ethernetの受信処理
PDF
コンテナの作り方「Dockerは裏方で何をしているのか?」
3分でわかるAzureでのService Principal
WebSocketのキホン
SSHパケットの復号ツールを作ろう_v1(Decrypt SSH .pcap File)
Java仮想マシンの実装技術
Dockerからcontainerdへの移行
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Ethernetの受信処理
コンテナの作り方「Dockerは裏方で何をしているのか?」

What's hot (20)

PDF
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PPTX
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(応用編)
PDF
コンテナにおけるパフォーマンス調査でハマった話
PDF
ロードバランスへの長い道
PDF
NEDIA_SNIA_CXL_講演資料.pdf
PDF
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PDF
PG-REXで学ぶPacemaker運用の実例
PPTX
MAASで管理するBaremetal server
PDF
systemd 再入門
PDF
APICのREST API入門
PPT
Glibc malloc internal
PDF
20200930 AWS Black Belt Online Seminar Amazon Kinesis Video Streams
PDF
AWSのログ管理ベストプラクティス
PPTX
サポート エンジニアが語る、Microsoft Azure を支えるインフラの秘密
PPTX
私がなぜZscalerに?
PDF
Linux女子部 systemd徹底入門
PDF
perfを使ったPostgreSQLの解析(前編)
PPTX
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(DevNet編)
PDF
HTTP/2の現状とこれから
PDF
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(応用編)
コンテナにおけるパフォーマンス調査でハマった話
ロードバランスへの長い道
NEDIA_SNIA_CXL_講演資料.pdf
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PG-REXで学ぶPacemaker運用の実例
MAASで管理するBaremetal server
systemd 再入門
APICのREST API入門
Glibc malloc internal
20200930 AWS Black Belt Online Seminar Amazon Kinesis Video Streams
AWSのログ管理ベストプラクティス
サポート エンジニアが語る、Microsoft Azure を支えるインフラの秘密
私がなぜZscalerに?
Linux女子部 systemd徹底入門
perfを使ったPostgreSQLの解析(前編)
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(DevNet編)
HTTP/2の現状とこれから
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
Ad

Similar to GPU on OpenStack - GPUインターナルクラウドのベストプラクティス - OpenStack最新情報セミナー 2017年7月 (20)

PDF
Linux KVM環境におけるGPGPU活用最新動向
PDF
OSC2012-KANSAI@Kyoto JOSUG
PPTX
OpenStackを使用したGPU仮想化IaaS環境 事例紹介
PDF
もしCloudStackのKVMホストでPCIパススルーできるようになったら
PDF
SR-IOV Networking in OpenStack - OpenStack最新情報セミナー 2016年3月
PDF
OpenStack入門 2016/06/10
PDF
OpenStack Summit 2014 Paris 出張報告
PDF
OpenStack 向けネットワーク入門
PDF
Dell EMC の Azure Stack と GPU
PDF
NVIDIA 入門
PDF
1000: 基調講演
PPTX
MEC (Mobile Edge Computing) + GPUコンピューティングについて
PPTX
OpenStackネットワーク入門 – OpenStack最新情報セミナー 2015年4月
PDF
OpenStack Vancouver Summit Report presented at nttgroup meeting in Japanese
PDF
GPU と PYTHON と、それから最近の NVIDIA
PDF
20150713-OpenStack-5thbirthday-kilo-liberty-and-towards
PDF
GPU Container as a Serviceを実現するための最新OSS徹底比較 - OpenStack最新情報セミナー 2017年7月
PDF
20131211 Neutron Havana
PDF
[db analytics showcase Sapporo 2017] B14: GPU コンピューティング最前線 by エヌビディア 佐々木邦暢
PDF
Neutron Icehouse Update (Japanese)
Linux KVM環境におけるGPGPU活用最新動向
OSC2012-KANSAI@Kyoto JOSUG
OpenStackを使用したGPU仮想化IaaS環境 事例紹介
もしCloudStackのKVMホストでPCIパススルーできるようになったら
SR-IOV Networking in OpenStack - OpenStack最新情報セミナー 2016年3月
OpenStack入門 2016/06/10
OpenStack Summit 2014 Paris 出張報告
OpenStack 向けネットワーク入門
Dell EMC の Azure Stack と GPU
NVIDIA 入門
1000: 基調講演
MEC (Mobile Edge Computing) + GPUコンピューティングについて
OpenStackネットワーク入門 – OpenStack最新情報セミナー 2015年4月
OpenStack Vancouver Summit Report presented at nttgroup meeting in Japanese
GPU と PYTHON と、それから最近の NVIDIA
20150713-OpenStack-5thbirthday-kilo-liberty-and-towards
GPU Container as a Serviceを実現するための最新OSS徹底比較 - OpenStack最新情報セミナー 2017年7月
20131211 Neutron Havana
[db analytics showcase Sapporo 2017] B14: GPU コンピューティング最前線 by エヌビディア 佐々木邦暢
Neutron Icehouse Update (Japanese)
Ad

More from VirtualTech Japan Inc. (20)

PDF
5G時代のアプリケーションとは 〜 5G+MECを活用した低遅延アプリの実現へ 〜
PPTX
エンジニアが幸せになれる会社を目指します
PDF
KubeVirt 201 How to Using the GPU
PDF
PDF
今からはじめる! Linuxコマンド入門
PDF
5G時代のアプリケーション開発とは - 5G+MECを活用した低遅延アプリの実現へ
PDF
Kubernetes雑にまとめてみた 2020年8月版
PDF
MS Teams + OBS Studio (+ OBS Mac Virtual Camera) でのオンラインセミナーのプロトタイプの構築
PDF
5G時代のアプリケーション開発とは
PDF
hbstudy#88 5G+MEC時代のシステム設計
PDF
通信への課題発掘ワークショップ 「5Gイノベーション」の取り組み
PDF
Kubernetes雑にまとめてみた 2019年12月版
PPTX
Docker超入門
PDF
5Gにまつわる3つの誤解 - 5G×ライブコンテンツ:5G時代の双方向コンテンツとは
PDF
KubeCon China & MWC Shangai 出張報告
PDF
NTT Docomo's Challenge looking ahead the world pf 5G × OpenStack - OpenStack最...
PDF
Introduction of private cloud in LINE - OpenStack最新情報セミナー(2019年2月)
PDF
Multi-access Edge Computing(MEC)における”Edge”の定義
PPTX
Edge Computing Architecture using GPUs and Kubernetes
PDF
OpenStack Summit & KubeConからみるコンテナ技術の最新トレンド (更新版) - OpenStack Day Tokyo 2018講演資料
5G時代のアプリケーションとは 〜 5G+MECを活用した低遅延アプリの実現へ 〜
エンジニアが幸せになれる会社を目指します
KubeVirt 201 How to Using the GPU
今からはじめる! Linuxコマンド入門
5G時代のアプリケーション開発とは - 5G+MECを活用した低遅延アプリの実現へ
Kubernetes雑にまとめてみた 2020年8月版
MS Teams + OBS Studio (+ OBS Mac Virtual Camera) でのオンラインセミナーのプロトタイプの構築
5G時代のアプリケーション開発とは
hbstudy#88 5G+MEC時代のシステム設計
通信への課題発掘ワークショップ 「5Gイノベーション」の取り組み
Kubernetes雑にまとめてみた 2019年12月版
Docker超入門
5Gにまつわる3つの誤解 - 5G×ライブコンテンツ:5G時代の双方向コンテンツとは
KubeCon China & MWC Shangai 出張報告
NTT Docomo's Challenge looking ahead the world pf 5G × OpenStack - OpenStack最...
Introduction of private cloud in LINE - OpenStack最新情報セミナー(2019年2月)
Multi-access Edge Computing(MEC)における”Edge”の定義
Edge Computing Architecture using GPUs and Kubernetes
OpenStack Summit & KubeConからみるコンテナ技術の最新トレンド (更新版) - OpenStack Day Tokyo 2018講演資料

GPU on OpenStack - GPUインターナルクラウドのベストプラクティス - OpenStack最新情報セミナー 2017年7月

  • 1. G P U O N O P E N S TA C K - G P U イ ン タ ー ナル ク ラ ウ ド の ベ ス トプ ラ ク ティス P R E S E N T E D B Y M A S A F U M I O H TA @ m a s a f u m i o h t a
  • 2. A ‘ S TA C K E R ’ L O O K I N G I N T O G P G P U U S E . V O L U N T E E R F O R T H E R A S P B E R RY P I F O U N D AT I O N : ) M A S A F U M I O H TA
  • 3. T H I S P R E S E N TAT I O N I S R E N E W E D F O R O P E N S TA C K D AY S T O K Y O 2 0 1 7 . I T I S I N C L U D E D S O M E F E E D B A C K S F R O M T H E S E S S I O N AT # L C 3 C H I N A I N B E I J I N G , 2 0 1 7 P R E S E N TAT I O N R E N E W E D
  • 4. O R G I Z N E D B Y V T J A N D G AT H E R M E , N V I D I A ( A S K ) , D E L L E M C , N E S I C A N D S O M E C O M PA N I E S W H O I N T E R E S T E D G P U U S E O N O P E N S TA C K E N V I R O N M E N T F O R O U R C U S T O M E R S T H I S P R O J E C T I S …
  • 5. T E S L A M 6 0 + D E L L E M C   P O W E R E D G E C 4 1 3 0 + O P E N S TA C K T O E VA L U AT E G P U O N O P E N S TA C K E N V I R O N M E N T T H A N K S T W O H E L P I N G O U T A N D P R O V I D I N G T H O S E S E R V E R S + C A R D S N O W E VA L U AT I N G . .
  • 7. な ぜ G P U O N O P E N S TA C K な の か ? は じ め に
  • 8. O P E N S TA C K 特 殊 利 用 の 需 要 OpenStackの特殊な利用の需要が 増えてきている Hadoop(Sahara),HPC,などなど ほとんどのものはまとめたのが なく、ググって調べるしかない… 曰く「ドキュメントロスト状態」 これらのものはOpenStackの Docsにまとめられるべき
  • 9. ど う や って G P U は O P E N S TA C K 環 境 で 動 作 す る の か? ‘GPU ON OPENSTACK’とは何か?
  • 10. ‘ G P U ’ ト レン ド の お さ ら い • 多くのGPUコアを利用する • 一部の計算は単一MPUユニットが 小さくスピードが遅かろうとも多く のMPUコアを使うことはいくつか の計算処理には有効である • サーバ各々は高パフォーマンスでコ ンパクトにできる • 低消費電力化はHPCエンドユー ザにとって大事なこと • 多くの省電力・ハイパフォーマンス サーバを所有しやすくなる
  • 11. ど う や って G P U は 動 くの か? • 現在のところPCIパススルーあるいは NVIDIA(GPU) dockerでの利用となる • ‘PCIパススルー’ は土台となるベアメタル仮 想環境に依存する • VSphereとXenは各々VMにGPUコアを任意の単位 で分割して割り当てすることが可能 • OpenStackの標準的なベアメタル仮想環境として 使われるKVMではコア分割ができず、GPUユニッ トごとをVMに割り当てることとなる • 昨今使われるコンテナ仮想環境でのデプロ イとなるNVIDIA(GPU) DockerはDockerコ ンテナ同士で一つのGPUユニットを共有し ているが、明示的な分割はしない • ウインドウズは’docker vm'としては動作しない
  • 12. G P U O P E N S TA C K と は • インスタントなHPC利用 • いくつかの計算をしおえたらVMその ものを壊す。 • ちょっとしたお試しでいくつかのVM を使ってHPCグリッド試してみる。終 わったらすぐ壊す。 • GPUインターナルクラウドとして のGPU利用 • 主に製造業において、いくつかのシス テムは情報管理上、パブリッククラウ ドに外だしができない。
  • 13. ど ん な G P U の メ カ ニズ ム が O P E N S TA C K 環 境 で う ご いて い る の か? S E T U P : G P U O N O P E N S TA C K
  • 14. O p e n S t a c k で G P U を 動 かす 方 法 ( 現 在 ) • PCIパススルー • PCIデバイスをダイレクトに接続する • ComputeNodeのハイパーバイザー依存、OpenStack依存ではない • Xen利用でのGPUコア分割、KVMはNVIDIA/AMDともコア分割不可 • Intel GVT-g(Xen)/GVT-d(KVM)によるIntel GPUのコア分割 • コンテナ • NVIDIA Dockerの利用 • 複数のコンテナによってGPUを利用できるが、明示的なGPUコア分割はできない
 タスク次第でのGPU利用 • Kubernetes/Mesos/Docker Swarmなどとの組み合わせ管理
  • 15. P C I パ ス ス ル ー は V M 上 で ど う 動 作 す る の か? • PCIデバイスをダイレクトにLinuxホストを通じて接続する • 物理ホストよりデバイスを切り離す必要あり • (NVIDIA) Dockerと違いホスト切り離しとなるため、監視管理等は各VMに必要 • OpenStack依存のことではなく、Linuxのベアメタル環境に依存 • KVM上では一つのGPUデバイスにひとつのVM • Docker/Xen/VSphereと違いGPUは分割もできなければ共有もできない • これはKVMの制限であってOpenStackによるものではない
  • 16. P C I P a s s t h ro u g h o n O p e n S t a c k • Redhatは公式サポート • ただ、あまり推しでない気が.. • Ubuntuはドキュメントすらまともにない… • ググって探すしかない(さすがUbuntu..orz ) • 目下小職/NVIDIA JAPAN/DELLEMC/VTJで再度細く検証と OpenStackコミュニティのためにドキュメントをまとめ上げる予 定(趣旨に同意いただき参画いただける企業様歓迎いたします)
  • 17. Linux OS for KVM hypervisor GPU Driver App VM VMM/KVM IOMMU/Vt-d PCI Express x16 Linux/Win OS ComputeNode GPU Card Nova Compute Nova Scheduler Nova APILinux OS ControllerNode 図1:OpenStackどうやってGPUパススルーを実現しているのか?(KVMの場合) Nova Conductor pci-stub/vfio-pciGPU Driver
  • 18. S t e p 1 : ホ ス ト の G P U の 状 態 を ま ず は 調 べ る • lspci -nn | grep -i nvidia でGPUの状態をまずはチェック lspci -nn | grep -i nvidia 88:00.0 VGA compatible controller [0300]: NVIDIA Corporation Device [10de:11b4] (rev a1) 88:00.1 Audio device [0403]: NVIDIA Corporation GK104 HDMI Audio Controller [10de:0e0a] (rev a1) • 全てのGPUユニットがパススルーされている必要がある • GPUだけでなく、ユニットとして認識されるGPUデバイス自体も パススルーする必要あり • でないとVMは動いてくれない..(完全にパススルーにならない)
  • 19. G P U ポー ト が パ ス ス ル ー さ れて い る か チ ェ ッ ク • QuadroなどHDMIはビデオポートだけでなくオーディ オポートももっているため注意 • lspciでチェックされたものについては全てパススルーさせる必 要がある。
  • 20. S T E P 2 : I O M M U セ ッ トア ップ • IOMMU(Input/Output Memory Management Unit) は物理デ バイスを仮想化システムで使う上で必要なもの • もちろんvt-dはオンにする必要あり (EFI/BIOSののデフォル トはON) • intel_iommuとvfio_iommu_type1.allow_unsafe_interruptsの 設定を/etc/default/grubに行う必要あり GRUB_CMDLINE_LINUX_DEFAULT="quiet splash intel_iommu=on vfio_iommu_type1.allow_unsafe_interrupts=1”
  • 21. S T E P 3 : p c i - s t u b と V F I O • pci-stubは物理デバイスをLinuxホスト側が利用できないようにする • VFIO(Virtual Function IO) は pci-stubと同様の働きをする。kernel 4.1以 降のサポート • 未使用時はデバイスをD3ステート(低消費電力モード)に変更する • It is not used by default デフォルトでは使われないため /etc/module を 編集して、これらと関連するコンポーネンツを追記する (kvm,kvm_intel) pci_stub vfio vfio_iommu_type1 vfio_pci kvm kvm_intel
  • 22. S T E P 4 - 1 : ブ ラ ッ ク リス ト ( 1 ) • ramfsでGPUデバイスを認識できないようにする • /etc/initramfs-tools/modules to initramfs (ubuntuの場合) echo ‘pci_stub ids=10de:11b4,10de:0e0a’ >> /etc/initramfs-tools/modules sudo update-initramfs -u && sudo reboot
  • 23. S T E P 4 - 2 : B l a c k l i s t ( 2 ) • ブート時にGPUデバイスを認識できないようにする。 • /etc/modprobe.d/blacklist.conf に次を追加: blacklist nvidia blacklist nvidia-uvm • ドライバについてもブラックリストに入れる必要あり blacklist nouveau
  • 24. S T E P 5 : 物 理 か ら の ア ンバイ ン ド • 『物理ホストから切り離しVMへのバインドするため』にpci-stubを チェックする 1. pci-stub/new_idにパススルーするドライバのPCI IDをエントリする。 2. 関連するPCI識別子を物理ホストから切り離す 3. pci-stubにこのPCI識別子をバインドする。 echo 11de 11b4 > /sys/bus/pci/drivers/pci-stub/new_id echo 11de 0e0a > /sys/bus/pci/drivers/pci-stub/new_id echo 0000:88:00.0 > /sys/bus/pci/devices/0000:88:00.0/driver/unbind echo 0000:88:00.1 > /sys/bus/pci/devices/0000:88:00.1/driver/unbind echo 0000:88:00.0 > /sys/bus/pci/drivers/pci-stub/bind echo 0000:88:00.1 > /sys/bus/pci/drivers/pci-stub/bind • 物理ホストのdmesgに以下の’claimed’がブートプロセスにあるかどう か確認する。 pci-stub 0000:88:00.1: claimed by stub
  • 25. 物理デバイス pci-stub (仮想で使う) GPUユニット (全てのデバイス) ‘GPUを物理デバイスよりアンバインドして 仮想デバイスにバインドする’ echo 11de 11b4 > /sys/bus/pci/drivers/pci-stub/new_id echo 11de 0e0a > /sys/bus/pci/drivers/pci-stub/new_id echo 0000:88:00.0 > /sys/bus/pci/drivers/pci-stub/bind echo 0000:88:00.1 > /sys/bus/pci/drivers/pci-stub/bind echo 0000:88:00.0 > /sys/bus/pci/devices/0000:88:00.0/driver/unbind echo 0000:88:00.1 > /sys/bus/pci/devices/0000:88:00.1/driver/unbind 図2:物理にあるGPUを切り離し仮想につなぐ
  • 27. G P U を 追 加 す る ( 1 ) • lspci の結果を確認- 2つの関連するPCI識別子が確認で きるはず(識別子番号は使用するシステムに依存) lspci -nn | grep -i nvidia 88:00.0 VGA compatible controller [0300]: NVIDIA Corporation Device [10de:11b4] (rev a1) 88:00.1 Audio device [0403]: NVIDIA Corporation GK104 HDMI Audio Controller [10de:0e0a] (rev a1) 84:00.0 VGA compatible controller [0300]: NVIDIA Corporation Device [10de:11b4] (rev a1) 84:00.1 Audio device [0403]: NVIDIA Corporation GK104 HDMI Audio Controller [10de:0e0a] (rev a1) • pci-stubにさらにパススルーするGPUの追記をする。 echo 0000:84:00.0 > /sys/bus/pci/devices/0000:84:00.0/driver/unbind echo 0000:84:00.1 > /sys/bus/pci/devices/0000:84:00.1/driver/unbind echo 0000:84:00.0 > /sys/bus/pci/drivers/pci-stub/bind echo 0000:84:00.1 > /sys/bus/pci/drivers/pci-stub/bind
  • 28. G P U を 追 加 す る ( 2 ) • 追加のGPUがうまく動いたかVMで確認 ubuntu@guestos$ lspci -nn | grep -i nvidia 00:07.0 VGA compatible controller [0300]: NVIDIA Corporation GK104GL [Quadro K4200] [10de:11b4] (rev a1) 00:08.0 VGA compatible controller [0300]: NVIDIA Corporation GK104GL [Quadro K4200] [10de:11b4] (rev a1) • アプリによっては両方同時に利用する際など、同一の GPUである必要がある可能性がある。 /nbody -benchmark -numdevices=2 -num bodies=65536
  • 29. O p e n s t a c k : n o v a - a p i の 設 定 • ControllerNodeの/etc/nova/nova.confを編集しnova- apiを再起動する • pci_aliasにPCIデバイスの情報、エイリアス名を記述 pci_alias={“name”:”K4200”,"vendor_id":"10de","product_id":"11b4"}
  • 30. O p e n S t a c k : n o v a - c o m p u t e の 設 定 • ComputeNodeにある/etc/nova/nova.confを編集し、 nova-computeを再起動する。 • pci_passthrough_whitelistにPCIデバイスの情報、エイリアス名を 記述 pci_passthrough_whitelist={“name”:”K4200","vendor_id":"10de","product_id":"11b4"} *このケースの場合、ベンダーIDとプロダクトIDが適合したデバイスは全てVMにパススルーする。 • pci_aliasににPCIデバイスの情報、エイリアス名を同様に追記 *Neuton以降 pci_alias={“name”:”K4200”,"vendor_id":"10de","product_id":"11b4"}
  • 31. O p e n S t a c k : n o v a - s c h e d u l e r の 設 定 • ControllerNodeの/etc/nova/nova.confを設定しnova- schedulerを再起動する。 • PciPassthroughFilterを利用できるようにするために PciPassthroughFilterをscheduler_default_filtersに追記する • 同様にPciPassthroughFilterをscheduler_available_filtersに記述 する scheduler_available_filters=nova.scheduler.filters.all_filters scheduler_available_filters=nova.scheduler.filters.pci_passthrough_filter.PciPassthroughFilter scheduler_default_filters=DifferentHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,Dis kFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter, ServerGroupAffinityFilter,AggregateInstanceExtraSpecsFilter,PciPassthroughFilter
  • 32. Linux OS for KVM hypervisor GPU D App VM VMM/KVM Linux/W ComputeNode Nova Compute Nova Scheduler Nova API Linux OS ControllerNode Nova Conductor pci_alias pci_passthrough_whitelist pci_alias scheduler_default_filters scheduler_available_filters 図4:NovaがGPU(PCI)パススルーされているComputeNodeで動作するプロセス P C I デバイ ス を 利 用 可 に して P C I 利 用 の リ ク エ ス ト を 送 れ る よ う に す る p c i p a s s t h ro u g h f i l t e r を 利 用 して G P U パ ス ス ル ー さ れ た C o m p u t e N o d e を 選 ぶ G P U パ ス ス ル ー し た イ ンスタ ンス を p c i _ a l i a s と p c i _ p a s s t h ro u g h _ w h i t e l i s t に よ って 発 生 さ せ る
  • 33. O p e n S t a c k : f l a v o r- k e y の 設 定 • flavor-keyを設定しGPUインスタンスで利用できるよう にPCIパススルーの設定をflavorに追記する • pci_passthrough:alias=$(pci_alias_name):$(the number of GPUs we would like to use) nova flavor-key $flavor_name set “pci_passthrough:alias”=“K4200:$(the number_of_gpus)”
  • 34. G P U O N O P E N S TA C K を 使 う に あ た って 注 意 すべ き 問 題 点 既 知 の 問 題
  • 35. C l o u d イメー ジ の 問 題 • CloudイメージはGPUを使う上ではとても小さくqemu-imgでリサイズ する必要がある • CUDAドライバはperl-packages(dev packages)がインストール時に必要 • それが.debあるいは.rpmパッケージであろうとインストールが必要になる。なぜなら CUDAパッケージ自体がバイナリパッケージでなく、ソースコードよりバイナリをビ ルドしていて、makeをパッケージインストールの際に実行している • NVIDIA曰くCUDAドライバの次期リリースでFIX予定とのこと • CUDA 7.6以降でfixの予定だったのに..まだfixされてない..orz
  • 36. V D I と しての W i n d o w s 利 用 • CUDA on Windows は思ったより早いけどカクカクしてしまう • 多分DISKのスピード、ネットワークなどなどいろいろなものが予想される。多 分エフェメラルモードやその他爆速系のSSD/NVMeの利用やら10g以上のネット ワーク環境が必要となるだろう • まだ改善対応をやってみたことはないが、なぜ発生するのかを調べるべく近々検証予定。 • VMは基本メモリ/NW転送などコンテキストスイッチでの動作をするため、CUDAの重い ワークロードはカクカクする可能性があるかもしれない。 • 詳しくはデモビデオにて… • GPU on OpenStack上でのWindowsの動作はもっと調査が必要..時間がほしい…
  • 37. V D I と しての W i n d o w s 利 用 ( f e e d b a c k ) • Thanks giving some feedbacks to my session at LC3 China! • Should checked and investigate the Windows-related issues below, will update later. • Windows 10 on KVM issue • http://bart.vanhauwaert.org/hints/installing-win10-on-KVM.html • Windows 10 deployment is succeeded from my KVM but I still have failed the same deployment from my OpenStack.I should investigate more what happened in detail. • Nvidia Driver issue (version 337.88 or later) • https://wiki.archlinux.org/index.php/PCI_passthrough_via_OVMF#. 22Error_43:_Driver_failed_to_load.22_on_Nvidia_GPUs_passed_to_Windows_VMs • ‘Nvidia drivers on Windows check if an hypervisor is running and fail if it detects one, which results in an Error 43 in the Windows device manager. ‘ I haven’t found this issue on my Windows 7 VMs so I should check more in detail • Related links libvirt for adding the driver, should be checked. • https://github.com/openstack/nova/blob/master/nova/virt/libvirt/config.py#L2025-L2036 • https://github.com/openstack/nova/blob/master/nova/virt/libvirt/driver.py#L4262-L4264
  • 38. ラ イ ブ マイグ レ ー シ ョ ン の 問 題 • PCIパススルーを使ったVMはライブマイグレーションができない。マイ グレーション前のホストのPCIコネクションが切れないままになってし まう。 • ワークアラウンド:古いコネクションを下記にあるようなmysql DBの nova.pci_devicesから削除し古いホストを再起動する。 • 再起動は他のホストに影響するため、ありえない。他にmysql DBなど関連プロセ スの再起動で乗り切る形もあるが、これも他のホストに影響するためありえない ことになる。 | 2016-08-11 00:54:45 | 2016-08-19 04:58:01 | NULL | 0 | 45 | 21 | 0000:84:00.0 | 11b4 | 10de | type-PCI | pci_0000_84_00_0 | label_10de_11b4 | available | {} | NULL | NULL | 1 | <<-- old-host | 2016-08-11 00:54:45 | 2016-08-19 04:58:01 | NULL | 0 | 48 | 21 | 0000:88:00.0 | 11b4 | 10de | type-PCI | pci_0000_88_00_0 | label_10de_11b4 | available | {} | NULL | NULL | 1 | <<-- old-host
  • 39. G P U が O P E N S TA C K 環 境 で ど う 動 く か 
 チ ェ ッ ク ! デ モ ( ビ デ オ )
  • 40. イ ンス タ ンス を 立 ち 上 げ G P U の 動 作 を 確 認 • RHEL OpenStackを利用 • パススルーしてあるインスタンスを立ち上げる • Ubuntuインスタンスを立ち上げlspciとdevicequeryを実行、GPUの 動作を確認 • Windows上でのGPUの動きをGraphicsベンチで確認、RDSでのリ モートサイトにあるものの接続のため、カクカクしてしまうがベン チの結果だけ?良いことを確認する。 • デモビデオではSlashtopを利用
  • 41. 関 連 リ ン ク • Attaching physical PCI devices to guests: https://docs.openstack.org/admin-guide/compute-pci- passthrough.html • Container as a Service on GPU Cloud- Our Decision Among K8s, Mesos, Docker Swarm, and OpenStack Zun: https://www.slideshare.net/secret/AiUdO4dLxNTkfI • OVMF_による_PCI_パススルー
 https://goo.gl/icq9mV
  • 42. S p e c i a l T h a n k s t o : • GPU on OpenStack project members VirtualTech Japan NVIDIA DellEMC NEC Networks & System Integration • @zgock999 at Tokaido-LUG, Nagoya, Japan Teach me some hints how to use GPGPU on VM! • Matthew Treinish of IBM attended my session at LC3 china and figure out and feedback some point! • Our customers! give the chance to evaluate!
  • 43. P R E S E N T B Y M A S A F U M I O H TA T W E E T @ m a s a f u m i o h t a m a i l t o : m a s a f u m i @ p i d 0 . o rg T H A N K S V E RY M U C H F O R C O M I N G M Y S E S S I O N !