特別なハードウェアアーキテクチャにより、GPU は CPU に比べて、計算集約型で並列化が容易なコードの処理において大きな利点があります。

高速化の原理

データベースでは、GPU 並行加速はオブジェクトレベルで実行されます。 Ganos はフィールドオブジェクトをパラレルコンピューティングに適したモデルに変換し、パラレルコンピューティングに GPU の複数のコアを使用します。 次の図は、パラレルコンピューティングのプロセスを示しています。高速化の原理

注記

1 つの GPU のリソースは限られています。 したがって、同時実行性の高いシナリオでは、セッションで GPU アクセラレーテッドコンピューティングを無効にすることを推奨します。

手順

GPU を検出すると、Ganos は自動的に GPU アクセラレーテッドコンピューティングを有効にします。 パラメーターの設定は必要ありません。 GPU アクセラレーテッドコンピューティングは透明であり、目に見えません。 さらに、Ganos では、GPU アクセラレーテッドコンピューティングをセッションレベルで有効または無効にすることができます。
  1. 現在の環境で GPU が利用できるかを確認します。
    1. create extension ganos_raster カスケード文を実行して、Ganos Raster エクステンションを作成します。
    2. select st_checkgpu() 文を実行します。
      • Ganos が現在の環境で GPU を検出すると、GPU の情報を返します。
        rasterdb=# select st_checkgpu();
                            st_checkgpu                                                                                       
        ------------------------------------------------------------------------------------------------------------------------------
         [GPU(0) prop]multiProcessorCount=20; sharedMemPerBlock=49152; totalGlobalMem=-608239616; maxThreadsPerBlock=1024; maxThreadsPerMultiProcessor=2048; cudaThreadGetLimit=1024.
        (1 row)
      • Ganos が現在の環境で GPU を検出しなかった場合はエラーメッセージが返されます。
        rasterdb=# select st_checkgpu();
                           st_checkgpu                                                                
        ------------------------------------------------------------------------------------------------------------------------------------------ 
        There is not gpu device on current environment, cuda_errorcode=35, errormsg=CUDA driver version is insufficient for CUDA runtime version.
        (1 row)
      GPU アクセラレーテッドコンピューティングは、GPU が利用可能な環境でのみ有効にできます。
  2. GPU アクセラレーテッドコンピューティングをセッションレベルで有効または無効にします。
    • GPU を利用可能な環境では、Ganos の既定値では、GPU アクセラレーテッドコンピューティングが有効になるように設定されています。 GPU アクセラレーテッドコンピューティングを無効にして元の CPU コンピューティングモードを使用するには、セッションで次の操作を行います。

      set ganos.raster.use_cuda=off 文を実行します。
      rasterdb=# set ganos.raster.use_cuda=off;
      SET
      rasterdb=# show ganos.raster.use_cuda;
       ganos.raster.use_cuda 
      -----------------------
       off
      (1 row)
    • GPU アクセラレーテッドコンピューティングを再度有効にするには、set ganos.raster.use_cuda=on 文を実行します。
      rasterdb=# set ganos.raster.use_cuda=on;
      SET
      rasterdb=# show ganos.raster.use_cuda;
       ganos.raster.use_cuda 
      -----------------------
       on
      (1 row)
  3. Ganos モジュールに GPU アクセラレーテッドコンピューティングを実装します。
    現在、GPU アクセラレーテッドコンピューティングは Ganos Raster モジュールでのみ実装できます。 GPU アクセラレーテッドコンピューティングは、Ganos Trajectory モジュールと Ganos Geometry モジュールで将来サポートされる予定です。