Re: VIPS and GEGL performance and memory usage comparison

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Feb 1, 2016 at 10:35 PM, Daniel Rogers <daniel@xxxxxxxxxxxxxxxxx> wrote:
>>>   * Anyone can do dynamic compilation nowadays with llvm.  Imagine
>>>
>>>     taking the gegl dynamic tree, and compiling it into a single LLVM
>>>     dynamically compiled function.
>>
>> What exactly do you mean? How is this supposed to work and where is the
>> performance advantage if done at runtime?
>
> To your first question. I made that statement as a counterpoint to vips
> turning a convolution kernel into a set of sse3 instructions and executing
> them.
>
> I believe, though haven't proven rigorously, that a gegl graph is
> homomorphic to a parse tree of an expression language over images.

For a subset of operation this might work, but not for generic ops -
that possibly use shared libraries rather than arithmetic in their
implementation, an approach that might work out for some of the subset
and permit reusing existing infrastructure in GEGL is to recombine the
cores of OpenCL point filters/composers and submit one image
processing kernel for OpenCL compilation - which for many(/most?)
OpenCL implementations would end up using LLVM in the background.

This is however different from my complaint of the benchmark
comparison - where VIPS is using a 3x3 convolution kernel, and the
GEGL code uses gegl:unsharp-mask which is : gegl:gaussian blur + a
point composer .. which in turn is a horizontal blur, and a vertical
blur + a point composer. Comparing a 3x3 area op with a composite much
more general purpose sharpening filter that can do (and already for
the parameters provided) would do larger input area as well as by its
nature have more temporary buffers is not a proper apples to oranges
comparison. Adding a gegl:3x3-convolution (or adapting
gegl:convolution-matrix to detect the extent of the kernel) might make
GEGL perform closer to VIPS on this benchmark which caters well to
VIPS features. I do however not think we should add "hard-coded" 3x3
sharpen/blur ops in GEGL.

/pippin
_______________________________________________
gegl-developer-list mailing list
List address:    gegl-developer-list@xxxxxxxxx
List membership: https://mail.gnome.org/mailman/listinfo/gegl-developer-list




[Index of Archives]     [Yosemite News]     [Yosemite Photos]     [gtk]     [GIMP Users]     [KDE]     [Gimp's Home]     [Gimp on Windows]     [Steve's Art]

  Powered by Linux