Proposals:GPU Integration: Difference between revisions

From KitwarePublic
Jump to navigationJump to search
No edit summary
 
(One intermediate revision by the same user not shown)
Line 12: Line 12:


Since the acceleration requires to hand-craft the code, this will only be implemented for a few selected algorithms that are considered to be critical for the benefit of the ITK community.
Since the acceleration requires to hand-craft the code, this will only be implemented for a few selected algorithms that are considered to be critical for the benefit of the ITK community.
By the end of 2008, the first version of the OpenCL standard was published. Quoting [http://www.khronos.org/opencl/ the OpenCL site]:
''OpenCL (Open Computing Language) is the first open, royalty-free standard for general-purpose parallel programming of heterogeneous systems. OpenCL provides a uniform programming environment for software developers to write efficient, portable code for high-performance compute servers, desktop computer systems and handheld devices using a diverse mix of multi-core CPUs, GPUs, Cell-type architectures and other parallel processors such as DSPs.''
OpenCL may be useful to have a more generic approach to writing parallel code for ITK, and a refactoring of the current multi-threading mechanism could be possible.


== Resources ==
== Resources ==
Line 21: Line 27:


* [http://techresearch.intel.com/articles/Tera-Scale/1514.htm Intel Ct Home]
* [http://techresearch.intel.com/articles/Tera-Scale/1514.htm Intel Ct Home]
* [http://www.khronos.org/opencl/ OpenCL Home]


= Wishlist =
= Wishlist =

Latest revision as of 20:01, 3 June 2009

The Opportunity

GPUs offer the opportunity for accelerating the execution of certain ITK filters.

Proposal

In collaboration with Interactive Supercomputing we are looking into the possibility of adding GPU acceleration to particular algorithms in ITK.

The Methodology

The methodology suggested so far, is to take advantage of the Factory mechanism built-in ITK to create specialized versions of specific image filter. These specialized versions will take advantage of a GPU-based implementation.

Since the acceleration requires to hand-craft the code, this will only be implemented for a few selected algorithms that are considered to be critical for the benefit of the ITK community.

By the end of 2008, the first version of the OpenCL standard was published. Quoting the OpenCL site:

OpenCL (Open Computing Language) is the first open, royalty-free standard for general-purpose parallel programming of heterogeneous systems. OpenCL provides a uniform programming environment for software developers to write efficient, portable code for high-performance compute servers, desktop computer systems and handheld devices using a diverse mix of multi-core CPUs, GPUs, Cell-type architectures and other parallel processors such as DSPs.

OpenCL may be useful to have a more generic approach to writing parallel code for ITK, and a refactoring of the current multi-threading mechanism could be possible.

Resources

Wishlist

We are looking for your feedback to define the list of algorithms that are good candidates for GPU acceleration.

Please add here the types of applications that you would consider to be good candidates for creating GPU-based specialized implementations.

  • Deformable registration
  • Level Sets
  • Hessian-based vessel enhancement (ie. Hessian Recursive Gaussian and Hessian 3D To Vesselness Measure)
  • Image smoothing