[gdal-dev] Resampling on the GPU using Apple Metal

John Daniel jdaniel at etresoft.com
Thu Mar 5 14:05:59 PST 2020


Hello everyone, 
I am investigating adding support for Apple Metal to GPU resampling in GDAL. This is what I've learned so far:

1) Currently, OpenCL is only used for resampling operations via gdalwarp. RasterIO resampling via gdal_translate does not use OpenCL. This makes gdal_translate, and RasterIO, much slower for resampling operations.
2) Not even taking OpenCL into account, there are two independent resampling paths. Resampling via RasterIO uses routines in gcore/overview.cpp. Resampling via warp uses a different set of resampling implementations in alg/gdalwarpkernel.cpp, for the same resampling algorithms.

So, if I wanted to implement a new set of resampling routines using Apple Metal, is there a reason why I should not implement it in the overview.cpp path and then have warp use that same path for resampling? Am I missing something? Is one set of resampling implementations better than the other?

Thanks!

John Daniel
Etresoft, Inc.



More information about the gdal-dev mailing list