Spatial Analyst での GPU 処理

Spatial Analyst のライセンスで利用可能。

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

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

GPU 処理とは

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

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

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

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

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

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

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

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

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

GPU の構成

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

システムに複数の GPU が搭載されている場合、デフォルトでは TCC (Tesla Compute Cluster) ドライバー モードの最初の GPU が使用されます。TCC ドライバー モードで使用できる GPU がない場合は、特に指定しない限り、最初の GPU (インデックス 0) が使用されます。GPU の指定や無効化については、以下をご参照ください。

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

環境変数 CUDA_VISIBLE_DEVICES の詳細については、「CUDA Toolkit Programming Guide nvidia.com」をご参照ください。

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

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

NVIDIA GPU の場合、計算に使用する GPU は、デフォルトの WDDM (Windows Display Driver Model) ドライバーではなく、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 キーが存在しない場合は、このパスに作成する必要があります。このレジストリ値を作成または変更するときは、まずレジストリをバックアップする必要があります。この変更を有効にするには、コンピューターを再起動する必要があります。TDR 遅延 microsoft.com の設定については、Microsoft Developers Network をご参照ください。

注意:

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

関連トピック