Enviar pesquisa
Carregar
GPU仮想化最前線 - KVMGTとvirtio-gpu -
•
1 gostou
•
7,070 visualizações
Z
zgock
Seguir
OSC名古屋2019、openSUSEユーザー会セミナーの発表資料です
Leia menos
Leia mais
Engenharia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 67
Baixar agora
Baixar para ler offline
Recomendados
ML2/OVN アーキテクチャ概観
ML2/OVN アーキテクチャ概観
Yamato Tanaka
ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門
VirtualTech Japan Inc.
自宅インフラの育て方 第2回
自宅インフラの育て方 第2回
富士通クラウドテクノロジーズ株式会社
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
VirtualTech Japan Inc.
自宅サーバ仮想化
自宅サーバ仮想化
anubis_369
OSC2011 Tokyo/Fall 濃いバナ(virtio)
OSC2011 Tokyo/Fall 濃いバナ(virtio)
Takeshi HASEGAWA
initramfsについて
initramfsについて
Kazuhiro Nishiyama
最近のOpenStackを振り返ってみよう
最近のOpenStackを振り返ってみよう
Takashi Kajinami
Recomendados
ML2/OVN アーキテクチャ概観
ML2/OVN アーキテクチャ概観
Yamato Tanaka
ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門
VirtualTech Japan Inc.
自宅インフラの育て方 第2回
自宅インフラの育て方 第2回
富士通クラウドテクノロジーズ株式会社
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
VirtualTech Japan Inc.
自宅サーバ仮想化
自宅サーバ仮想化
anubis_369
OSC2011 Tokyo/Fall 濃いバナ(virtio)
OSC2011 Tokyo/Fall 濃いバナ(virtio)
Takeshi HASEGAWA
initramfsについて
initramfsについて
Kazuhiro Nishiyama
最近のOpenStackを振り返ってみよう
最近のOpenStackを振り返ってみよう
Takashi Kajinami
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
NTT DATA Technology & Innovation
iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方
歩 柴田
日本OpenStackユーザ会 第37回勉強会
日本OpenStackユーザ会 第37回勉強会
Yushiro Furukawa
DockerとPodmanの比較
DockerとPodmanの比較
Akihiro Suda
CXL_説明_公開用.pdf
CXL_説明_公開用.pdf
Yasunori Goto
大規模サービスを支えるネットワークインフラの全貌
大規模サービスを支えるネットワークインフラの全貌
LINE Corporation
「おうちクラウド」が今熱い!
「おうちクラウド」が今熱い!
Hirotaka Sato
OpenStack マルチノード環境構築
OpenStack マルチノード環境構築
HommasSlide
しつこくXenとzfsで作る家庭内vdiサーバ2015年版
しつこくXenとzfsで作る家庭内vdiサーバ2015年版
zgock
OVN 設定サンプル | OVN config example 2015/12/27
OVN 設定サンプル | OVN config example 2015/12/27
Kentaro Ebisawa
Topology Managerについて / Kubernetes Meetup Tokyo 50
Topology Managerについて / Kubernetes Meetup Tokyo 50
Preferred Networks
M5StackをRustで動かす
M5StackをRustで動かす
Kenta IDA
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
Preferred Networks
openSUSEで最強仮想環境をつくろう - ゲーミングから仮想通貨まで - OSC名古屋2017セミナー資料
openSUSEで最強仮想環境をつくろう - ゲーミングから仮想通貨まで - OSC名古屋2017セミナー資料
zgock
不揮発メモリ(NVDIMM)とLinuxの対応動向について
不揮発メモリ(NVDIMM)とLinuxの対応動向について
Yasunori Goto
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
Kohei Tokunaga
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
Motonori Shindo
Linux女子部 iptables復習編
Linux女子部 iptables復習編
Etsuji Nakai
NVIDIA GPUで作るHeadless X11 Linux
NVIDIA GPUで作るHeadless X11 Linux
Tomoki SHISHIKURA
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
RでGPU使ってみた
RでGPU使ってみた
Kazuya Wada
OpenStackでつくる開発環境と外道塾
OpenStackでつくる開発環境と外道塾
外道 父
Mais conteúdo relacionado
Mais procurados
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
NTT DATA Technology & Innovation
iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方
歩 柴田
日本OpenStackユーザ会 第37回勉強会
日本OpenStackユーザ会 第37回勉強会
Yushiro Furukawa
DockerとPodmanの比較
DockerとPodmanの比較
Akihiro Suda
CXL_説明_公開用.pdf
CXL_説明_公開用.pdf
Yasunori Goto
大規模サービスを支えるネットワークインフラの全貌
大規模サービスを支えるネットワークインフラの全貌
LINE Corporation
「おうちクラウド」が今熱い!
「おうちクラウド」が今熱い!
Hirotaka Sato
OpenStack マルチノード環境構築
OpenStack マルチノード環境構築
HommasSlide
しつこくXenとzfsで作る家庭内vdiサーバ2015年版
しつこくXenとzfsで作る家庭内vdiサーバ2015年版
zgock
OVN 設定サンプル | OVN config example 2015/12/27
OVN 設定サンプル | OVN config example 2015/12/27
Kentaro Ebisawa
Topology Managerについて / Kubernetes Meetup Tokyo 50
Topology Managerについて / Kubernetes Meetup Tokyo 50
Preferred Networks
M5StackをRustで動かす
M5StackをRustで動かす
Kenta IDA
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
Preferred Networks
openSUSEで最強仮想環境をつくろう - ゲーミングから仮想通貨まで - OSC名古屋2017セミナー資料
openSUSEで最強仮想環境をつくろう - ゲーミングから仮想通貨まで - OSC名古屋2017セミナー資料
zgock
不揮発メモリ(NVDIMM)とLinuxの対応動向について
不揮発メモリ(NVDIMM)とLinuxの対応動向について
Yasunori Goto
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
Kohei Tokunaga
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
Motonori Shindo
Linux女子部 iptables復習編
Linux女子部 iptables復習編
Etsuji Nakai
NVIDIA GPUで作るHeadless X11 Linux
NVIDIA GPUで作るHeadless X11 Linux
Tomoki SHISHIKURA
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
Mais procurados
(20)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方
日本OpenStackユーザ会 第37回勉強会
日本OpenStackユーザ会 第37回勉強会
DockerとPodmanの比較
DockerとPodmanの比較
CXL_説明_公開用.pdf
CXL_説明_公開用.pdf
大規模サービスを支えるネットワークインフラの全貌
大規模サービスを支えるネットワークインフラの全貌
「おうちクラウド」が今熱い!
「おうちクラウド」が今熱い!
OpenStack マルチノード環境構築
OpenStack マルチノード環境構築
しつこくXenとzfsで作る家庭内vdiサーバ2015年版
しつこくXenとzfsで作る家庭内vdiサーバ2015年版
OVN 設定サンプル | OVN config example 2015/12/27
OVN 設定サンプル | OVN config example 2015/12/27
Topology Managerについて / Kubernetes Meetup Tokyo 50
Topology Managerについて / Kubernetes Meetup Tokyo 50
M5StackをRustで動かす
M5StackをRustで動かす
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
openSUSEで最強仮想環境をつくろう - ゲーミングから仮想通貨まで - OSC名古屋2017セミナー資料
openSUSEで最強仮想環境をつくろう - ゲーミングから仮想通貨まで - OSC名古屋2017セミナー資料
不揮発メモリ(NVDIMM)とLinuxの対応動向について
不揮発メモリ(NVDIMM)とLinuxの対応動向について
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
Linux女子部 iptables復習編
Linux女子部 iptables復習編
NVIDIA GPUで作るHeadless X11 Linux
NVIDIA GPUで作るHeadless X11 Linux
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
Semelhante a GPU仮想化最前線 - KVMGTとvirtio-gpu -
RでGPU使ってみた
RでGPU使ってみた
Kazuya Wada
OpenStackでつくる開発環境と外道塾
OpenStackでつくる開発環境と外道塾
外道 父
100GbE NICを使ったデータセンター・ネットワーク実証実験 -メモ-
100GbE NICを使ったデータセンター・ネットワーク実証実験 -メモ-
Naoto MATSUMOTO
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
yaegashi
OpenIndiana+KVMによる仮想マシン
OpenIndiana+KVMによる仮想マシン
悟 宮崎
Djangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込む
2bo 2bo
仮想スイッチをフェイルオーバーさせてみる予定
仮想スイッチをフェイルオーバーさせてみる予定
Takashi Naito
20210731_OSC_Kyoto_PGStrom3.0
20210731_OSC_Kyoto_PGStrom3.0
Kohei KaiGai
Open VZ
Open VZ
Kazuaki Fujikura
Linux KVM環境におけるGPGPU活用最新動向
Linux KVM環境におけるGPGPU活用最新動向
Taira Hajime
Apache cloudstack4.0インストール
Apache cloudstack4.0インストール
Yasuhiro Arai
2019 jetson azure_hands-on
2019 jetson azure_hands-on
Aya Owosekun
2017年05月27日 AITCシニア技術者勉強会 第6回「OpenCV入門」
2017年05月27日 AITCシニア技術者勉強会 第6回「OpenCV入門」
aitc_jp
45分で理解する 最近のスパコン事情 斉藤之雄
45分で理解する 最近のスパコン事情 斉藤之雄
Yukio Saito
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
NTT DATA Technology & Innovation
OSC 2011 Hokkaido 自宅SAN友の会(後半)
OSC 2011 Hokkaido 自宅SAN友の会(後半)
Satoshi Shimazaki
超激安WinタブレットにLinux、*BSDを入れよう 最新情報編 in KOF2018 Install Linux and Re-use 「newer ...
超激安WinタブレットにLinux、*BSDを入れよう 最新情報編 in KOF2018 Install Linux and Re-use 「newer ...
Netwalker lab kapper
20190926_Try_RHEL8_NVMEoF_Beta
20190926_Try_RHEL8_NVMEoF_Beta
Kohei KaiGai
Starting qt5beta at_raspberry_pi Qtnagoya#6
Starting qt5beta at_raspberry_pi Qtnagoya#6
Kazuo Asano (@kazuo_asa)
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1
Etsuji Nakai
Semelhante a GPU仮想化最前線 - KVMGTとvirtio-gpu -
(20)
RでGPU使ってみた
RでGPU使ってみた
OpenStackでつくる開発環境と外道塾
OpenStackでつくる開発環境と外道塾
100GbE NICを使ったデータセンター・ネットワーク実証実験 -メモ-
100GbE NICを使ったデータセンター・ネットワーク実証実験 -メモ-
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
OpenIndiana+KVMによる仮想マシン
OpenIndiana+KVMによる仮想マシン
Djangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込む
仮想スイッチをフェイルオーバーさせてみる予定
仮想スイッチをフェイルオーバーさせてみる予定
20210731_OSC_Kyoto_PGStrom3.0
20210731_OSC_Kyoto_PGStrom3.0
Open VZ
Open VZ
Linux KVM環境におけるGPGPU活用最新動向
Linux KVM環境におけるGPGPU活用最新動向
Apache cloudstack4.0インストール
Apache cloudstack4.0インストール
2019 jetson azure_hands-on
2019 jetson azure_hands-on
2017年05月27日 AITCシニア技術者勉強会 第6回「OpenCV入門」
2017年05月27日 AITCシニア技術者勉強会 第6回「OpenCV入門」
45分で理解する 最近のスパコン事情 斉藤之雄
45分で理解する 最近のスパコン事情 斉藤之雄
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
OSC 2011 Hokkaido 自宅SAN友の会(後半)
OSC 2011 Hokkaido 自宅SAN友の会(後半)
超激安WinタブレットにLinux、*BSDを入れよう 最新情報編 in KOF2018 Install Linux and Re-use 「newer ...
超激安WinタブレットにLinux、*BSDを入れよう 最新情報編 in KOF2018 Install Linux and Re-use 「newer ...
20190926_Try_RHEL8_NVMEoF_Beta
20190926_Try_RHEL8_NVMEoF_Beta
Starting qt5beta at_raspberry_pi Qtnagoya#6
Starting qt5beta at_raspberry_pi Qtnagoya#6
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1
Mais de zgock
今時のLinuxにおけるGPUエンコード事情2018
今時のLinuxにおけるGPUエンコード事情2018
zgock
KVM環境上にルーターを作る/東海道らぐ伊勢2018
KVM環境上にルーターを作る/東海道らぐ伊勢2018
zgock
openSUSEで作る仮想化環境 -KVM,Xen,Docker 仮想化技術選択のポイント -. /oscnagoya2018
openSUSEで作る仮想化環境 -KVM,Xen,Docker 仮想化技術選択のポイント -. /oscnagoya2018
zgock
今時のLinuxにおけるGPUエンコード事情
今時のLinuxにおけるGPUエンコード事情
zgock
Ren’pyの御紹介
Ren’pyの御紹介
zgock
Xenとzfsで作る家庭内VDIサーバ
Xenとzfsで作る家庭内VDIサーバ
zgock
Mais de zgock
(6)
今時のLinuxにおけるGPUエンコード事情2018
今時のLinuxにおけるGPUエンコード事情2018
KVM環境上にルーターを作る/東海道らぐ伊勢2018
KVM環境上にルーターを作る/東海道らぐ伊勢2018
openSUSEで作る仮想化環境 -KVM,Xen,Docker 仮想化技術選択のポイント -. /oscnagoya2018
openSUSEで作る仮想化環境 -KVM,Xen,Docker 仮想化技術選択のポイント -. /oscnagoya2018
今時のLinuxにおけるGPUエンコード事情
今時のLinuxにおけるGPUエンコード事情
Ren’pyの御紹介
Ren’pyの御紹介
Xenとzfsで作る家庭内VDIサーバ
Xenとzfsで作る家庭内VDIサーバ
GPU仮想化最前線 - KVMGTとvirtio-gpu -
1.
2019/07/13gpu仮想化最前線 #oscnagoya 1/67 GPU
仮想化最前線 - KVMGT と virtio-gpu - 安藤 達也 日本 openSUSE ユーザ会
2.
2019/07/13gpu仮想化最前線 #oscnagoya 2/67 お前どこ中誰よ? ● 安藤 達也 –
@zgock999@mstdn.maud.io ● openSUSE との出会い – 2003年ぐらいに自分のPemtium-MノートのWifiを認識してくれ る唯一のディストリということで落ち着く – Xenに強かったディストリということもあり、 2012年ぐらいから家の擬似VDIサーバで活躍してもらっている ● openSUSE12.3~Leap15.1まで随時更新中 ● このへん詳しくはSlideShareの 「Xenとzfsで作る家庭内VDIサーバ」シリーズ参照 – 50000ビューぐらい行ってて驚いた
3.
2019/07/13gpu仮想化最前線 #oscnagoya 3/67 みなさん って何かご存知ですか?
4.
2019/07/13gpu仮想化最前線 #oscnagoya 4/67 正しいのはどれ? ● 1.
サーバールームでモフモフできるカメレオン型ガジェット ● 2. 緑色のロゴが目印の謎のAI半導体メーカー ● 3. ドイツ生まれの Linux ディストリビューション
5.
2019/07/13gpu仮想化最前線 #oscnagoya 5/67 正解 ● 3.
ドイツ生まれの Linux ディストリビューション – S.u.S.E Linux 4.2 で独自のディストリビューションになってから ● Q: RedHat 系ですか? Debian 系ですか? A: どちらでもありません! – RPM じゃないとダメとか deb じゃないとダメとか、 そういう話もよく聞きます(なぜ? ● Q: OpenSUSE ですか?openSUSE ですか? A: o は小文字です。IPhone ではなく、iPhone なのと同じです
6.
2019/07/13gpu仮想化最前線 #oscnagoya 6/67 今日の内容 ● 仮想化技術最後の壁、GPU仮想化 ● virtio-gpuとKVMGT ● openSUSEでvGPUなKVM環境を作ろう ● その1:virtio-gpuでAndroid-x86 ● その2:KVMGTでWindows10 ● 展示ブースデモ機の解説 ● 質疑応答とか
7.
2019/07/13gpu仮想化最前線 #oscnagoya 7/67 仮想化技術最後の壁、GPU ● 最近はGPUの活躍の場が増えてきた –
ゲーミング – 仮想通貨採掘(openCL/CUDA) – 画像処理etc.(openCL/CUDA) – ディープラーニングとかでも使ってるらしい(専門外だけど) ● 謎のAI半導体メーカ、 一体何VIDIAなんだ・・・
8.
2019/07/13gpu仮想化最前線 #oscnagoya 8/67 仮想化技術最後の壁、GPU ● qemu/VMWare/VirtualBox等でさまざまなデバイスの仮想化 が進んだ –
ネットワークやブロックデバイス等は採用技術次第ではネイティ ブと遜色ないレベルに ● GPUは複雑なデバイスであるため単純なソフトウェアによる仮 想化ではパフォーマンスや機能に限界があった – 最もパフォーマンスが出るとされているVMWare WorkStation の仮想VGAでも実GPUには遠く及ばない
9.
2019/07/13gpu仮想化最前線 #oscnagoya 9/67 GPU仮想化のための方法論(1) ● 演算対応の完全仮想GPUの実装 –
VMWare VGAとかqemuのvirtio-gpuとか – これまでのアプローチの発展系で3Dアクセ ラレーションやGPU演算対応版仮想デバイス – ゲストからは既存のGPUとは非互換な抽象化 された新設計GPUに見える
10.
2019/07/13gpu仮想化最前線 #oscnagoya 10/67 GPU仮想化のための方法論(1) ● 演算対応の完全仮想GPUの実装 –
長所 ● 一個のGPUを複数のゲストで共有できる ● 従来の思想を踏襲しているので運用レベルでの 変化は少ない
11.
2019/07/13gpu仮想化最前線 #oscnagoya 11/67 GPU仮想化のための方法論(1) ● 演算対応の完全仮想GPUの実装 –
短所 ● 環境側で専用ドライバを用意せねばならず、実 装に手間取りがち – virtio-gpuのwindows driverはまだ未完成 ● 一昨年のGoogle Summer Code対象だった ● とりあえずできたがopenGLのみ対応、DirectX未対応 ● パフォーマンス的にも苦しい – virtio-gpuのLinuxドライバで実gpuの30%ぐらい
12.
2019/07/13gpu仮想化最前線 #oscnagoya 12/67 GPU仮想化のための方法論(1) ● virtio-gpuの恩恵を一番受けられるゲストは? –Android-x86 ● (個人の主観です) ● 実際のVM設定については後述
13.
2019/07/13gpu仮想化最前線 #oscnagoya 13/67 GPU仮想化のための方法論(2) ● 実物理GPUの準仮想化エミュレーションGPU –
IntelのXenGTとかKVMGTとか(intel GVT-g) – GPUネイティブをバックエンドで呼び出す準仮想化 – ゲストからは実GPUのように見える – XenGTの方は数年前から実用レベルだったが KVMGTの方は最近のカーネル(4.18以降ぐらい) から実用レベルになってきた
14.
2019/07/13gpu仮想化最前線 #oscnagoya 14/67 GPU仮想化のための方法論(2) ● 実物理GPUの準仮想化エミュレーションGPU –
長所 ● 一個のGPUを複数のゲストで共有できる ● ドライバは実GPUのドライバで良い ● 完全仮想化型よりは高パフォーマンス – KVMGTで実GPUの70%ぐらい
15.
2019/07/13gpu仮想化最前線 #oscnagoya 15/67 GPU仮想化のための方法論(2) ● 実物理GPUの準仮想化エミュレーションGPU –
短所 ● 新しい実装であるためまだ未成熟 – Kernel 4.10で実装されたばかりである ● Intel以外の専業GPU屋さんは実装に消極的 ● 比較的新しいiGPU(Broadwell世代以降)必須 ● CoffeeLake以降はKernel5.1から対応 ● 有限なリソース、ホストのVRAMが大量に必要 – VRAMを共有できるわけではないのでゲストの数だけ VRAMを分割することになる – Skylakeの場合、最大でvGPU2枚が限界
16.
2019/07/13gpu仮想化最前線 #oscnagoya 16/67 GPU仮想化のための方法論(3) ● 実GPUのゲストへの直接割り当て –
いわゆるGPUパススルー – NICやHBA等のPCI/PCIe機器を割り当てる PCIパススルー技術の応用 – ゲストからは実GPUそのものに見える(当たり前)
17.
2019/07/13gpu仮想化最前線 #oscnagoya 17/67 GPU仮想化のための方法論(3) ● 実GPUのゲストへの直接割り当て 長所 ● 技術的には結構枯れた技術 –
Xenの世界では相当前から実用レベル – KVMは対応が遅れ気味だったが、ここ2~3年ぐらいで 急速に対応が進んだ ● ずっと超えられない壁だったIntel iGPUもKernel4.8とqemu2.7か ら対応 ● パフォーマンスは最も期待できる – 数%前後のロスぐらい
18.
2019/07/13gpu仮想化最前線 #oscnagoya 18/67 GPU仮想化のための方法論(3) ● 実GPUのゲストへの直接割り当て 短所 ● ホスト側に仮想IOのハード支援機構(IOMMU)が必要 –
Intelだとcore-i5以上/xeonなら最近のは大概付いてる ● K付きデスクトップだと付いてないのがあるので注意 – マザーボードも時々対応してないのがある ● ASRockなら大概大丈夫 – AMD系は最近のなら大概大丈夫 – ノートPCだと対応してる方が稀なので注意が必要 ● ゲスト一台につき一個のGPUが (原則として)必要 – SR-IOV、NVIDIA vGPUとかのゲスト間共有のためのハードウェア支援機構もあるにはある ● とても個人レベルで買える代物ではない ● KVMにおいては、まだ未成熟なところがある – 使いこなそうとすると、まだまだPatched Kernelが必要なシチュエーションが
19.
2019/07/13gpu仮想化最前線 #oscnagoya 19/67 ● 個人レベルでの現実解としては GPUパススルーが最も現実的 –
WS一台に複数GPUを積んで、それぞれをゲストに – せいぜい集約できて3~4台だが、そもそもGPUが 必要なレベルのパフォーマンス要求するゲストであ れば、コア数の問題もあってそのくらいが現実的
20.
2019/07/13gpu仮想化最前線 #oscnagoya 20/67 ● そうは行かない場合もある –
例えばノートPC ● dGPUを物理的に取り付けられない ● dGPU付ノートPCもあるが、一般的なデスクトッ プとは異なる接続方式である場合も多い
21.
2019/07/13gpu仮想化最前線 #oscnagoya 21/67 そういうわけで ノートPCでvGPUします openSUSEで!
22.
2019/07/13gpu仮想化最前線 #oscnagoya 22/67 実は仮想化は結構得意なopenSUSE ● 仮想化ホストとしては老舗なSUSE/openSUSE –
Xen主流の時代から仮想化には力を入れている – 基本的な設定程度はYastで一発 – 仮想化関係のカーネル調整も上手 ● ローリングリリースなTumbleweedがある – 最低でもKernel4.18以上とqemu3.0以上が必要だが、 ローリングリリースなTumbleweedならばっちり対応済 ● Snapperでシビアな作業も安心して進められる – カーネル設定やカーネルパッチなど、失敗したらブート 不可になるような作業でも一発で元に戻せる
23.
2019/07/13gpu仮想化最前線 #oscnagoya 23/67 openSUSE
Tumbleweed ● ローリング・リリース – 週に3回程度新しいバージョンがリリース ● 常に最新バージョンのカーネルやアプリケーション、 ライブラリを使いたい人向け – アプリケーション開発時に、新しいコンパイラやライブラリでも 動くかをいち早く確認できる
24.
2019/07/13gpu仮想化最前線 #oscnagoya 24/67 Snapperでいつでも巻き戻し ● Snapperって何? –
btrfsのスナップショット機能を応用したシステム復元ツール – Windowsの「システム復元」と似たようなものと言えなくもな いが、btrfsのスナップショットを使用するので保存も復元も一 瞬 – Yast、zypper等の主要コマンドを実行した時点で自動的にス ナップショットが作られる ● カーネル弄るようなシビアな作業で真価を発揮 – ふぇぇ・・・設定をしくじってブート不可になったよぉ・・・ ● ブートローダーから「過去のスナップショットで起動」を選んで失 敗する前の状態でブートする ● 「Snapper rollback」とコマンドを叩けばすっかり元通り
25.
2019/07/13gpu仮想化最前線 #oscnagoya 25/67 -
その1 - virtio-gpuな KVM環境の構築
26.
2019/07/13gpu仮想化最前線 #oscnagoya 26/67 まずはインストールから ● Tumbleweedはネットワークインストール推奨 –
ftp.riken.jpが日本で現状唯一のTumbleweedミラー ● http://ftp.riken.jp/Linux/opensuse/tumbleweed/repo/oss ● UEFIインストールは避けた方が良い – UEFIインストーラはbiosインストーラより細かいところが不親切 – snapper活用するならrootfsは全面btrfsが良い – homeの分割はお好みで ● お好みのデスクトップでインストール – xfce4派ですが、好きなのでいいんじゃないかな?
27.
2019/07/13gpu仮想化最前線 #oscnagoya 27/67 基本設定はYastで一発 ● qemu入れて~libvirt入れて~、daemon有効にして~、ブ リッジ設定して~ –
他のディストリだったらありがちな光景 「Yast>仮想化>ハイパーバイザのインストール」 「KVMサーバ」を選択して実行するだけで GPU仮想化使わない普通のKVM環境なら ネットワーク設定込みで一発で終わります
28.
2019/07/13gpu仮想化最前線 #oscnagoya 28/67 virt-managerでインストール ● virt-managerから普通にisoインストール –
最後に「設定をカスタマイズ」がポイントその1
29.
2019/07/13gpu仮想化最前線 #oscnagoya 29/67 virt-managerでインストールその2 ● ディスプレイをspiceにしてopenGLを有効に
30.
2019/07/13gpu仮想化最前線 #oscnagoya 30/67 virt-managerでインストールその3 ● ビデオをvirtioにして3Dアクセラレーションを有効に
31.
2019/07/13gpu仮想化最前線 #oscnagoya 31/67 virt-managerでインストールその4 ● こんなエラーが出たときは? –
virt-managerのバグでたまにspiceのopenGL設定が外れる 場合があるので再度設定すればOK
32.
2019/07/13gpu仮想化最前線 #oscnagoya 32/67 ● 後は普通にインストール
33.
2019/07/13gpu仮想化最前線 #oscnagoya 33/67 ● 「ドールズフロントオンライン」(ドルフロ)程度なら普通に 動きます
34.
2019/07/13gpu仮想化最前線 #oscnagoya 34/67 ● 「カスタムキャスト」なんかも動くには動く –
ただしspice側の問題でスワイプを受け付けない
35.
2019/07/13gpu仮想化最前線 #oscnagoya 35/67 ● 全てのゲームタイトルが動くわけではありません –
x86で動かないタイトルがたまーにある ● そういうのはAndroid-x86実機でも動かないので仕方な いね
36.
2019/07/13gpu仮想化最前線 #oscnagoya 36/67 -
その2 - KVMGTな KVM環境の構築
37.
2019/07/13gpu仮想化最前線 #oscnagoya 37/67 ちょっと難易度が上がります -
その2 - KVMGTな KVM環境の構築
38.
2019/07/13gpu仮想化最前線 #oscnagoya 38/67 カーネルモジュールの準備 ● gvt-gを使うために必要なモジュール類を入れます #
echo "INITRD_MODULES="kvmgt vfio- iommu-type1 vfio-mdev"" > /etc/sysconfig/kernel # mkinitrd
39.
2019/07/13gpu仮想化最前線 #oscnagoya 39/67 カーネルパラメータの設定 ● カーネルパラメータを設定します i915.enable_gvt=1
kvm_ignore_msrs=1 intel_iommu=1 ● Yast>ブートローダで設定
40.
2019/07/13gpu仮想化最前線 #oscnagoya 40/67 PCIアドレスの確認 ● 再起動してiGPUのpciアドレスを確認 $sudo
lspci 00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Host Bridge/DRAM Registers (rev 08) 00:02.0 VGA compatible controller: Intel Corporation Skylake GT2 [HD Graphics 520] (rev 07) 00:04.0 Signal processing controller: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem (rev 08) 〜以下略〜 ● 大概の場合は00:02.0なはず
41.
2019/07/13gpu仮想化最前線 #oscnagoya 41/67 共有GPUの確認 ● ls /sys/device/[GPUのPCIアドレス]/mdev_supported _types/で共有GPUの一覧が取れたら成功している $
ls /sys/devices/pci0000:00/0000:00:02.0/md ev_supported_types/ i915-GVTg_V5_4 i915-GVTg_V5_8
42.
2019/07/13gpu仮想化最前線 #oscnagoya 42/67 共有GPUのタイプ ● cat /sys/device/[GPUのPCIアドレス]/mdev_supported_types/[出てきた共有GPU]/descriptionで 共有GPUの詳細が見られる $
cat /sys/devices/pci0000:00/0000:00:02.0/mdev_supported_types/i915- GVTg_V5_4/description low_gm_size: 128MB ←この共有GPUの最小VRAMサイズ high_gm_size: 512MB ←この共有GPUの最大VRAMサイズ fence: 4 ←この環境で使える共有GPU枠 resolution: 1920x1200 ←この共有GPUの最大解像度 weight: 4 ←この共有GPUが消費する共有GPU枠 $ cat /sys/devices/pci0000:00/0000:00:02.0/mdev_supported_types/i915- GVTg_V5_8/description low_gm_size: 64MB high_gm_size: 384MB fence: 4 resolution: 1024x768 weight: 2
43.
2019/07/13gpu仮想化最前線 #oscnagoya 43/67 共有GPUの確保と解放 ● 共有GPUの確保 echo
'[任意のUUID]' > /sys/devices/[GPUのPCI アドレス]/mdev_supported_types/[共有GPUタ イプ]/create ● 共有GPUの解放 echo '1' > /sys/devices/[GPUのPCIアドレス]/[確保の時 使ったUUID]/remove
44.
2019/07/13gpu仮想化最前線 #oscnagoya 44/67 共有GPUの確保と解放(例) $
echo 'ab8c3af8-8366-449d-8489-fe9254e44621' > /sys/devices/pci0000:00/0000:00:02.0/mdev_supported_types/i9 15-GVTg_V5_4/create $ ls -l /sys/devices/pci0000:00/0000:00:02.0/ 合計 0 drwxr-xr-x 4 root root 0 1月 23 04:14 ab8c3af8-8366-449d- 8489-fe9254e44621 ←このディレクトリが生える -r--r--r-- 1 root root 4096 1月 23 04:14 ari_enabled -r--r--r-- 1 root root 4096 1月 23 04:14 boot_vga 〜以下略〜 $ echo '1' > /sys/devices/pci0000:00/0000:00:02.0/ab8c3af8- 8366-449d-8489-fe9254e44621/remove
45.
2019/07/13gpu仮想化最前線 #oscnagoya 45/67 systemdサービス化 こんな感じでsystemdサービスを作る ● $
cat /usr/lib/systemd/system/gvtgpu.service [Unit] Description=Create Intel GVT-g vGPU [Service] Type=oneshot ExecStart=/bin/sh -c "echo 'ab8c3af8-8366-449d-8489-fe9254e44621' > /sys/devices/pci0000:00/0000:00:02.0/mdev_supported_types/i915-GVTg_V5_4/create" ExecStop=/bin/sh -c "echo '1' > /sys/devices/pci0000:00/0000:00:02.0/ab8c3af8-8366- 449d-8489-fe9254e44621/remove" RemainAfterExit=yes [Install] WantedBy=graphical.target
46.
2019/07/13gpu仮想化最前線 #oscnagoya 46/67 systemdサービス化2 systemdサービス化してしまえば ● $
sudo systemctl start gvtgpu で確保 ● $ sudo systemctl stop gvtgpu で解放 ● $ sudo systemctl enable gvtgpuで起動時確保
47.
2019/07/13gpu仮想化最前線 #oscnagoya 47/67 systemdサービス化2 systemdサービス化してしまえば ● $
sudo systemctl start gvtgpu で確保 ● $ sudo systemctl stop gvtgpu で解放 ● $ sudo systemctl enable gvtgpuで起動時確保
48.
2019/07/13gpu仮想化最前線 #oscnagoya 48/67 systemdサービス化2 systemdサービス化してしまえば ● $
sudo systemctl start gvtgpu で確保 ● $ sudo systemctl stop gvtgpu で解放 ● $ sudo systemctl enable gvtgpuで起動時確保
49.
2019/07/13gpu仮想化最前線 #oscnagoya 49/67 virt-managerでインストール ● 一旦普通にvirt-managerでインストール
50.
2019/07/13gpu仮想化最前線 #oscnagoya 50/67 virt-managerでインストール ● KVMGTはovmfで動かないので必ずseabiosインストールする
51.
2019/07/13gpu仮想化最前線 #oscnagoya 51/67 virt-managerでインストール ● virtio-gpuの時と同様openGL有効なspiceディスプレイにす る
52.
2019/07/13gpu仮想化最前線 #oscnagoya 52/67 virt-managerでインストール ● 普通にインストールした後でシャットダウン
53.
2019/07/13gpu仮想化最前線 #oscnagoya 53/67 libvirt
XMLの編集 ● $ sudo -s ● # virsh list --all ● Id Name State ● ------------------------ ● - win10 shut off ● ● # virsh edit win10
54.
2019/07/13gpu仮想化最前線 #oscnagoya 54/67 libvirt
XMLの編集 ● </video>タグの下あたりに以下のタグを挿入する <hostdev mode='subsystem' type='mdev' managed='yes' model='vfio-pci' display='off'> <source> <address uuid='ab8c3af8-8366-449d-8489- fe9254e44621'/> </source> <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/> </hostdev> ● uuidは確保時に決めたものを ● adressは他デバイスと競合しないところを
55.
2019/07/13gpu仮想化最前線 #oscnagoya 55/67 ドライバの割り当て ● VMを起動するとセカンダリディスプレイとしてIntel
iGPUが 認識されているのでドライバを当てる
56.
2019/07/13gpu仮想化最前線 #oscnagoya 56/67 qemu XMLのドメイン変更 ● libvirtのxml中にqemuコマンドを直書きできるようスキーマ を変更する –
<domain type='kvm'> から – <domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0' >
57.
2019/07/13gpu仮想化最前線 #oscnagoya 57/67 qemu標準ビデオの無効化 ● videoタイプを標準のQXLからcirrusに変更する <video> <model
type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </video> <video> <model type='cirrus' vram='16384' heads='1' primary='yes'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </video> ● インストール時点でcirrusにしてもよいが、解像度的な意味で初期インストールが辛 いため
58.
2019/07/13gpu仮想化最前線 #oscnagoya 58/67 qemu標準ビデオの無効化 ● xml末尾にqemuコマンドを追記し、標準ビデオのcirrusにわ ざと間違ったドライバを強制的にあてる <qemu:commandline> <qemu:arg
value='-set'/> <qemu:arg value='device.video0.driver=ne2k_pci'/> </qemu:commandline> ● libvirtの仕様でディスプレイあり/標準ビデオnoneにできない ため、わざとエラーを起こして標準ビデオを無効化するバッド ノウハウ ● QXLからcirrusにしたのはISA準拠だからできる裏技なので
59.
2019/07/13gpu仮想化最前線 #oscnagoya 59/67 qemu標準ビデオの無効化 ● 最新のlibvirtではこれで良くなった <video> <model
type='none'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </video> – 当然ドライバ指定も不要 ● ただし相当新しいlibvirtからっぽいので、ディストリによって は前述の裏技がまだ必要
60.
2019/07/13gpu仮想化最前線 #oscnagoya 60/67 Intel
iGPUの有効化 ● xml末尾にqemuコマンドを追記 <qemu:commandline> <qemu:arg value='-set'/> <qemu:arg value='device.video0.driver=ne2k_pci'/> <qemu:arg value='-set'/> <qemu:arg value='device.hostdev0.x-igd-opregion=on'/> </qemu:commandline> ● hostdevタグにdisplay=onを追加 <hostdev mode='subsystem' type='mdev' managed='yes' model='vfio-pci' display='on'>
61.
2019/07/13gpu仮想化最前線 #oscnagoya 61/67 ゲストを起動 ● 共有GPUはbiosROMを持たないため最初は画面が出ない ● しばらくしてWindowsドライバがgpuをつかめば表示される
62.
2019/07/13gpu仮想化最前線 #oscnagoya 62/67 ゲストを起動 ● もともとがintel
iGPUの上、能力70%なので性能はお察し ● とはいえVMWare WorkstationのGPU等は余裕で超える性能
63.
2019/07/13gpu仮想化最前線 #oscnagoya 63/67 ゲストを起動 ● 軽めの3Dゲームなら余裕で動きます ● アトリエとかアトリエとかアトリエとか
64.
2019/07/13gpu仮想化最前線 #oscnagoya 64/67 展示ブースの デモ機紹介
65.
2019/07/13gpu仮想化最前線 #oscnagoya 65/67 展示ブースのデモ機構成 ● DELL
Latitude E5470 – CPU: Intel Core i5 6200U – GPU: Intel UHD Graphics 520 – Mem: 8GB – OS: openSUSE Tumbleweed x86_64 – Kernel 5.1 – Qemu: 4.0 ● 解説したAndroid x86とWindows10ゲストを実際に動かして います
66.
2019/07/13gpu仮想化最前線 #oscnagoya 66/67 質疑応答とか
67.
2019/07/13gpu仮想化最前線 #oscnagoya 67/67 ありがとう ございました!
Baixar agora