Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
GPUパススルーでVMからVRしてみよう
Search
Tatsuya Ando
March 26, 2020
Technology
0
2.4k
GPUパススルーでVMからVRしてみよう
VRChat LT大会#7用のスライドです
Tatsuya Ando
March 26, 2020
Tweet
Share
More Decks by Tatsuya Ando
See All by Tatsuya Ando
自力でTTSモデルを作った話
zgock999
0
100
Other Decks in Technology
See All in Technology
Iceberg Meetup Japan #1 : Iceberg and Databricks
databricksjapan
0
350
短縮URLをお手軽に導入しよう
nakasho
0
140
あなたが人生で成功するための5つの普遍的法則 #jawsug #jawsdays2025 / 20250301 HEROZ
yoshidashingo
2
280
LINEギフトにおけるバックエンド開発
lycorptech_jp
PRO
0
270
RemoveだらけのPHPUnit 12に備えよう
cocoeyes02
0
280
Raycast AI APIを使ってちょっと便利な拡張機能を作ってみた / created-a-handy-extension-using-the-raycast-ai-api
kawamataryo
0
210
データベースの負荷を紐解く/untangle-the-database-load
emiki
2
500
アジャイルな開発チームでテスト戦略の話は誰がする? / Who Talks About Test Strategy?
ak1210
1
550
AIエージェント元年@日本生成AIユーザ会
shukob
1
200
Visualize, Visualize, Visualize and rclone
tomoaki0705
9
82k
LINE NEWSにおけるバックエンド開発
lycorptech_jp
PRO
0
230
生成AI×財務経理:PoCで挑むSlack AI Bot開発と現場巻き込みのリアル
pohdccoe
1
630
Featured
See All Featured
A designer walks into a library…
pauljervisheath
205
24k
Making the Leap to Tech Lead
cromwellryan
133
9.1k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Being A Developer After 40
akosma
89
590k
4 Signs Your Business is Dying
shpigford
182
22k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.3k
The Cult of Friendly URLs
andyhume
78
6.2k
Side Projects
sachag
452
42k
How to Ace a Technical Interview
jacobian
276
23k
We Have a Design System, Now What?
morganepeng
51
7.4k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7.1k
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
Transcript
1 GPU パススルーで VM から VR してみよう VRChat LT #7
@
[email protected]
2 お前誰よ ? ・ OSS 界隈で zgock を名乗る痛いおっさん ・東海道らぐ
(Tokaido Linux Users Group) 名古屋ドメイン ・ openSUSE 教団 ・毎年 OSC 名古屋で仮想化関係のセミナーしてます ・今年も 5/16 にあるのでよろしくね ・ mastdon: @
[email protected]
・ blog: https://blog.zgock-lab.net
3 仮想化技術最後の壁、 GPU ・qemu/VMWare/VirtualBox等でデバイスの仮想化が進んだ ・ネットワークやブロックデバイス等は採用技術次第ではネイティブ と遜色ないレベルに ・GPUは複雑なデバイスであるため単純なソフトウェアによる仮想化 ではパフォーマンスや機能に限界があった (最もパフォーマンスが出るとされているVMWare WorkStationの仮
想VGAでも実GPUには遠く及ばない)
4 GPU 仮想化のための方法論 1.ソフトウェアで準仮想化GPUを実装する (VMXVGA、virtio-gpu=Virgl3Dとか) 2.GPU共有に対応したGPUでホストとGPU共有する (Intel gvt-gとかNVIDIA vGPUとか) 3.ホストに突っ込んだGPUをVMに直接割り当てる
(GPUパススルー)
5 GPU 仮想化のための方法論 1.ソフトウェアで準仮想化GPUを実装する (VMXVGA、virtio-gpu=Virgl3Dとか) 2.GPU共有に対応したGPUでホストとGPU共有する (Intel gvt-gとかNVIDIA vGPUとか) 3.ホストに突っ込んだGPUをVMに直接割り当てる
(GPUパススルー)←今日はこの話をします
6 GPU パススルー ・実は結構枯れた技術で、 ESXiとかXenでは10年前ぐらいから可能だった ・KVMは対応が遅れていたがここ数年で (大体kernel4.8前後から) 実用レベルになった ・FreeBSDのBeHyveもまだIssue出まくりではあるけど 密かに動き始めている
7 昔話 ・7年ぐらい前にXenでおうちの家族用PCを GPUパススルーでVM化した話をSlideShareに 上げてるから見てね ・「xen zfs」で検索すれば出てくるはず
8 KVM での GPU パススルー ・VFIO(Virtual Functional I/O)という技術を使う ・現在進行形で開発されている技術のため、Kernelは新し ければ新しいほど良い世界
・ハードウェア側でIOMMU(IO空間に対応した偉いMMU) を積んでいる必要がある (Intelだとvt-d、AMDだとAMD-Vi) ・BIOSもIOMMU対応が必要 みんな大好きASRock安定
9 VFIO を使う ・Kernelに以下のモジュールを読み込む vfio vfio_iommu_type1 vfio_pci vfio_virqfd kvm kvm_i
ntel ・vfio_pciのoptionでパススルーしたいデバイスのidを指 定する options vfio_pci ids=8086:016a,8086:1e20,1002:683 f,1002:aab0,10de:1380,10de:0fbc等 ・libvirtなりqemuでgpuをPCI id指定で割り当てる ・ね?簡単でしょ?
10 GPU 別の話 - NVIDIA ・NVIDIAのGeforce血統はKVMで使うのに2つの壁 1.vBIOS ROMをブートローダーが掴むと他からアクセスできない 対策A:セカンダリGPUにしておく 対策B:vBIOS
ROMをあらかじめダンプしてROM fileとしてqemuに与 える ・ゲストは必ずUEFI(OVMF)ブートで起動すること 2.NVIDIAドライバがKVM下で動いていることを検知するとエラーで止 まる XenやESXiが公式対応しているQuadroすら止まる 対策:ゲスト側で「KVMで動いているフラグ」をOFFにする
11 (ここに例の中指画像を入れる)
12 GPU 別の話 - AMD ・NVIDIAのようなセコい真似はしていないので素直に動く ・時々vBIOSに持病を持つ世代があって、VMのシャットダウン時にフ リーズする子がいる R9 3xx
RX Vega RX 5xxx (Vega以降については今後のkernelで治るかも) 間違いなくド安定なのはR9 2xx世代 RX3桁系はOCモデルとかのvBIOS弄ってるグラボだと怪しい
13 GPU 別の話 - Intel ・新しめのkernelが必要 (対応したのは4.8からだけど安定したのは4.10ぐらいから) ・coffee Lake以降はKernel 5.1以降が望ましい
・qemuオプションに「Intel iGPU使うよ」というオプションが必要
14 おすすめディストリその1 openSUSE ・教団なのでしかたないね ・カーネルに仮想化関連で当てておきたいパッチが丁寧に当たってい る場合が多い (Kernelの魔改造に定評があるSUSE) ・基本的なKVMの設定はYaSTが秒でセットアップしてくれる ・Xen時代から仮想化関連は積極的に対応している
15 おすすめディストリその2 Arch Linux ・カーネルが新しければ新しいほど良い世界なので ・みんな大好きArch Wiki
16 おすすめディストリその 3 UnRAID Server ・Limetech社が販売しているSlackwareベースのホームサーバー用 ディストリ ・本来ホームNAS用ディストリのはずがKVMとDockerをwebインター フェースで楽々扱えるマニアックOSに ・Webインターフェースで脳死でGPU指定するだけで、GPUの種類判
別して必要な設定を全部やってくれる ・脳死でGPUパススルーしたいなら一番のお勧め ・商用と言ってもグレード別で6000~15000円ぐらい ・評価版もあるでよ
17 実機デモが見たいだと? OSC Nagoya 2020 at 5/16(Sat) ここ数年KVMにVive繋いで 「VMからVR」のデモやってます 今年も去年に引き続き
Unraid Server + Viveで展示予定 コロナで中止になりませんように・・・