Skip to main content

Spatial Analyst での GPU 処理

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

3D Analyst ライセンスで利用可能。

ArcGIS Pro は、いくつかのツールで 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. ショートカット メニューの その他のオプションの表示 をクリックします (またはキーボードの Shift + F10 を押します)。

  3. NVIDIA コントロール パネル をクリックします。

  4. コントロール パネルのウィンドウで、ヘルプ メニューに移動して、システム情報 をクリックします。

    すべての NVIDIA グラフィックス カード、それらのドライバー バージョン、および他のプロパティが表示されます。

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

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

GPU の構成

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

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

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

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