Spatial Analyst での GPU 処理

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

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

GPU 処理

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

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

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

GPU 処理ではさまざまなソリューションを利用できます。 現在、このツールではバージョン 5.2 の CUDA 計算機能 (最小) を搭載した NVIDIA GPU のみがサポートされています。 この機能にアクセスするには、システムに適切なカードがインストールされている必要があります。 日射量解析で、GPU パフォーマンスのさらなる向上を最大限に活用するには、バージョン 7.0 以降の CUDA 計算機能をお勧めします。

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

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

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

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

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

GPU の構成

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

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

デフォルトでは、システム環境変数 CUDA_DEVICE_ORDERFASTEST_FIRST に設定されています。 つまり、コンピューターに複数の GPU が搭載されている場合、速度が速いものから順に、0 から始まる番号が付きます。 コンピューターへのインストール方法に基づいて GPU に番号を付けるには、環境設定 CUDA_DEVICE_ORDERPCI_BUS_ID に変更します。

Tesla Compute Cluster (TCC) の GPU がデフォルトの Windows ディスプレイ ドライバー モデル (WDDM) より高速であると見なされます。 このため、Tesla Compute Cluster (TCC) の 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 は、レジストリを不適切に変更した場合に発生するシステムの問題について責任を負いません。 問題が発生したときに回復できる有効なレジストリ バックアップを作成していることを確認してください。または、適格なシステム アナリストに変更を依頼してください。