Hello everyone. My name is Victor Oliveira. I'm a master's student at
the School of Electrical and Computer Engineering - University of
I work with Image Processing and Machine Learning and I've been using
GPUs (CUDA) in my work since 2009. More recently, we've migrated our
projects to OpenCL, which has given me more experience with GPU
programming. I have a strong background in C/C++ and Python.
Also, I've been using GEGL for some time in my projects. I noticed a
while ago that there is a branch
[http://git.gnome.org/browse/gegl/tree?h=gsoc2009-gpu] that wasn't
merged in GEGL's main tree.
If I understood it correctly, this specific branch is able to do
pixelwise operations using OpenGL shaders and automatic memory
management beetween the cpu and gpu. My idea is to use this memory
management scheme to allow gegl operations with OpenCL. I've already
presented this idea in #gegl without further details and I'd like to
discuss it here.
The first step would be adapting the existing code and re-implementing
the pixelwise operations in OpenCL. Meanwhile, we have to remember
that OpenCL can be compiled to run in the cpu also, so we don't need
to make memory transfers in this case.
After this, we can make more complex operations, like convolutions,
color corrections, etc. I think the objective is to do as many
operations as possible in the gpu, in order to avoid costly memory
transfers using PCIe (although some new architectures like Fusion
share the same memory space).
So, what do you think about this project? I'd like to receive as many
suggestions as possible :)
Also, if you guys think this project isn't a good idea, I'm willing to
port GIMP plugins to GEGL operations. Let's see what happens here :)
Gimp-developer mailing list