[Qgis-developer] Using the power of GPU/OpenCL

jr.morreale at enoreth.net jr.morreale at enoreth.net
Fri Aug 12 08:07:07 EDT 2011


 On Fri, 12 Aug 2011 13:50:41 +0200, Martin Dobias wrote:
> Hi Andreas
>
> On Fri, Aug 12, 2011 at 11:28 AM, Andreas Neumann
> <a.neumann at carto.net> wrote:
>> Hi,
>>
>> Now that Martin is including Multithreading Support, I am also 
>> wondering if
>> it would be feasible to also profit from the computing power of GPUs 
>> and
>> libraries, such as OPENCL. Seems like mobile devices, servers and 
>> regular
>> desktops would benefit. Would the Qgis architecture allow the usage 
>> of
>> OpenCL?
>>
>> I am not a dev, but am reading about these new technical options ...
>
> Given that more and more computers come with powerful GPUs it really
> makes sense to explore what are the possibilities for speed
> improvements. In general you can either use a library that implements
> some algorithms on GPU or you can start writing your own GPU code for
> the algorithm (or some parts of it).
>
> The speedup will vary greatly depending on the algorithm. Things like
> 3D rendering, image processing, video compression etc. are perfectly
> suited for GPU implementation because one computationally intensive
> routine is used in parallel for millions of independent pixels.
> However many other algorithms will not perform better on GPU. These
> are typically the ones that are not parallel or their bottleneck is
> not in computation - many algorithms have bottlenecks in I/O or they
> need to wait for some resources.
>
> First we would have to identify what is slow and should be optimized.
> Then do some profiling to find out in what parts most of the time is
> spent. If those parts are computationally intensive and 
> parallelizable
> then it is a candidate for GPU implementation. My impression is that
> there are very few places in QGIS where we would gain performance 
> with
> GPU because typically we delegate computation to underlying libraries
> and/or the slowness is caused by I/O. And various pieces of
> functionality are slow just because inefficient or naive algorithms
> are used.
>
> When implementing an algorithm on GPU we still would need to provide
> original implementation if no OpenCL-capable device is found. So this
> adds additional burden on maintainance to ensure that both CPU and 
> GPU
> implementations give equivalent results.
>
> To summarize: yes, it would be possible to use GPU for some tasks, 
> but
> GPU is not a magic wand. Computationally intensive tasks really can 
> be
> improved (even by factors of 100), but many other tasks would not get
> faster.
>
> What are the areas where you think QGIS should be faster?
>
> Martin

 Since PAL is now more or less a QGIS only feature, would an 
 opencl/multithread path be an improvment ?

 On the lib side, the work on opencl's use in gdal for resampling is a 
 cool point too.



More information about the Qgis-developer mailing list