開啟GPU加速計算
GPU由于其特殊的硬件架構(gòu),在處理計算密集型、易于并行的程序上較CPU有很大的優(yōu)勢。
加速原理
數(shù)據(jù)庫中GPU并行加速是指對象級的并行,將單個字段的對象轉(zhuǎn)換為適合并行計算的模型,利用GPU超多核心的能力并行計算。
注意事項
對于并發(fā)數(shù)較大的場景,單個GPU設(shè)備會存在資源受限的情況,所以建議在會話中關(guān)閉GPU加速計算功能。
使用方法
Ganos是通過檢測GPU設(shè)備自動開啟GPU加速計算,在實現(xiàn)函數(shù)上沒有額外的參數(shù)設(shè)置,加速計算做到用戶透明無感知;同時Ganos提供會話級控制權(quán)限,由用戶決定是否啟用GPU加速計算。
- 確認(rèn)當(dāng)前環(huán)境是否有GPU設(shè)備。
- 創(chuàng)建ganos_raster擴展
create extension ganos_raster cascade
。 - 執(zhí)行SQL語句
select st_checkgpu()
。- 當(dāng)前環(huán)境檢測到GPU設(shè)備,成功返回GPU設(shè)備信息。
rasterdb=# select st_checkgpu(); st_checkgpu ------------------------------------------------------------------------------------------------------------------------------ [GPU(0) prop]multiProcessorCount=20; sharedMemPerBlock=49152; totalGlobalMem=-608239616; maxThreadsPerBlock=1024; maxThreadsPerMultiProcessor=2048; cudaThreadGetLimit=1024 . (1 row)
- 當(dāng)前環(huán)境未檢測到GPU設(shè)備,則返回錯誤信息。
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設(shè)備的環(huán)境才能啟用GPU加速計算。 - 當(dāng)前環(huán)境檢測到GPU設(shè)備,成功返回GPU設(shè)備信息。
- 創(chuàng)建ganos_raster擴展
- 開啟和關(guān)閉會話級GPU使用狀態(tài)。
如果是帶有GPU設(shè)備的環(huán)境,Ganos默認(rèn)開啟GPU加速計算,如果此時想關(guān)閉GPU加速計算,直接使用原來的CPU計算模式,則在會話中執(zhí)行
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加速計算,執(zhí)行
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)
- Ganos中實現(xiàn)GPU加速計算的模塊。 說明 目前GPU加速計算僅在Ganos的Raster模塊中應(yīng)用實現(xiàn),后續(xù)會增加Trajectory、Geometry模塊的應(yīng)用實現(xiàn)。
文檔內(nèi)容是否對您有幫助?