全部產品
Search
文件中心

PolarDB:開啟GPU加速計算

更新時間:Oct 17, 2024

GPU由於其特殊的硬體架構,在處理計算密集型、易於並行的程式上較CPU有很大的優勢。

加速原理

資料庫中GPU並行加速是指對象級的並行,將單個欄位的對象轉換為適合并行計算的模型,利用GPU超多核心的能力並行計算。

注意事項

對於並發數較大的情境,單個GPU裝置會存在資源受限的情況,所以建議在會話中關閉GPU加速計算功能。

使用方法

GanosBase是通過檢測GPU裝置自動開啟GPU加速計算,在實現函數上沒有額外的參數設定,加速計算做到使用者透明無感知。同時GanosBase提供會話級控制許可權,由使用者決定是否啟用GPU加速計算。

  1. 確認當前環境是否有GPU裝置。

    1. 建立ganos_raster擴充create extension ganos_raster cascade

    2. 執行SQL語句select st_checkgpu()

      • 當前環境檢測到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)
      • 當前環境未檢測到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裝置的環境,GanosBase預設開啟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. GanosBase中實現GPU加速計算的模組。

    說明

    目前GPU加速計算僅在GanosBase的Raster模組中應用實現,後續會增加Trajectory、Geometry模組的應用實現。