GDAL使用OpenCL开启GPU加速

本文指导如何在GDAL中启用OpenCL利用GPU提升计算效率,包括检查显卡支持、安装Intel SDK for OpenCL、修改源码配置并编译安装。重点介绍如何在nmake.opt和makefile.vc中添加OpenCL支持,适合对GDAL和GPU加速感兴趣的开发者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

GDAL可以借助OpenCL,对特定重采样方法(只记得最邻近不行,三次卷积可以,双线性忘了),使用GPU提升计算效率

需要

  • GDAL源码
  • OpenCL
  • Visual Studio
  • SQLite(可选)
  • PROJ(可选)

1、查看自己电脑的显卡配置支不支持OpenCL
方法很多,可以自行百度。我是下载TechPowerUp GPU-Z(点击链接进入下载页)查看OpenCL项目前有没打勾
在这里插入图片描述
2、安装OpenCL
可以使用Intel,Nvidia官网都能下,也能用CUDA里带的。我用的Intel家的Intel® SDK for OpenCL,选择符合你本地系统的SDK下载(需要自行注册账号),安装。
安装过程没啥需要注意的,一路next,凭感觉勾选一些选项,最后会安装一个system studio到目标路径下,最关键的OpenCL SDK就在里边
在这里插入图片描述
3、下载GDAL源码
官网下载地址,看你的网络情况,可能需要挂梯子。这里可以选择3.X版本的或者2.X版本的,区别在于2.X版本不需要SQLite和PROJ依赖,如果选择3.X版本还需要额外安装这俩东西,安装方法见这个文章的相关内容。
注意! proj如果使用 OSGeo4W安装,不要下载9版本的,下载6版本的。9版本不再默认生成lib文件。如果你真的想用9版本,可以自己编译并设置BUILD_SHARED_LIBS选项。
下载压缩包,找个地方解压
在这里插入图片描述
4、修改GDAL源码
这里默认你安装的2.X版本或者已经按照第三步链接里的教程安装好了SQLite和PROJ并在源码里做了相应配置。
使用文本编辑软件打开nmake.opt,修改GDAL_HOME的值,修改为你希望打包到的路径

GDAL_HOME = "C:\programs\GDAL\gdal-3.5.0-build"

搜索 END OF STUFF THAT NORMALLY NEEDS TO BE UPDATED ,在该行前面添加以下代码

# Uncomment for OPENCL_AMD support
!IFDEF INCLUDE_OPENCL
OPENCL_DIR="C:\Program Files (x86)\IntelSWTools\system_studio_2020\OpenCL\sdk"
OPENCL_CFLAGS = -I$(OPENCL_DIR)/include -DHAVE_OPENCL
OPENCL_LIB    = $(OPENCL_DIR)/lib/x64/OpenCL.lib
!ELSE
OPENCL_DIR=
OPENCL_CFLAGS = -I
OPENCL_LIB     = 
!ENDIF

其中OPENCL_DIR指向你的OpenCL sdk路径,下面的OPENCL_LIB是从OPENCL_DIR到OpenCL.lib文件的相对路径。
然后在上面那行代码(END OF STUFF THAT NORMALLY NEEDS TO BE UPDATED)的下面添加下面的代码

# liml
!IFDEF INCLUDE_OPENCL
OPENCL_FLAG = -DHAVE_OPENCL
!ENDIF

在这里插入图片描述
搜索 CFLAGS,在该项赋值的代码等号右侧加上 $(OPENCL_FLAG)
在这里插入图片描述

搜索EXTERNAL_LIBS,照上面在最后加上 $(OPENCL_LIB)
在这里插入图片描述
修改alg目录下的makefile.vc,搜索OBJ,等号后加上 gdalwarpkernel_opencl.obj
在这里插入图片描述
5、编译
找到VS的x64 Native Tools Command Prompt for VS 2022,右键使用管理员运行,cd到你的gdal包,依次运行以下命令

nmake /f makefile.vc clean
nmake /f makefile.vc
nmake /f makefile.vc install
nmake /f makefile.vc devinstall

若无报错,会在你设置的GDAL_HOME路径下生成如下几个包:
在这里插入图片描述
6、测试
cd到上面生成的bin目录下,使用amd运行测试语句,参数里坐标参考和文件路径看着改

gdalwarp -t_srs EPSG:3857 C:\test.tif C:\test_out.tif -wo USE_OPENCL=TRUE -wt Float32 --debug on -r cubic

若出现OpenCL相关的日志输出,就成了
在这里插入图片描述
参考

  • https://blog.51cto.com/u_15469043/4892922
  • https://blog.youkuaiyun.com/qq_46209262/article/details/123489785
  • https://blog.youkuaiyun.com/Icesteam/article/details/112055345
  • https://blog.youkuaiyun.com/xiaozy12/article/details/108843224
  • https://www.javaer101.com/en/article/49652084.html
  • https://stackoverflow.com/questions/62439753/how-to-compile-and-use-gdal-with-gpu-supportopencl
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值