5分間の技術講演 | GPU仮想化に関する簡単な講演

5分間の技術講演 | GPU仮想化に関する簡単な講演

パート01 背景

1.1 GPU アプリケーションのシナリオ

GPU (グラフィックス プロセッシング ユニット) は、もともとコンピューター グラフィックスのタスクを処理するために設計されましたが、現在ではその応用シナリオは他の多くの分野に拡大しています。以下に、GPU アプリケーションのシナリオをいくつか示します。

ゲームと視覚効果: GPU はもともとグラフィック レンダリングを高速化するために設計されたため、ゲームや視覚効果で優れた用途があります。 GPU は大量のデータを迅速に処理し、複雑な 3 次元グラフィックスを生成して、プレイヤーによりリアルなゲーム体験を提供します。

機械学習とディープラーニング: 近年、人工知能の分野で GPU がますます使用されるようになっています。ディープラーニング モデルでは大量の並列コンピューティングと浮動小数点演算が必要となるため、GPU はこのタスクに適しています。 GPU を使用して機械学習のトレーニング プロセスを高速化すると、多くの時間を節約できます。

科学的シミュレーションとデータ分析: 多くの科学的コンピューティング タスクでは、大量のデータの処理と複雑な数学演算の実行が必要です。 GPU は、分子動力学、流体力学、天文学、地球科学などの分野におけるシミュレーションや分析において重要な役割を果たすことができます。

画像およびビデオ処理: GPU は画像およびビデオ処理の分野でも広く使用されています。たとえば、リアルタイムのビデオエンコードとデコード、画像のノイズ除去、画像の強化、画像認識などのタスクに使用できます。

仮想現実と拡張現実: GPU は、仮想現実 (VR) と拡張現実 (AR) の分野でも優れた用途があります。高品質の仮想環境をリアルタイムでレンダリングし、ユーザーに没入感のある体験を提供します。

技術の発展に伴い、GPU の応用分野は拡大し続けることが予想されます。

1.2 GPU仮想化の利点

GPU 仮想化は、物理 GPU のコンピューティング リソースとメモリ リソースを複数の仮想環境で共有するテクノロジです。主な利点は次のとおりです。

リソース共有: GPU 仮想化により、物理 GPU のコンピューティング リソースとメモリ リソースを複数の仮想環境で共有できるようになり、GPU の使用効率が向上します。

弾力的な拡張: GPU 仮想化により、仮想 GPU のコンピューティング リソースとメモリ リソースをアプリケーションのニーズに応じて動的に調整できるため、リソースの弾力的な拡張が実現します。

コスト効率: GPU 仮想化により、物理 GPU を複数の仮想環境間で共有できるようになり、複数の独立した GPU を購入して保守する必要性が減るため、ハードウェアへの投資と保守コストを削減できます。

分離: GPU 仮想化は優れた分離を提供し、仮想環境間のセキュリティと独立性を保証します。これは、異なるテナント間のデータとコンピューティングの分離を保証するため、マルチテナント クラウド コンピューティング環境では特に重要です。

柔軟な展開: GPU 仮想化により、さまざまなパフォーマンス要件を満たすために、さまざまな物理ハードウェア上に仮想環境を柔軟に展開できます。つまり、ユーザーは既存の仮想環境との互換性の問題を考慮することなく、ニーズに応じて適切な GPU ハードウェアを選択できます。

パート02 関連する基本概念

GPU 仮想化を理解しやすくするために、まず、I/O バス、GPU API、GPU ワークフローなどの関連する基本概念を紹介します。

2.1 I/Oバス


写真

現代のコンピュータには、インターフェース プロトコルのパフォーマンスに基づいて階層化された I/O バスがあります。

上の図に示すように、SCSI (Small Computer System Interface)、SATA (Serial AT Attachment)、または USB (Universal Serial Bus) プロトコルを使用する I/O デバイスなど、比較的低速の周辺 I/O デバイスは、周辺 I/O バスを介してシステムに接続されます。グラフィック カードやネットワーク カードなどの高性能 I/O デバイスは、一般的な I/O バスを介してシステムに接続されます。多くの最新システムでは、このバスは PCIe (Peripheral Component Interconnect Express) またはその派生です。

2.2 GPU API

さまざまな機能をサポートするために、GPU はさまざまな種類の API を提供し、開発者がアプリケーションで GPU の強力な機能を使用できるようにします。これらの API は、グラフィックス レンダリング、一般的なコンピューティング、オーディオとビデオのエンコードとデコードの 3 つのカテゴリに分類できます。

グラフィックス レンダリング API は、リアルタイム 3D グラフィックスやアニメーションなどのグラフィックス レンダリング タスクを処理するために使用されます。これらの API は、開発者がプロ​​グラム内で 3D オブジェクト、テクスチャ、シェーダーを作成および操作できるようにする一連の関数とインターフェースを提供します。これらの API は、ゲームや 3D モデリング ソフトウェアでよく使用されます。主なレンダリング API は次のとおりです。OpenGL (Open Graphics Library): 2D および 3D グラフィックス レンダリング機能を提供するクロスプラットフォーム グラフィックス プログラミング インターフェイス。Vulkan: OpenGL に似たクロスプラットフォーム 3D グラフィックスおよびコンピューティング API ですが、低レベルのハードウェア制御と高いパフォーマンスを提供します。DirectX: Windows プラットフォームで 3D グラフィックス レンダリングを処理するための、Microsoft によって開発された一連の API (Direct3D を含む)。Metal: Apple によって開発されたグラフィックスおよびコンピューティング API で、iOS および macOS プラットフォーム専用に設計されています。

一般的なコンピューティング API を使用すると、開発者はグラフィックス レンダリングだけでなく、一般的なコンピューティング タスクに GPU を使用できます。これらのタスクには、物理​​シミュレーション、機械学習、画像処理などが含まれる場合があります。一般的なコンピューティング API は、GPU 上で高性能な並列コンピューティングを実現するためのプログラミング モデルと最適化ツールを提供します。主な一般的なコンピューティング API は次のとおりです。CUDA (Compute Unified Device Architecture): NVIDIA が開発し、NVIDIA GPU 専用に設計された並列コンピューティング プラットフォームおよびプログラミング モデル。OpenCL (Open Computing Language): さまざまな種類のプロセッサ (GPU、CPU、その他のアクセラレータなど) で実行できるクロスプラットフォームの並列コンピューティング API。

オーディオおよびビデオ コーデック API は、オーディオおよびビデオ データのエンコードとデコードを処理するために使用されます。 GPU の並列処理能力を利用して、オーディオおよびビデオ データの圧縮と解凍を高速化します。主なオーディオおよびビデオ コーデック API は次のとおりです。NVENC/NVDEC: NVIDIA GPU 上のハードウェア アクセラレーション ビデオ エンコードおよびデコード API。H.264、HEVC、VP9 などの一般的なビデオ コーディング標準をサポートします。AMD VCE/UVD: AMD GPU 上のハードウェア アクセラレーション ビデオ エンコードおよびデコード API。一般的なビデオ コーディング標準をサポートします。Intel Quick Sync Video: Intel プロセッサ統合 GPU 上のハードウェア アクセラレーション ビデオ エンコードおよびデコード API。VideoToolbox: Apple プラットフォーム上のハードウェア アクセラレーション ビデオ エンコードおよびデコード フレームワーク。iOS および macOS デバイスをサポートします。

2.3 GPUワークフロー

仮想化がない場合、レンダリングに関係する主要コンポーネントを下図に示します。


写真

一般的な GPU デバイスのワークフローは次のとおりです。

アプリケーションは、OpenGL や DirectX など、GPU でサポートされている API を呼び出します。

OpenGL または DirectX ライブラリ。レンダリング負荷をオペレーティング システム カーネル GPU ドライバーに送信します。

GPU ドライバーはそれを GPU ハードウェアに送信します。

GPU ハードウェアが動作を開始します。完了後、メモリに DMA し、CPU に割り込みを送信します。

CPU は割り込みハンドラー (GPU ドライバーが以前にオペレーティング システムに登録したもの) を見つけて呼び出します。

割り込みハンドラはどのレンダリング ロードが実行されたかを検出し、最後に GPU ドライバーが関連するアプリケーションを起動します。

パート 03 GPU 仮想化テクノロジー ソリューション

3.1 PCIe パススルー

PCIe パススルーは、仮想化ソフトウェアによるエミュレーションなしで、仮想マシン (VM) が物理ホスト上の PCIe デバイスに直接アクセスできるようにする仮想化テクノロジーです。 PCIe パススルーを使用すると、次の図に示すように、GPU デバイスを仮想マシンに直接割り当てることができます。


写真

パススルー モードは、パフォーマンスの低下が最小限で、ハードウェア ドライバーの変更を必要としないため、主要なパブリック クラウド ベンダーによって広く採用されています。パススルー モードでは、サポートできる GPU の数に制限はなく、GPU の機能も低下しないため、ほとんどの機能はパススルー モードでも変更なしでサポートできます。

➪ パススルーモードには次の利点があります。

①パフォーマンスの低下が小さい

②機能互換性が良好

③技術がシンプルで、運用・保守コストが低く、GPUメーカーに依存しない。

➪ ダイレクトモードには次の欠点があります。

1. ホットマイグレーションをサポートしていません。

2. 1:1 のみがサポートされ、GPU リソースの分離はサポートされません。

3.2 PCIe SR-IOV

PCIe SR-IOV (Single Root Input/Output Virtualization) は、高いパフォーマンスを維持しながら PCIe デバイスを複数の仮想マシン間で共有できるようにする、より高度な仮想化テクノロジーです。これは、物理デバイス (PF) 上に複数の仮想機能 (VF) を作成することで実現されます。各仮想機能は仮想マシンに割り当てることができ、仮想マシンはこれらの仮想機能に直接アクセスして制御できるため、効率的な I/O 仮想化が実現します。 PCIe SR-IOV に基づく GPU 仮想化ソリューションは、基本的に物理 GPU グラフィックス カード デバイス (PF) を複数の仮想 (VF) グラフィックス カード デバイスに分割しますが、VF は PCIe 仕様に準拠したデバイスのままです。コアアーキテクチャは次のとおりです。


写真

SR-IOV ソリューションでは、PF を仮想化し、複数の VF に分割できます。

これに基づいて、SR-IOV には 3 つのアプリケーション シナリオがあります。

(1)ユーザーはHostOSベースのPFドライバを通じてPFを直接使用する。

(2)ユーザーはHostOSベースのVFドライバを介してVFを直接使用する。

(3)ユーザーはVFドライバを介してVM内のVFを使用する。

➪ SR-IOV ソリューションの利点:

① 各 VF には独立した構成空間、MMIO、アドレス空間があるため、データのセキュリティが強化されます。

② 1つのPCIeデバイスを複数のVMに提供する1:Nを真に実現します。

➪ SR-IOV ソリューションの欠点:

1. 柔軟性が低く、きめ細かいセグメンテーションとスケジューリングを実行できない。

2. ホットマイグレーションはサポートされていません。

業界で SR-IOV をサポートするグラフィック カード:

1. AMD Radeon PRO V620: 1 枚のグラフィック カード PV は 12 個の VF への分割をサポートします。

2. Moore Thread MTT S3000: 1 枚のグラフィック カード PV で 32 個の VF の分離をサポートします。

3.3 API転送

PCIe SR-IOV を待つ間に、API 転送に基づく GPU 仮想化ソリューションが業界に登場しました。 API 転送は、着信側と発信側に分かれています。両者は外部に同じインターフェイス (API) を提供します。着信側の API 実装は実際のレンダリングと計算処理ロジックであり、発信側の API 実装は転送のみで、着信側に転送します。そのコアアーキテクチャは次の図に示されています。


写真

GPU API レイヤー フォワーディングに関しては、業界には OpenGL 用の AWS Elastic GPU と OrionX、CUDA 用の Tencent vCUDA、バレンシア工科大学の rCUDA があり、GPU ドライバー レイヤー フォワーディングに関しては、CUDA 用の Alibaba Cloud cGPU と Tencent Cloud pGPU があります。

➪ API転送ソリューションの利点:

①最高の柔軟性。 API 転送を通じてアプリケーションと GPU デバイスを分離した後、1 つの GPU デバイスをソフトウェアを通じて任意に N 台の VM にサービスを提供するように構成できます。また、柔軟な GPU リソースの拡張、縮小、移行も実現できます。

②GPUハードウェアメーカーに依存しない。

③仮想化環境に限定されません。

➪ API 転送ソリューションの欠点:

1. 非常に複雑です。同じ機能に対して複数の API セット (レンダリング用の DirectX と OpenGL) があり、同じ API セットでもバージョンが異なる (DirectX 9 と DirectX 11 など) ため、互換性が非常に複雑になります。

2. 機能が不完全です。サポートされていないメディアコーデックなど。

3.4 制御されたパススルー

制御されたパススルー ソリューションは Nvidia によって提案され、同社は Intel と共同で関連する mdev を Linux カーネル 4.0 に提出しました。制御されたパススルーは、パフォーマンスに影響を与える可能性のあるアクセスを GPU に直接渡し (ビデオ メモリなど)、パフォーマンスに関係のない機能部分 (CSR や一部の MMIO レジスタなど) をインターセプトし、それらを mdev モジュールでシミュレートします。これにより、システム レベルで複数の「一見」完全な GPU PCIe デバイス (つまり、ネイティブ GPU ドライバーもサポートできる vGPU) を確認できます。


写真

➪ このソリューションの利点:

①1:Nの柔軟性を備え、

②高性能

③3Dレンダリング、一般的なコンピューティング、メディアのエンコードとデコードをサポートする完全な機能。

➪ このソリューションの欠点: ホストマシンの GPU ドライバーは GPU をシミュレートすることと同等であり、GPU ハードウェアはオープンソースではないため、この部分を提供できるのは GPU メーカーのみとなります。

業界の制御されたパススルー実装には、Nvidia の vGPU、Intel の GVT-g、Moore's Threads の MT Mesh 2.0 (MTT S3000 グラフィックス カード) などがあります。

<<:  人工知能技術が身元調査業界に革命を起こしている

>>:  5 分間の技術講演 | 顔認識についてどれくらい知っていますか?

ブログ    
ブログ    
ブログ    

推薦する

...

...

視覚的な手がかりに「マーカー」を追加することで、Microsoft と他の企業は GPT-4V をより正確かつ詳細にしました。

最近、大規模言語モデル (LLM) において大きな進歩が見られました。特に、Generative P...

1 つの記事で RNN (リカレント ニューラル ネットワーク) の基礎を理解する

[[211628]] 1. ニューラルネットワークの基礎ニューラル ネットワークは、あらゆる関数に適...

アンドリュー・ン:ディープラーニングの知識を完全に説明する 22 枚の写真

Andrew Ng 氏は、Tess Ferrandez 氏が修了したディープラーニング特別コースのイ...

JVM チューニングの概要: 新世代のガベージ コレクション アルゴリズム

ガベージコレクションのボトルネック従来の世代別ガベージ コレクション方式では、ある程度、アプリケーシ...

AIの不健全で偏った非倫理的な使用

CIO は非倫理的な AI の例を認識し、企業の AI が中立性を保つための自らの役割を理解する必要...

JSPフォーラムツリー構造を実装するための特定のアルゴリズム

1. JSP フォーラムのデモテーブルの構造: テーブル名: mybbslist フィールド データ...

建設業界におけるドローン

建設業界へのドローンの導入は、高度な建設手順を合理化することで業界に大きな変化をもたらしました。建設...

報告書は、2030年までにサイバーセキュリティの分野でAIが人間に取って代わる可能性があると予測している。

新型コロナウイルス肺炎の流行は社会全体の生産と生活に影響をもたらしています。企業は、感染拡大の影響を...

誇大広告か、効率か?サイバーセキュリティにおける人工知能の実用的応用

サイバーセキュリティにおける人工知能をめぐる誇大宣伝は、多くの専門家の間で不満を引き起こしています。...

NvidiaはArmの買収を断念すると報じられており、400億ドルの買収は危うい状況にある

Nvidia が Arm を 400 億ドルで買収する計画だというニュースを覚えていますか?この記事...

初のオープンソースMoE大型モデル公開! 7Bx8の専門家、GPT-4に最も近いエピソード

「今夜の予定は全部キャンセル!」多くのAI開発者は寝ないことを決意しました。最初のオープンソース M...

ワンクリックで動画をアニメーションに変換できるAIツールが人気。様々な格闘技の動きをスムーズに変換でき、無料でオンラインでプレイできます。

テキスト、画像、ビデオ、すべてをアニメーション化できます。見てください、ほんの少し前まで二人の男が格...

...