SlideShare a Scribd company logo
1 of 30
Download to read offline
Linux KVM環境における
GPGPU活用最新動向
- OSC2015 Fukuoka -
TAIRA Hajime <htaira@pantora.net>TAIRA Hajime <htaira@pantora.net>
2
自己紹介
平 初
仮想化友の会 発起人
生息地 : 東京 / 愛知 / 北海道 / 熊本
好きなゆるキャラ : くまモン
好きなふりかけ : 御飯の友
3
御飯の友
4
本日のお題
「GPUパススルー」
5
Linux KVM における
GPU パススルーの構成図
ゲストOS ゲストOSゲストOS
Intel VT-d
QEMU/KVM QEMU/KVM QEMU/KVM
DMA Remapping
NVIDIAドライバー NVIDIAドライバー NVIDIAドライバー
6
GPU パススルーの効果
GPU パススルーでどのような恩恵が得られるか
● ゲーミング環境の隔離
● GPGPU を必要とするサーバーの集約
● GPGPU ファームのクラウド化
⇒ 仮想マシンに対して必要な時に GPU を割り当てるこ
とができる
● GPU の利用効率を最大化できる
⇒ GPGPU アプリの開発環境、 HPC クラスターへデー
タを投げる前の Pre/Post 処理の実行環境
7
KVM でパススルー可能なデバイス
USB SCSI PCIe
8
PCIe パススルー
PCIe パススルーの中でも一般的によく行われるの
は、ネットワークインターフェースカード (NIC)
ゲストOS ゲストOSゲストOS
Intel VT-d
QEMU/KVM QEMU/KVM QEMU/KVM
DMA Remapping
VF VF VF
VF VF VF
VF NICドライバー VF NICドライバー VF NICドライバー
9
Intel VT-d とは
Intel VT-d とはデバイス I/O の仮想化支援を行う Intel
CPU と対応するチップセットが提供する機能
ゲストOS
Intel VT-d
QEMU/KVM
DMA Remapping
VF
VF
VF NICドライバー
VT-dを使うことによりPCIeデバイスを仮想マシ
ンへパススルーした時のDMAで利用するメモ
リー領域のリマッピングをCPUとチップセット
側でオフロードすることができるようになる
VT-dは主に仮想ネットワークインターフェース
カードのパススルー処理(SR-IOV)に使われる
基本的にPCIeデバイスであれば、USBカードで
もキャプチャーカードでもパススルー可能
メモリー領域
※AMD CPUにもAMD Viという
同様の仕組みがある
10
Intel VT-d の使い方
まずは Intel VT-d 搭載の CPU を用意
※Intel Xeon だと Nehalem 世代以降
自分の CPU で使えるかどうか分からない場合、
Intel ARK で探すと良い
http://ark.intel.com/search/advanced?VTD=true
BIOS/UEFI で Intel VT-d を有効化
だいたい Advanced や CPU Configuration などと
表記されている設定項目あたりにある
11
展示ブースのデモ環境
マザーボード : ASRock H77M-ITX (BIOS ver 1.90)
CPU: Intel Core i7 3770 (Intel VT-d 搭載 )
GPU: NVIDIA Quadro K2200
Host OS: Red Hat Enterprise Linux 7.1
Guest OS: Windows 8.1, Ubuntu 14.10 LTS
12
Linux カーネルにおける有効化
BIOS/UEFI で Intel VT-d を有効化した後に、 Linux の
起動オプションで有効化する必要がある
/etc/default/grub
GRUB_CMDLINE_LINUX="rd.lvm.lv=vg_root/lv_swap
rd.lvm.lv=vg_root/lv_root rhgb quiet intel_iommu=on"
13
Linux カーネルにおける有効化
Intel VT-dの確認方法
# dmesg|grep -e DMAR -e IOMMU
[ 0.000000] ACPI: DMAR 00000000bd9a5c48 000B8 (v01 INTEL SNB 00000001 INTL 00000001)
[ 0.000000] Intel-IOMMU: enabled
[ 0.020582] dmar: IOMMU 0: reg_base_addr fed90000 ver 1:0 cap c0000020e60262 ecap f0101a
[ 0.020586] dmar: IOMMU 1: reg_base_addr fed91000 ver 1:0 cap c9008020660262 ecap f0105a
[ 0.020657] IOAPIC id 2 under DRHD base 0xfed91000 IOMMU 1
[ 0.340560] DMAR: No ATSR found
[ 0.340578] IOMMU 0 0xfed90000: using Queued invalidation
[ 0.340579] IOMMU 1 0xfed91000: using Queued invalidation
[ 0.340580] IOMMU: Setting RMRR:
[ 0.340588] IOMMU: Setting identity map for device 0000:00:02.0 [0xbf800000 - 0xcf9fffff]
[ 0.341693] IOMMU: Setting identity map for device 0000:00:1d.0 [0xbd56f000 - 0xbd599fff]
[ 0.341710] IOMMU: Setting identity map for device 0000:00:1a.0 [0xbd56f000 - 0xbd599fff]
[ 0.341722] IOMMU: Setting identity map for device 0000:00:14.0 [0xbd56f000 - 0xbd599fff]
[ 0.341731] IOMMU: Prepare 0-16MiB unity mapping for LPC
[ 0.341737] IOMMU: Setting identity map for device 0000:00:1f.0 [0x0 - 0xffffff]
14
ホスト OS から GPU を
初期化させない方法
●
この設定手順を行っておくと、手動での virsh nodedev-detach が不要に
なる
最初からホスト OS から初期化させない方が楽
→ カーネルオプションで GPU を pci-stub ドライバーに割り当て
pci-stub.ids=xxxx:xxxx (※vendorid:productid)
● dracut で組み込まないようにカーネルオプションのブラックリストに追加
rdblacklist=nouveau
● modprobe でカーネルモジュールを読み込まないようにブラックリストに
記述
echo "blacklist nouveau" >>
/etc/modprobe.d/blacklist-nouveau.conf
15
対象 PCIe カードの探し方
● lspci コマンドから grep で抽出する
# lspci | grep -i nvidia
01:00.0 VGA compatible controller: NVIDIA Corporation
GM107GL [Quadro K2200] (rev a2)
01:00.1 Audio device: NVIDIA Corporation Device (rev a1)
※ 同じような Bus ID を持つもう 1 つのカードは
だいたいの場合、 HDMI Audio の音源
16
GPU パススルー可能な GPU
● NVIDIA Tesla シリーズ
● NVIDIA GRID シリーズ
※GPU 仮想化技術 NVIDIA GRID vGPU は利用不可
● NVIDIA Quadro シリーズ
※K2000 以降の 4 桁番台、 3 桁番台は不可
● AMD Radeon HD69xx シリーズが動くらしい
● Intel HD Graphics シリーズも制約が多いけど動くら
しい
17
GPU パススルーの利用構成
● 1 枚目のプライマリービデオカードを仮想デバイスの QXL
GPU にして、 2 枚目のセカンダリービデオカードをパススルー
された GPU として利用する
※ 主に GPGPU を仮想環境で利用する場合
※ ゲスト OS が Windows 7 や Windows Server 2008 の場
合、 GPU パススルーすると 1 枚目の QXL ビデオカードが動か
なくなる場合がある。つまり 2 枚目のパススルーされた GPU
側のモニターにログイン画面が出る
● 1 枚目のプライマリービデオカードをパススルーされた GPU と
する
※ 主にデスクトップマシンでゲーム環境で利用する場合 ( 割愛 )
18
GPU パススルーの構成図
ゲストOS
Intel VT-d
QEMU/KVM
DMA Remapping
NVIDIAドライバーQXLドライバー
QXL
1枚目のプライマリービデオ
カードを仮想デバイスのQXL
GPUにして、2枚目のセカンダ
リービデオカードをパススルー
されたGPUとして利用する
※主にGPGPUを仮想環境で利
用する場合
19
GPGPU on OpenStack
20
OpenStack における GPU 活用
Nova Instance#2
g1.large
Nova Instance#1
m1.large
QEMU/KVM QEMU/KVM
NVIDIAドライバー
Nova
Compute Node
●
コンピューティングリ
ソースを管理する
NovaがHavanaリリー
スからPCIパススルー
に対応済み
●
GPUが必要なインスタ
ンスのみ割り当てが行
われる(フレーバーの
タイプにより判別)
libvirt
21
OpenStack Nova における実装
PciPassthroughFilter
Nova Instance
g1.large
QEMU/KVM
NVIDIAドライバー
Nova
Compute Node
Nova
Controller Node
PCI Manager
※列名は一部省略
id address instance_uuid
1 0000:01:00.0 abcdabcd-1234-xxxx
2 0000:02:00.0 NULL
(1) PCI Managerに対してプールしたいGPUの情報を事前に登録
(2) Novaスケジューラーが PciPassthroughFilter により、PCI Manager に GPU の
の割り当てリクエストを行ない、空きのGPUが割り当てられる
(3) Nova Compute
Node上で GPU を
パススルーで割り
当てる仮想マシン
定義ファイルが作
られ、libvirt 経由で
仮想マシンが起動
する
libvirt
22
PCI Manager の役割
● PCI Manager は MariaDB の pci_devices テーブル内に PCI デバイスの
割り当て管理情報を格納する
● PCI デバイスを搭載するサーバーの情報 ( ノード ID 、 Bus ID 、 Vendor
ID 、 Product ID) 、割り当て先のインスタンスの UUID などが記録される
PCI Manager
id vendor_id product_id address compute_node_id instance_uuid
1 10de 1023 0000:01:00.0 1 abcdabcd-1234-xxxx
2 10de 1023 0000:02:00.0 1 NULL
pci_devices テーブル
※列名は一部省略
23
Nova Flavor の定義
Nova に GPU インスタンス用のフレーバーを追加して、そこにフレー
バー属性で GPU の種類と枚数を指定する
例 : g1.xlarge には NVIDIA Tesla を 2 枚割り当てる、 g2.medium には
NVIDIA Quadro を 1 枚割り当てる
(keystone_admin)# nova flavor-create g1.xlarge
⇒ --is-public true auto 65536 16 8
(keystone_admin)# nova flavor-key g1.xlarge
⇒ set "pci_passthrough:alias"="TeslaK40:2"
(keystone_admin)# nova flavor-create g1.medium
⇒ --is-public true auto 16384 16 4
(keystone_admin)# nova flavor-key g1.medium
⇒ set "pci_passthrough:alias"="QuadroK2200:1"
24
/etc/nova/nova.conf の設定
Nova Controller Node 側
Nova で利用したい GPU のエイリアスを定義する
必要な情報は名前と PCI の Vendor ID 、 Product ID を列挙
例 : NVIDIA Tesla K40(10de:1023) の場合
pci_alias={"name":"TeslaK40",
⇒ "vendor_id":"10de", "product_id":"1023"}
例 : NVIDIA Quadro K2200(10de:13ba) の場合
pci_alias={"name":"QuadroK2200",
⇒ "vendor_id":"10de", "product_id":"13ba"}
25
/etc/nova/nova.conf の設定
Nova Controller Node 側
スケジューラーに PciPassthroughFilter フィルターを追加する
scheduler_driver=nova.scheduler.filter_scheduler.F
ilterScheduler
scheduler_available_filters=nova.scheduler.filters
.all_filters,nova.scheduler.filters.pci_passthroug
h_filter.PciPassthroughFilter
scheduler_default_filters=RamFilter,ComputeFilter,
AvailabilityZoneFilter,ComputeCapabilitiesFilter,I
magePropertiesFilter,PciPassthroughFilter
26
/etc/nova/nova.conf の設定
Nova Compute Node 側
Nova で利用したい GPU のホワイトリストを定義する
必要な情報は名前と PCI の Vendor ID 、 Product ID を列挙
例 : NVIDIA Tesla K40(10de:1023) の場合
pci_passthrough_whitelist={"name":"TeslaK40",
⇒ "vendor_id":"10de", "product_id":"1023"}
例 : NVIDIA Quadro K2200(10de:13ba) の場合
pci_passthrough_whitelist={"name":"QuadroK2200",
⇒ "vendor_id":"10de", "product_id":"13ba"}
27
OpenStack 環境でインスタンス上に
認識された NVIDIA Quadro 2000
28
OpenStack 環境で GPU を使う上
での制約事項
OpenStack 環境での GPU 利用の注意点
●
GPU 付きのインスタンスは定義してから抹消されるまで GPU は
返却されません。
※ つまりマシン上に 1 枚しか GPU が搭載されていない場
合、 GPU が使えるのは 1 インスタンスまで
⇒ マシン 1 台に GPU を複数枚搭載することを推奨
●
NVIDIA GRID を用意しても KVM では NVIDIA GRID vGPU は利用
できません。
※ また、 NVIDIA GRID vGPU の現在の実装では、そもそも
vGPU で CUDA 、 OpenCL は利用できません。
Q&A
30
参考情報
OpenStack Wiki: Pci passthrough
https://wiki.openstack.org/wiki/Pci_passthrough
Red Hat Enterprise Linux 7 - Virtualization Deployment
and Administration Guide
https://access.redhat.com/documentation/en-US/Red_Hat_
Enterprise_Linux/7/html/Virtualization_Deployment_and_
Administration_Guide/sect-device-GPU.html

More Related Content

What's hot

仮想化技術によるマルウェア対策とその問題点
仮想化技術によるマルウェア対策とその問題点仮想化技術によるマルウェア対策とその問題点
仮想化技術によるマルウェア対策とその問題点Kuniyasu Suzaki
 
Stargz Snapshotter: イメージのpullを省略しcontainerdでコンテナを高速に起動する
Stargz Snapshotter: イメージのpullを省略しcontainerdでコンテナを高速に起動するStargz Snapshotter: イメージのpullを省略しcontainerdでコンテナを高速に起動する
Stargz Snapshotter: イメージのpullを省略しcontainerdでコンテナを高速に起動するKohei Tokunaga
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Akihiro Suda
 
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)NTT DATA Technology & Innovation
 
Linux の hugepage の開発動向
Linux の hugepage の開発動向Linux の hugepage の開発動向
Linux の hugepage の開発動向Naoya Horiguchi
 
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善Ito Takayuki
 
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)NTT DATA Technology & Innovation
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較Akihiro Suda
 
WebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話すWebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話すTakaya Saeki
 
コンテナを止めるな! PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとは
コンテナを止めるな!  PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとはコンテナを止めるな!  PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとは
コンテナを止めるな! PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとはksk_ha
 
使ってみて気づいた AGPL ライセンスの メリット・デメリット
使ってみて気づいた AGPL ライセンスの メリット・デメリット使ってみて気づいた AGPL ライセンスの メリット・デメリット
使ってみて気づいた AGPL ライセンスの メリット・デメリットFumito Mizuno
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Kohei Tokunaga
 
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugMasatoshi Tada
 
Lxc で始めるケチケチ仮想化生活?!
Lxc で始めるケチケチ仮想化生活?!Lxc で始めるケチケチ仮想化生活?!
Lxc で始めるケチケチ仮想化生活?!Etsuji Nakai
 
Infiniband hack-a-thon #2 Windows班まとめ資料 Windows Server 2012 + FDR Infinibandで...
Infiniband hack-a-thon #2 Windows班まとめ資料 Windows Server 2012 + FDR Infinibandで...Infiniband hack-a-thon #2 Windows班まとめ資料 Windows Server 2012 + FDR Infinibandで...
Infiniband hack-a-thon #2 Windows班まとめ資料 Windows Server 2012 + FDR Infinibandで...milk hanakara
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)NTT DATA Technology & Innovation
 

What's hot (20)

HTTP/2 入門
HTTP/2 入門HTTP/2 入門
HTTP/2 入門
 
仮想化技術によるマルウェア対策とその問題点
仮想化技術によるマルウェア対策とその問題点仮想化技術によるマルウェア対策とその問題点
仮想化技術によるマルウェア対策とその問題点
 
Stargz Snapshotter: イメージのpullを省略しcontainerdでコンテナを高速に起動する
Stargz Snapshotter: イメージのpullを省略しcontainerdでコンテナを高速に起動するStargz Snapshotter: イメージのpullを省略しcontainerdでコンテナを高速に起動する
Stargz Snapshotter: イメージのpullを省略しcontainerdでコンテナを高速に起動する
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)
 
Linux の hugepage の開発動向
Linux の hugepage の開発動向Linux の hugepage の開発動向
Linux の hugepage の開発動向
 
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善
 
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
 
Metaspace
MetaspaceMetaspace
Metaspace
 
ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較
 
WebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話すWebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話す
 
コンテナを止めるな! PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとは
コンテナを止めるな!  PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとはコンテナを止めるな!  PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとは
コンテナを止めるな! PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとは
 
使ってみて気づいた AGPL ライセンスの メリット・デメリット
使ってみて気づいた AGPL ライセンスの メリット・デメリット使ってみて気づいた AGPL ライセンスの メリット・デメリット
使ってみて気づいた AGPL ライセンスの メリット・デメリット
 
LXC入門 - Osc2011 nagoya
LXC入門 - Osc2011 nagoyaLXC入門 - Osc2011 nagoya
LXC入門 - Osc2011 nagoya
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
 
Lxc で始めるケチケチ仮想化生活?!
Lxc で始めるケチケチ仮想化生活?!Lxc で始めるケチケチ仮想化生活?!
Lxc で始めるケチケチ仮想化生活?!
 
Infiniband hack-a-thon #2 Windows班まとめ資料 Windows Server 2012 + FDR Infinibandで...
Infiniband hack-a-thon #2 Windows班まとめ資料 Windows Server 2012 + FDR Infinibandで...Infiniband hack-a-thon #2 Windows班まとめ資料 Windows Server 2012 + FDR Infinibandで...
Infiniband hack-a-thon #2 Windows班まとめ資料 Windows Server 2012 + FDR Infinibandで...
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
 

Similar to Linux KVM環境におけるGPGPU活用最新動向

もしCloudStackのKVMホストでPCIパススルーできるようになったら
もしCloudStackのKVMホストでPCIパススルーできるようになったらもしCloudStackのKVMホストでPCIパススルーできるようになったら
もしCloudStackのKVMホストでPCIパススルーできるようになったらTakuma Nakajima
 
OpenIndiana+KVMによる仮想マシン
OpenIndiana+KVMによる仮想マシンOpenIndiana+KVMによる仮想マシン
OpenIndiana+KVMによる仮想マシン悟 宮崎
 
OpenStackを使用したGPU仮想化IaaS環境 事例紹介
OpenStackを使用したGPU仮想化IaaS環境 事例紹介OpenStackを使用したGPU仮想化IaaS環境 事例紹介
OpenStackを使用したGPU仮想化IaaS環境 事例紹介VirtualTech Japan Inc.
 
Hello, DirectCompute
Hello, DirectComputeHello, DirectCompute
Hello, DirectComputedasyprocta
 
NetBSD on Google Compute Engine
NetBSD on Google Compute EngineNetBSD on Google Compute Engine
NetBSD on Google Compute EngineRyo ONODERA
 
Robovie Maker2éêàµê‡ñæèë
Robovie Maker2éêàµê‡ñæèëRobovie Maker2éêàµê‡ñæèë
Robovie Maker2éêàµê‡ñæèëguesta33ba0
 
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築yaegashi
 
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2Preferred Networks
 
「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)
「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)
「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)Kazuyuki Sato
 
[Azure Antenna] HPCだけじゃないDeep Learningでも使える ハイパフォーマンスAzureインフラ ~ Azureハイパフォーマ...
[Azure Antenna] HPCだけじゃないDeep Learningでも使える ハイパフォーマンスAzureインフラ ~ Azureハイパフォーマ...[Azure Antenna] HPCだけじゃないDeep Learningでも使える ハイパフォーマンスAzureインフラ ~ Azureハイパフォーマ...
[Azure Antenna] HPCだけじゃないDeep Learningでも使える ハイパフォーマンスAzureインフラ ~ Azureハイパフォーマ...Shuichi Gojuki
 
もなーこいん3つの視点
もなーこいん3つの視点もなーこいん3つの視点
もなーこいん3つの視点Yuki Akiyama
 
もなーこいん3つの視点
もなーこいん3つの視点もなーこいん3つの視点
もなーこいん3つの視点gikopool
 
BHyVeってなんや
BHyVeってなんやBHyVeってなんや
BHyVeってなんやTakuya ASADA
 
GPGPU deいろんな問題解いてみた
GPGPU deいろんな問題解いてみたGPGPU deいろんな問題解いてみた
GPGPU deいろんな問題解いてみたRyo Sakamoto
 
PyOpenCLによるGPGPU入門
PyOpenCLによるGPGPU入門PyOpenCLによるGPGPU入門
PyOpenCLによるGPGPU入門Yosuke Onoue
 
NVIDIA GRID が実現する GPU 仮想化テクノロジー
NVIDIA GRID が実現する GPU 仮想化テクノロジーNVIDIA GRID が実現する GPU 仮想化テクノロジー
NVIDIA GRID が実現する GPU 仮想化テクノロジーNVIDIA Japan
 
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
 
Raspberrypi+yocto in Yocto Workshop Japan #1
Raspberrypi+yocto in Yocto Workshop Japan #1Raspberrypi+yocto in Yocto Workshop Japan #1
Raspberrypi+yocto in Yocto Workshop Japan #1kazuya-nisimura
 

Similar to Linux KVM環境におけるGPGPU活用最新動向 (20)

もしCloudStackのKVMホストでPCIパススルーできるようになったら
もしCloudStackのKVMホストでPCIパススルーできるようになったらもしCloudStackのKVMホストでPCIパススルーできるようになったら
もしCloudStackのKVMホストでPCIパススルーできるようになったら
 
OpenIndiana+KVMによる仮想マシン
OpenIndiana+KVMによる仮想マシンOpenIndiana+KVMによる仮想マシン
OpenIndiana+KVMによる仮想マシン
 
NVIDIA 入門
NVIDIA 入門NVIDIA 入門
NVIDIA 入門
 
OpenStackを使用したGPU仮想化IaaS環境 事例紹介
OpenStackを使用したGPU仮想化IaaS環境 事例紹介OpenStackを使用したGPU仮想化IaaS環境 事例紹介
OpenStackを使用したGPU仮想化IaaS環境 事例紹介
 
Hello, DirectCompute
Hello, DirectComputeHello, DirectCompute
Hello, DirectCompute
 
NetBSD on Google Compute Engine
NetBSD on Google Compute EngineNetBSD on Google Compute Engine
NetBSD on Google Compute Engine
 
Robovie Maker2éêàµê‡ñæèë
Robovie Maker2éêàµê‡ñæèëRobovie Maker2éêàµê‡ñæèë
Robovie Maker2éêàµê‡ñæèë
 
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
 
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
 
「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)
「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)
「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)
 
Cuda
CudaCuda
Cuda
 
[Azure Antenna] HPCだけじゃないDeep Learningでも使える ハイパフォーマンスAzureインフラ ~ Azureハイパフォーマ...
[Azure Antenna] HPCだけじゃないDeep Learningでも使える ハイパフォーマンスAzureインフラ ~ Azureハイパフォーマ...[Azure Antenna] HPCだけじゃないDeep Learningでも使える ハイパフォーマンスAzureインフラ ~ Azureハイパフォーマ...
[Azure Antenna] HPCだけじゃないDeep Learningでも使える ハイパフォーマンスAzureインフラ ~ Azureハイパフォーマ...
 
もなーこいん3つの視点
もなーこいん3つの視点もなーこいん3つの視点
もなーこいん3つの視点
 
もなーこいん3つの視点
もなーこいん3つの視点もなーこいん3つの視点
もなーこいん3つの視点
 
BHyVeってなんや
BHyVeってなんやBHyVeってなんや
BHyVeってなんや
 
GPGPU deいろんな問題解いてみた
GPGPU deいろんな問題解いてみたGPGPU deいろんな問題解いてみた
GPGPU deいろんな問題解いてみた
 
PyOpenCLによるGPGPU入門
PyOpenCLによるGPGPU入門PyOpenCLによるGPGPU入門
PyOpenCLによるGPGPU入門
 
NVIDIA GRID が実現する GPU 仮想化テクノロジー
NVIDIA GRID が実現する GPU 仮想化テクノロジーNVIDIA GRID が実現する GPU 仮想化テクノロジー
NVIDIA GRID が実現する GPU 仮想化テクノロジー
 
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
 
Raspberrypi+yocto in Yocto Workshop Japan #1
Raspberrypi+yocto in Yocto Workshop Japan #1Raspberrypi+yocto in Yocto Workshop Japan #1
Raspberrypi+yocto in Yocto Workshop Japan #1
 

Recently uploaded

論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 

Recently uploaded (9)

論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 

Linux KVM環境におけるGPGPU活用最新動向

  • 1. Linux KVM環境における GPGPU活用最新動向 - OSC2015 Fukuoka - TAIRA Hajime <htaira@pantora.net>TAIRA Hajime <htaira@pantora.net>
  • 2. 2 自己紹介 平 初 仮想化友の会 発起人 生息地 : 東京 / 愛知 / 北海道 / 熊本 好きなゆるキャラ : くまモン 好きなふりかけ : 御飯の友
  • 5. 5 Linux KVM における GPU パススルーの構成図 ゲストOS ゲストOSゲストOS Intel VT-d QEMU/KVM QEMU/KVM QEMU/KVM DMA Remapping NVIDIAドライバー NVIDIAドライバー NVIDIAドライバー
  • 6. 6 GPU パススルーの効果 GPU パススルーでどのような恩恵が得られるか ● ゲーミング環境の隔離 ● GPGPU を必要とするサーバーの集約 ● GPGPU ファームのクラウド化 ⇒ 仮想マシンに対して必要な時に GPU を割り当てるこ とができる ● GPU の利用効率を最大化できる ⇒ GPGPU アプリの開発環境、 HPC クラスターへデー タを投げる前の Pre/Post 処理の実行環境
  • 8. 8 PCIe パススルー PCIe パススルーの中でも一般的によく行われるの は、ネットワークインターフェースカード (NIC) ゲストOS ゲストOSゲストOS Intel VT-d QEMU/KVM QEMU/KVM QEMU/KVM DMA Remapping VF VF VF VF VF VF VF NICドライバー VF NICドライバー VF NICドライバー
  • 9. 9 Intel VT-d とは Intel VT-d とはデバイス I/O の仮想化支援を行う Intel CPU と対応するチップセットが提供する機能 ゲストOS Intel VT-d QEMU/KVM DMA Remapping VF VF VF NICドライバー VT-dを使うことによりPCIeデバイスを仮想マシ ンへパススルーした時のDMAで利用するメモ リー領域のリマッピングをCPUとチップセット 側でオフロードすることができるようになる VT-dは主に仮想ネットワークインターフェース カードのパススルー処理(SR-IOV)に使われる 基本的にPCIeデバイスであれば、USBカードで もキャプチャーカードでもパススルー可能 メモリー領域 ※AMD CPUにもAMD Viという 同様の仕組みがある
  • 10. 10 Intel VT-d の使い方 まずは Intel VT-d 搭載の CPU を用意 ※Intel Xeon だと Nehalem 世代以降 自分の CPU で使えるかどうか分からない場合、 Intel ARK で探すと良い http://ark.intel.com/search/advanced?VTD=true BIOS/UEFI で Intel VT-d を有効化 だいたい Advanced や CPU Configuration などと 表記されている設定項目あたりにある
  • 11. 11 展示ブースのデモ環境 マザーボード : ASRock H77M-ITX (BIOS ver 1.90) CPU: Intel Core i7 3770 (Intel VT-d 搭載 ) GPU: NVIDIA Quadro K2200 Host OS: Red Hat Enterprise Linux 7.1 Guest OS: Windows 8.1, Ubuntu 14.10 LTS
  • 12. 12 Linux カーネルにおける有効化 BIOS/UEFI で Intel VT-d を有効化した後に、 Linux の 起動オプションで有効化する必要がある /etc/default/grub GRUB_CMDLINE_LINUX="rd.lvm.lv=vg_root/lv_swap rd.lvm.lv=vg_root/lv_root rhgb quiet intel_iommu=on"
  • 13. 13 Linux カーネルにおける有効化 Intel VT-dの確認方法 # dmesg|grep -e DMAR -e IOMMU [ 0.000000] ACPI: DMAR 00000000bd9a5c48 000B8 (v01 INTEL SNB 00000001 INTL 00000001) [ 0.000000] Intel-IOMMU: enabled [ 0.020582] dmar: IOMMU 0: reg_base_addr fed90000 ver 1:0 cap c0000020e60262 ecap f0101a [ 0.020586] dmar: IOMMU 1: reg_base_addr fed91000 ver 1:0 cap c9008020660262 ecap f0105a [ 0.020657] IOAPIC id 2 under DRHD base 0xfed91000 IOMMU 1 [ 0.340560] DMAR: No ATSR found [ 0.340578] IOMMU 0 0xfed90000: using Queued invalidation [ 0.340579] IOMMU 1 0xfed91000: using Queued invalidation [ 0.340580] IOMMU: Setting RMRR: [ 0.340588] IOMMU: Setting identity map for device 0000:00:02.0 [0xbf800000 - 0xcf9fffff] [ 0.341693] IOMMU: Setting identity map for device 0000:00:1d.0 [0xbd56f000 - 0xbd599fff] [ 0.341710] IOMMU: Setting identity map for device 0000:00:1a.0 [0xbd56f000 - 0xbd599fff] [ 0.341722] IOMMU: Setting identity map for device 0000:00:14.0 [0xbd56f000 - 0xbd599fff] [ 0.341731] IOMMU: Prepare 0-16MiB unity mapping for LPC [ 0.341737] IOMMU: Setting identity map for device 0000:00:1f.0 [0x0 - 0xffffff]
  • 14. 14 ホスト OS から GPU を 初期化させない方法 ● この設定手順を行っておくと、手動での virsh nodedev-detach が不要に なる 最初からホスト OS から初期化させない方が楽 → カーネルオプションで GPU を pci-stub ドライバーに割り当て pci-stub.ids=xxxx:xxxx (※vendorid:productid) ● dracut で組み込まないようにカーネルオプションのブラックリストに追加 rdblacklist=nouveau ● modprobe でカーネルモジュールを読み込まないようにブラックリストに 記述 echo "blacklist nouveau" >> /etc/modprobe.d/blacklist-nouveau.conf
  • 15. 15 対象 PCIe カードの探し方 ● lspci コマンドから grep で抽出する # lspci | grep -i nvidia 01:00.0 VGA compatible controller: NVIDIA Corporation GM107GL [Quadro K2200] (rev a2) 01:00.1 Audio device: NVIDIA Corporation Device (rev a1) ※ 同じような Bus ID を持つもう 1 つのカードは だいたいの場合、 HDMI Audio の音源
  • 16. 16 GPU パススルー可能な GPU ● NVIDIA Tesla シリーズ ● NVIDIA GRID シリーズ ※GPU 仮想化技術 NVIDIA GRID vGPU は利用不可 ● NVIDIA Quadro シリーズ ※K2000 以降の 4 桁番台、 3 桁番台は不可 ● AMD Radeon HD69xx シリーズが動くらしい ● Intel HD Graphics シリーズも制約が多いけど動くら しい
  • 17. 17 GPU パススルーの利用構成 ● 1 枚目のプライマリービデオカードを仮想デバイスの QXL GPU にして、 2 枚目のセカンダリービデオカードをパススルー された GPU として利用する ※ 主に GPGPU を仮想環境で利用する場合 ※ ゲスト OS が Windows 7 や Windows Server 2008 の場 合、 GPU パススルーすると 1 枚目の QXL ビデオカードが動か なくなる場合がある。つまり 2 枚目のパススルーされた GPU 側のモニターにログイン画面が出る ● 1 枚目のプライマリービデオカードをパススルーされた GPU と する ※ 主にデスクトップマシンでゲーム環境で利用する場合 ( 割愛 )
  • 18. 18 GPU パススルーの構成図 ゲストOS Intel VT-d QEMU/KVM DMA Remapping NVIDIAドライバーQXLドライバー QXL 1枚目のプライマリービデオ カードを仮想デバイスのQXL GPUにして、2枚目のセカンダ リービデオカードをパススルー されたGPUとして利用する ※主にGPGPUを仮想環境で利 用する場合
  • 20. 20 OpenStack における GPU 活用 Nova Instance#2 g1.large Nova Instance#1 m1.large QEMU/KVM QEMU/KVM NVIDIAドライバー Nova Compute Node ● コンピューティングリ ソースを管理する NovaがHavanaリリー スからPCIパススルー に対応済み ● GPUが必要なインスタ ンスのみ割り当てが行 われる(フレーバーの タイプにより判別) libvirt
  • 21. 21 OpenStack Nova における実装 PciPassthroughFilter Nova Instance g1.large QEMU/KVM NVIDIAドライバー Nova Compute Node Nova Controller Node PCI Manager ※列名は一部省略 id address instance_uuid 1 0000:01:00.0 abcdabcd-1234-xxxx 2 0000:02:00.0 NULL (1) PCI Managerに対してプールしたいGPUの情報を事前に登録 (2) Novaスケジューラーが PciPassthroughFilter により、PCI Manager に GPU の の割り当てリクエストを行ない、空きのGPUが割り当てられる (3) Nova Compute Node上で GPU を パススルーで割り 当てる仮想マシン 定義ファイルが作 られ、libvirt 経由で 仮想マシンが起動 する libvirt
  • 22. 22 PCI Manager の役割 ● PCI Manager は MariaDB の pci_devices テーブル内に PCI デバイスの 割り当て管理情報を格納する ● PCI デバイスを搭載するサーバーの情報 ( ノード ID 、 Bus ID 、 Vendor ID 、 Product ID) 、割り当て先のインスタンスの UUID などが記録される PCI Manager id vendor_id product_id address compute_node_id instance_uuid 1 10de 1023 0000:01:00.0 1 abcdabcd-1234-xxxx 2 10de 1023 0000:02:00.0 1 NULL pci_devices テーブル ※列名は一部省略
  • 23. 23 Nova Flavor の定義 Nova に GPU インスタンス用のフレーバーを追加して、そこにフレー バー属性で GPU の種類と枚数を指定する 例 : g1.xlarge には NVIDIA Tesla を 2 枚割り当てる、 g2.medium には NVIDIA Quadro を 1 枚割り当てる (keystone_admin)# nova flavor-create g1.xlarge ⇒ --is-public true auto 65536 16 8 (keystone_admin)# nova flavor-key g1.xlarge ⇒ set "pci_passthrough:alias"="TeslaK40:2" (keystone_admin)# nova flavor-create g1.medium ⇒ --is-public true auto 16384 16 4 (keystone_admin)# nova flavor-key g1.medium ⇒ set "pci_passthrough:alias"="QuadroK2200:1"
  • 24. 24 /etc/nova/nova.conf の設定 Nova Controller Node 側 Nova で利用したい GPU のエイリアスを定義する 必要な情報は名前と PCI の Vendor ID 、 Product ID を列挙 例 : NVIDIA Tesla K40(10de:1023) の場合 pci_alias={"name":"TeslaK40", ⇒ "vendor_id":"10de", "product_id":"1023"} 例 : NVIDIA Quadro K2200(10de:13ba) の場合 pci_alias={"name":"QuadroK2200", ⇒ "vendor_id":"10de", "product_id":"13ba"}
  • 25. 25 /etc/nova/nova.conf の設定 Nova Controller Node 側 スケジューラーに PciPassthroughFilter フィルターを追加する scheduler_driver=nova.scheduler.filter_scheduler.F ilterScheduler scheduler_available_filters=nova.scheduler.filters .all_filters,nova.scheduler.filters.pci_passthroug h_filter.PciPassthroughFilter scheduler_default_filters=RamFilter,ComputeFilter, AvailabilityZoneFilter,ComputeCapabilitiesFilter,I magePropertiesFilter,PciPassthroughFilter
  • 26. 26 /etc/nova/nova.conf の設定 Nova Compute Node 側 Nova で利用したい GPU のホワイトリストを定義する 必要な情報は名前と PCI の Vendor ID 、 Product ID を列挙 例 : NVIDIA Tesla K40(10de:1023) の場合 pci_passthrough_whitelist={"name":"TeslaK40", ⇒ "vendor_id":"10de", "product_id":"1023"} 例 : NVIDIA Quadro K2200(10de:13ba) の場合 pci_passthrough_whitelist={"name":"QuadroK2200", ⇒ "vendor_id":"10de", "product_id":"13ba"}
  • 28. 28 OpenStack 環境で GPU を使う上 での制約事項 OpenStack 環境での GPU 利用の注意点 ● GPU 付きのインスタンスは定義してから抹消されるまで GPU は 返却されません。 ※ つまりマシン上に 1 枚しか GPU が搭載されていない場 合、 GPU が使えるのは 1 インスタンスまで ⇒ マシン 1 台に GPU を複数枚搭載することを推奨 ● NVIDIA GRID を用意しても KVM では NVIDIA GRID vGPU は利用 できません。 ※ また、 NVIDIA GRID vGPU の現在の実装では、そもそも vGPU で CUDA 、 OpenCL は利用できません。
  • 29. Q&A
  • 30. 30 参考情報 OpenStack Wiki: Pci passthrough https://wiki.openstack.org/wiki/Pci_passthrough Red Hat Enterprise Linux 7 - Virtualization Deployment and Administration Guide https://access.redhat.com/documentation/en-US/Red_Hat_ Enterprise_Linux/7/html/Virtualization_Deployment_and_ Administration_Guide/sect-device-GPU.html