Submit Search
Upload
Linux KVM環境におけるGPGPU活用最新動向
•
27 likes
•
13,804 views
Taira Hajime
Follow
Linux KVMによる仮想化環境においてGPGPUを使うための前提技術や、その手順、OpenStackにおけるGPGPUの活用方法についてご紹介します。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 30
Download now
Download to read offline
Recommended
DockerコンテナでGitを使う
DockerコンテナでGitを使う
Kazuhiro Suga
Ss systemdのwslディストロを作る kernelvm探検隊online part 3
Ss systemdのwslディストロを作る kernelvm探検隊online part 3
Takaya Saeki
GPU仮想化最前線 - KVMGTとvirtio-gpu -
GPU仮想化最前線 - KVMGTとvirtio-gpu -
zgock
いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門
Fixstars Corporation
CUDAプログラミング入門
CUDAプログラミング入門
NVIDIA Japan
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
Etsuji Nakai
遠隔デバイスとの信頼を築くための技術とその標準(TEEP RATS)
遠隔デバイスとの信頼を築くための技術とその標準(TEEP RATS)
Kuniyasu Suzaki
ネットワークシミュレータで手軽にネットワークのお勉強(GNS3編)
ネットワークシミュレータで手軽にネットワークのお勉強(GNS3編)
Wataru NOGUCHI
Recommended
DockerコンテナでGitを使う
DockerコンテナでGitを使う
Kazuhiro Suga
Ss systemdのwslディストロを作る kernelvm探検隊online part 3
Ss systemdのwslディストロを作る kernelvm探検隊online part 3
Takaya Saeki
GPU仮想化最前線 - KVMGTとvirtio-gpu -
GPU仮想化最前線 - KVMGTとvirtio-gpu -
zgock
いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門
Fixstars Corporation
CUDAプログラミング入門
CUDAプログラミング入門
NVIDIA Japan
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
Etsuji Nakai
遠隔デバイスとの信頼を築くための技術とその標準(TEEP RATS)
遠隔デバイスとの信頼を築くための技術とその標準(TEEP RATS)
Kuniyasu Suzaki
ネットワークシミュレータで手軽にネットワークのお勉強(GNS3編)
ネットワークシミュレータで手軽にネットワークのお勉強(GNS3編)
Wataru NOGUCHI
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
Kumazaki Hiroki
Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF
Shuji Yamada
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
NTT DATA Technology & Innovation
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
Takateru Yamagishi
Slurmのジョブスケジューリングと実装
Slurmのジョブスケジューリングと実装
Ryuichi Sakamoto
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
Preferred Networks
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
Kuniyasu Suzaki
分散システムの限界について知ろう
分散システムの限界について知ろう
Shingo Omura
Singularityで分散深層学習
Singularityで分散深層学習
Hitoshi Sato
x86とコンテキストスイッチ
x86とコンテキストスイッチ
Masami Ichikawa
A summary on “On choosing and bounding probability metrics”
A summary on “On choosing and bounding probability metrics”
Kota Matsui
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Hiro H.
畳み込みLstm
畳み込みLstm
tak9029
10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ
Takashi Hoshino
Verilator勉強会 2021/05/29
Verilator勉強会 2021/05/29
ryuz88
Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版
Masahito Zembutsu
遺伝研スパコンを使った解析の並列化.pptx
遺伝研スパコンを使った解析の並列化.pptx
Osamu Ogasawara
Polyphony: Python ではじめる FPGA
Polyphony: Python ではじめる FPGA
ryos36
Hopper アーキテクチャで、変わること、変わらないこと
Hopper アーキテクチャで、変わること、変わらないこと
NVIDIA Japan
もしCloudStackのKVMホストでPCIパススルーできるようになったら
もしCloudStackのKVMホストでPCIパススルーできるようになったら
Takuma Nakajima
OpenIndiana+KVMによる仮想マシン
OpenIndiana+KVMによる仮想マシン
悟 宮崎
More Related Content
What's hot
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
Kumazaki Hiroki
Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF
Shuji Yamada
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
NTT DATA Technology & Innovation
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
Takateru Yamagishi
Slurmのジョブスケジューリングと実装
Slurmのジョブスケジューリングと実装
Ryuichi Sakamoto
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
Preferred Networks
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
Kuniyasu Suzaki
分散システムの限界について知ろう
分散システムの限界について知ろう
Shingo Omura
Singularityで分散深層学習
Singularityで分散深層学習
Hitoshi Sato
x86とコンテキストスイッチ
x86とコンテキストスイッチ
Masami Ichikawa
A summary on “On choosing and bounding probability metrics”
A summary on “On choosing and bounding probability metrics”
Kota Matsui
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Hiro H.
畳み込みLstm
畳み込みLstm
tak9029
10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ
Takashi Hoshino
Verilator勉強会 2021/05/29
Verilator勉強会 2021/05/29
ryuz88
Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版
Masahito Zembutsu
遺伝研スパコンを使った解析の並列化.pptx
遺伝研スパコンを使った解析の並列化.pptx
Osamu Ogasawara
Polyphony: Python ではじめる FPGA
Polyphony: Python ではじめる FPGA
ryos36
Hopper アーキテクチャで、変わること、変わらないこと
Hopper アーキテクチャで、変わること、変わらないこと
NVIDIA Japan
What's hot
(20)
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
Docker Compose 徹底解説
Docker Compose 徹底解説
10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
Slurmのジョブスケジューリングと実装
Slurmのジョブスケジューリングと実装
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
分散システムの限界について知ろう
分散システムの限界について知ろう
Singularityで分散深層学習
Singularityで分散深層学習
x86とコンテキストスイッチ
x86とコンテキストスイッチ
A summary on “On choosing and bounding probability metrics”
A summary on “On choosing and bounding probability metrics”
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
畳み込みLstm
畳み込みLstm
10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ
Verilator勉強会 2021/05/29
Verilator勉強会 2021/05/29
Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版
遺伝研スパコンを使った解析の並列化.pptx
遺伝研スパコンを使った解析の並列化.pptx
Polyphony: Python ではじめる FPGA
Polyphony: Python ではじめる FPGA
Hopper アーキテクチャで、変わること、変わらないこと
Hopper アーキテクチャで、変わること、変わらないこと
Similar to Linux KVM環境におけるGPGPU活用最新動向
もしCloudStackのKVMホストでPCIパススルーできるようになったら
もしCloudStackのKVMホストでPCIパススルーできるようになったら
Takuma Nakajima
OpenIndiana+KVMによる仮想マシン
OpenIndiana+KVMによる仮想マシン
悟 宮崎
NVIDIA 入門
NVIDIA 入門
Wataru Unno
OpenStackを使用したGPU仮想化IaaS環境 事例紹介
OpenStackを使用したGPU仮想化IaaS環境 事例紹介
VirtualTech Japan Inc.
Hello, DirectCompute
Hello, DirectCompute
dasyprocta
NetBSD on Google Compute Engine
NetBSD on Google Compute Engine
Ryo ONODERA
Robovie Maker2éêàµê‡ñæèë
Robovie Maker2éêàµê‡ñæèë
guesta33ba0
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
yaegashi
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
Preferred Networks
「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)
「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)
Kazuyuki Sato
Cuda
Cuda
Shumpei Hozumi
[Azure Antenna] HPCだけじゃないDeep Learningでも使える ハイパフォーマンスAzureインフラ ~ Azureハイパフォーマ...
[Azure Antenna] HPCだけじゃないDeep Learningでも使える ハイパフォーマンスAzureインフラ ~ Azureハイパフォーマ...
Shuichi Gojuki
もなーこいん3つの視点
もなーこいん3つの視点
Yuki Akiyama
もなーこいん3つの視点
もなーこいん3つの視点
gikopool
BHyVeってなんや
BHyVeってなんや
Takuya ASADA
GPGPU deいろんな問題解いてみた
GPGPU deいろんな問題解いてみた
Ryo Sakamoto
PyOpenCLによるGPGPU入門
PyOpenCLによるGPGPU入門
Yosuke Onoue
NVIDIA GRID が実現する GPU 仮想化テクノロジー
NVIDIA GRID が実現する GPU 仮想化テクノロジー
NVIDIA Japan
Raspberrypi+yocto in Yocto Workshop Japan #1
Raspberrypi+yocto in Yocto Workshop Japan #1
kazuya-nisimura
SCUGJ第18回勉強会:よろしい、ならばVMMだ
SCUGJ第18回勉強会:よろしい、ならばVMMだ
wind06106
Similar to Linux KVM環境におけるGPGPU活用最新動向
(20)
もしCloudStackのKVMホストでPCIパススルーできるようになったら
もしCloudStackのKVMホストでPCIパススルーできるようになったら
OpenIndiana+KVMによる仮想マシン
OpenIndiana+KVMによる仮想マシン
NVIDIA 入門
NVIDIA 入門
OpenStackを使用したGPU仮想化IaaS環境 事例紹介
OpenStackを使用したGPU仮想化IaaS環境 事例紹介
Hello, DirectCompute
Hello, DirectCompute
NetBSD on Google Compute Engine
NetBSD on Google Compute Engine
Robovie Maker2éêàµê‡ñæèë
Robovie Maker2éêàµê‡ñæèë
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)
「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)
Cuda
Cuda
[Azure Antenna] HPCだけじゃないDeep Learningでも使える ハイパフォーマンスAzureインフラ ~ Azureハイパフォーマ...
[Azure Antenna] HPCだけじゃないDeep Learningでも使える ハイパフォーマンスAzureインフラ ~ Azureハイパフォーマ...
もなーこいん3つの視点
もなーこいん3つの視点
もなーこいん3つの視点
もなーこいん3つの視点
BHyVeってなんや
BHyVeってなんや
GPGPU deいろんな問題解いてみた
GPGPU deいろんな問題解いてみた
PyOpenCLによるGPGPU入門
PyOpenCLによるGPGPU入門
NVIDIA GRID が実現する GPU 仮想化テクノロジー
NVIDIA GRID が実現する GPU 仮想化テクノロジー
Raspberrypi+yocto in Yocto Workshop Japan #1
Raspberrypi+yocto in Yocto Workshop Japan #1
SCUGJ第18回勉強会:よろしい、ならばVMMだ
SCUGJ第18回勉強会:よろしい、ならばVMMだ
Recently uploaded
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
Recently uploaded
(9)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
Linux KVM環境におけるGPGPU活用最新動向
1.
Linux KVM環境における GPGPU活用最新動向 - OSC2015
Fukuoka - TAIRA Hajime <htaira@pantora.net>TAIRA Hajime <htaira@pantora.net>
2.
2 自己紹介 平 初 仮想化友の会 発起人 生息地 :
東京 / 愛知 / 北海道 / 熊本 好きなゆるキャラ : くまモン 好きなふりかけ : 御飯の友
3.
3 御飯の友
4.
4 本日のお題 「GPUパススルー」
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 処理の実行環境
7.
7 KVM でパススルー可能なデバイス USB SCSI
PCIe
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を仮想環境で利 用する場合
19.
19 GPGPU on OpenStack
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"}
27.
27 OpenStack 環境でインスタンス上に 認識された NVIDIA
Quadro 2000
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
Download now