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 分間の技術講演 | 顔認識についてどれくらい知っていますか?

ブログ    
ブログ    
ブログ    

推薦する

...

Python、Java、C++がすべて含まれています。このGitHubプロジェクトは、複数の言語で古典的なアルゴリズムを実装しています。

古典的なデータ構造とアルゴリズムをいくつ知っていますか?大企業で面接を受けてみませんか?アルゴリズム...

マスク氏はOpenAIを訴えた。彼らはAGIを作成し、それをマイクロソフトにライセンス供与したが、これは設立協定に対する露骨な裏切りである。

つい先日、「劇的な対立に耽溺する」マスク氏は新たな行動を起こした。共同設立者の一人であるOpenAI...

OpenAIは静かにその中核となる価値観を改訂し、汎用人工知能の構築に注力する

10月16日、OpenAIはひっそりと「コアバリュー」のリストを変更し、これまで明示的に挙げられてい...

...

AIとMLの自動化テストを加速する5つの方法

[[395482]] [51CTO.com クイック翻訳]近年、人工知能 (AI) と機械学習 (M...

次世代産業用ロボットに対する人工知能(AI)の影響

[[389728]]大量生産される製品に対する需要が高まるにつれ、製品には高品質で信頼性が高く、より...

ビジネスに人工知能を導入する際に考慮すべき3つの要素

最近、ますます多くの企業が人工知能に投資しています。しかし、成功するには、推論の解釈可能性、データ密...

張 楊: カーディナリティ推定アルゴリズムの概要

繰り返し項目を含む巨大なデータセットがあり、それが大きすぎてメモリに収まらないとします。ここで、この...

スーパードライグッズ: データサイエンスの全体像を概観する記事: 法則、アルゴリズム、問題の種類...

Pradeep Menon 氏は、ビッグデータ、データ サイエンス、データ アーキテクチャの分野で...

...

労働者はなぜ人工知能を恐れるべきなのでしょうか?

人工知能の概念は何年も前から存在しています。SF映画に出てくるような高度なロボットはまだ登場していま...

年末コレクション!アンドリュー・ンが2020年に最も注目されたAIイベントをレビュー

この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...

新しいアルゴリズムと産業チェーン市場が立ち上げられ、ArcSoft Open Platformは「技術の開放+産業のエコロジー」の新たな段階を切り開きます。

現在、業界のビジュアル AI に対する焦点は最先端技術から産業エコロジーへと移行しており、これはビ...