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
2.8k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
GPUパススルーでVMからVRしてみよう
VRChat LT大会#7用のスライドです
Tatsuya Ando
March 26, 2020
More Decks by Tatsuya Ando
See All by Tatsuya Ando
GitHub Copilotと和解せよ
zgock999
0
270
我ギガスクール構想ニ勝テリ
zgock999
0
260
自力でTTSモデルを作った話
zgock999
0
590
Other Decks in Technology
See All in Technology
新しいVibe Codingと”自走”について
watany
6
320
2026TECHFRESH畢業分享會 - Lightning Talk - E起 See See : 電商推薦讀心術? 數據說了算
line_developers_tw
PRO
0
1k
AIソロプレナー時代に2ヶ月で20人増員した事業創造会社の開発組織の話
miyatakoji
0
660
AIのReact習熟度を測る
uhyo
2
560
200個のGitHubリポジトリを横断調査したかった
icck
0
130
AIっぽい文章を採点して人間らしく直すアプリを作ってみた
yama3133
2
180
On-behalf-of Token exchange with AgentCore Identity
hironobuiga
2
200
20260619 私の日常業務での生成 AI 活用
masaruogura
1
200
2026TECHFRESH畢業分享會 - Lightning Talk - 打造精準高效的 MCP 設計模式與測試實務
line_developers_tw
PRO
0
1k
AIの性能が向上しても未解決な組織の重大問題は何か?/An Unsolved Organizational Problem in the Age of AI
moriyuya
4
670
作って終わりにしない タイミーのセマンティックレイヤー育成の現在地
chanyou0311
4
2.4k
なぜ Platform Engineering の土台に Kubernetes を選ぶのか
r4ynode
2
640
Featured
See All Featured
Building AI with AI
inesmontani
PRO
1
1.1k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.1k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
220
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Six Lessons from altMBA
skipperchong
29
4.3k
Speed Design
sergeychernyshev
33
1.8k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
300
Making Projects Easy
brettharned
120
6.7k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
560
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.7k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
160
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で展示予定 コロナで中止になりませんように・・・