Spatial Analyst による GPU 処理

ArcGIS AllSource は、いくつかのツールで GPU (グラフィックス処理装置) 処理を使用することにより、高いパフォーマンスを実現するようになりました。 このテクノロジは、最新コンピューターのグラフィックス カードの処理能力を利用して、特定の操作のパフォーマンスを向上させます。

現在、次のツールが GPU 処理をサポートしています。

GPU 処理

GPU は、スクリーン ディスプレイにおけるグラフィックス レンダリングの高速化を目的とした、コンピューターのハードウェア コンポーネントです。 最近、GPU の処理能力は一般的な計算タスクの実行に向けられてきています。

GPU によって処理を高速化するツールの場合、ラスター処理タスクは CPU (中央処理装置) ではなく GPU に向けられます。 特定のタイプの操作では、この方法からメリットが得られます。 そのような場合は、ソフトウェアが処理タスクを多数の小さい部分に分割し、それらが計算のために GPU に送信されます。 GPU はこれらの小さい部分のすべてに対して並行して高速で計算を実行します。 結果のデータが戻されると、ソフトウェアが個々のコンポーネントを再構築して、最終的な完成プロダクトにします。

サポートされている GPU カードとドライバー

GPU 処理には、利用可能なさまざまなソリューションがあります。 現在、このツールでは、バージョン 5.2 以降の CUDA 計算機能付き NVIDIA GPU のみがサポートされています。 この機能にアクセスするには、システムに適切なカードがインストールされている必要があります。

Windows コンピューター上のグラフィックス カードのタイプを確認するには、システムのデバイス マネージャーを開き、ディスプレイ アダプターを展開します。 そこに、グラフィックス カードのブランド名とタイプが表示されます。 NVIDIA ブランドのグラフィックス カードが表示されない場合は、この機能にアクセスできず、ツールは CPU を使用します。

NVIDIA グラフィックス カードが表示された場合は、NVIDIA のコントロール パネルを使用して、システムにインストールされている GPU のタイプを確認します。

  1. デスクトップの空白の領域を右クリックします。
  2. ショートカット メニューで、[NVIDIA Control Panel] をクリックします。
  3. コントロール パネルのウィンドウで、Help メニューに移動して、[System Information] をクリックします。 すべての NVIDIA グラフィックス カード、それらのドライバー バージョン、および他のプロパティが表示されます。

NVIDIA GPU カードのタイプを確認したら、CUDA GPU の NVIDIA のヘルプ ページでその CUDA 計算機能を検索します。 関連するセクションで、自分の GPU カードを見つけ、それに表示されている計算機能の値に注目します。 ツールでサポートされるには、5.2 以上でなければなりません。

GPU カードがコンピューターにインストールされる際には、デフォルトのドライバーが実装されます。 GPU を使用する解析ツールを実行する前に、NVIDIA ドライバー アップデート ページで、GPU カードのドライバーを利用可能な最新バージョンに更新する必要があります。

GPU の構成

ツールは、計算のために 1 つの GPU を使用します。 ただし、コンピューターに GPU が 1 つだけ搭載されている場合は、その GPU がディスプレイと計算の両方に使用されます。 その場合は、ツールの実行時に警告メッセージが表示され、ディスプレイが応答しなくなる可能性があることが通知されます。 空間解析では 2 つの GPU (1 つはディスプレイ用、もう 1 つは計算用) を使用することをお勧めします。

システムに複数の GPU が搭載されている場合、2 つのシステム環境変数によって、CUDA_DEVICE_ORDERCUDA_VISIBLE_DEVICES のいずれを使用するかが決定されます。

デフォルトでは、CUDA_DEVICE_ORDER システム環境変数は FASTEST_FIRST に設定されています。 これは、コンピューター内の複数の GPU が、最速から最低速まで、0 から始まる番号を付与されることを意味します。 コンピューターに GPU がインストールされている方法に基づいて GPU に番号を付与するには、CUDA_DEVICE_ORDER 環境設定を PCI_BUS_ID に変更します。

Tesla Compute Cluster (TCC) の GPU は、デフォルトの Windows ディスプレイ ドライバー モデル (WDDM) の GPU より高速であると考えられます。 したがって、この GPU は先頭 (インデックス 0) にリストされ、デフォルトでツールの実行に使用されます。 TCC ドライバー モードで使用できる GPU がなく、CUDA_DEVICE_ORDER 環境をデフォルト設定のままにした場合は、特に指定しない限り、最速の GPU (インデックス 0) が使用されます。

GPU を指定するか無効にするには、以下の手順で、CUDA_DEVICE_ORDER および CUDA_VISIBLE_DEVICES システム環境変数を設定してください。

  • 別の GPU を使用する場合は、CUDA_VISIBLE_DEVICES システム環境変数でその GPU を指定します。 そのためには、まずこの環境変数を作成します (システムにまだ存在しない場合)。 次に、その値を、使用したい GPU デバイスを表すインデックス値 (最初の GPU の場合は 0、2 つ目の GPU の場合は 1、以下同様) に設定して、アプリケーションを再起動します。 インデックス値は、CUDA_DEVICE_ORDER システム環境変数で決められた順序に依存します。 CUDA_DEVICE_ORDER の値の変更は、CUDA_VISIBLE_DEVICES システム環境変数の場合と同じ手順で行います。
  • システムにインストールされている GPU デバイスを解析で使用したくない場合は、CUDA_VISIBLE_DEVICES システム環境変数を -1 に設定して、アプリケーションを再起動します。 ツールは CPU だけを使用して実行されます。
  • ツールが再び GPU デバイスを使用できるようにするには、CUDA_VISIBLE_DEVICES システム環境変数を削除するか、変数の値を、使用したい GPU デバイスのインデックス値に設定して、アプリケーションを再起動します。

CUDA_VISIBLE_DEVICES および CUDA_DEVICE_ORDER システム環境変数の詳細については、「CUDA Toolkit Programming Guide」をご参照ください。

次の各サブセクションでは、GPU 機能の使用時に最適な処理を実現するための推奨構成手順について説明します。

TCC ドライバー モードを設定する

NVIDIA GPU の場合、計算に使用する GPU は、デフォルトの WDDM ドライバーではなく、TCC ドライバーに設定します。 TCC モードでは、GPU はより効率的に動作します。

TCC ドライバー モードを有効にするには、NVIDIA System Management Interface 制御プログラムを使用します (通常 C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe にあります)。 たとえば、コマンド 'nvidia-smi -dm 1 -i 2' はデバイス ID 2 のカードをディスプレイ モード 1 (TCC) に切り替えます。

注意:

ArcGIS Server を実行している場合、計算に使用する GPU は TCC ドライバー モードでなければなりません。

ECC モードを無効にする

計算に使用する GPU の ECC (誤り訂正符号) モードを無効にします。これは、ECC モードが有効であると、GPU 上の利用可能なメモリが減少するためです。

ECC モードを無効にするには、NVIDIA System Management Interface (nvidia-smi) 制御プログラムを使用します (通常 C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe にあります)。 たとえば、コマンド 'nvidia-smi -e 0 -i 1' はデバイス ID 1 の GPU の ECC モードを無効にします。

TDR 設定を大きくする

計算に使用する GPU が WDDM ドライバー モードである場合、計算に数秒以上かかると、Windows ディスプレイ デバイス ドライバーが GPU を再起動する可能性があります。 これは Windows タイムアウト検出と回復 (TDR) 状態と呼ばれています。 これが発生した場合は、ツールの実行が完了せず、GPU エラーが返されます。

レジストリ キー TdrDelay を変更して、この状況を回避できます。 このレジストリ キーを適切な値 (たとえば、60 秒) に設定すると、TDR 状態が引き起こされるまでに長い操作を完了するための時間を確保できます。 ほとんどの Windows システムでは、レジストリの TdrDelay キーへのパスは HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers です。 TdrDelay キーが存在しない場合は、このパスに作成する必要があります。 このレジストリ値を作成または変更するときは、まずレジストリをバックアップします。 この変更を有効にするには、コンピューターを再起動する必要があります。 詳細については、Microsoft 開発者向けドキュメントの「タイムアウトの検出と回復 (TDR)」をご参照ください。

注意:

Esri は、レジストリを不適切に変更した場合に発生するシステムの問題について責任を負いません。 問題が発生したときに回復できる有効なレジスト バックアップを作成していることを確認してください。または、適格なシステム アナリストに変更を依頼してください。