An OpenCL-based C++ Framework for Overhead-Reduced Medical Image processing and Reconstruction on heterogeneous Devices
What is OpenCLIPER?
OpenCLIPER is an OpenCL-based framework for medical image processing and reconstruction. Its goal is to simplify OpenCL burdens to let developers focus on the real thing: OpenCL kernels.
Why should I use OpenCLIPER?
If you are in medical image processing, you are probably using a GPU somehow. While there are high-level approaches to GPU image processing (such as pyCUDA, pyOpenCL, BART or Matlab), sometimes you need to control it all to squeeze all the GPU power out. In these cases, CUDA and OpenCL come to the rescue but:
- CUDA is tied to GPU class devices from nVidia Corporation.
- OpenCL is device independent (as long as there is an implementation for it), but there is a lot of stuff to care about: multiple platforms, multiple devices, contexts, command queues, data transfers, memory management, etc.
OpenCLIPER is OpenCL (hence its name). As such, it works on any device for which there is an OpenCL implementation (CPUs, GPUs, DSPs, FPGAs, etc) but handles automatically device discovery and initialization, data transfers to and from the device, kernel loading, compiling and error reporting, etc, so you can focus on developing kernels.
Have a look at the architecture page for more details.
What license is OpenCLIPER released under?
OpenCLIPER is released under the GPLv3 license.
How do I get started?
OpenCLIPER is publicly available at opencliper.lpi.tel.uva.es. Once downloaded and decompressed, have a look at the [architecture] page to see what OpenCLIPER can do for you, and then head to the tutorial to start writing some kernels. OpenCLIPER will handle most everything else for you!