Proposals:GPU Integration: Difference between revisions

From KitwarePublic
Jump to navigationJump to search
No edit summary
 
(6 intermediate revisions by 4 users not shown)
Line 2: Line 2:


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


GPUs offer the opportunity of accelerating the execution of certain ITK filters
= Proposal=
In collaboration with [http://www.interactivesupercomputing.com/ 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.


= Proposal=
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 ==
* [http://www.nvidia.com/object/cuda_home.html NVIDA CUDA Home]
* [http://developer.download.nvidia.com/compute/cuda/Photoshop/CUDAFilters4.pdf Building Photoshop Plugins in CUDA]


Introduce specialized version of certain existing classes in ITK that will take advantage of a GPU-based implementation.
* [http://sourceforge.net/projects/amdctm ATI CTM Sourceforge project]
* [http://ati.amd.com/companyinfo/researcher/documents/ATI_CTM_Guide.pdf ATI CTM Manual]


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


= Wishlist =
= 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.
Please add here the types of applications that you would consider to be good candidates for creating GPU-based specialized implementations.
Line 16: Line 36:
* Deformable registration
* Deformable registration
* Level Sets
* Level Sets
* Hessian-based vessel enhancement (ie. Hessian Recursive Gaussian and Hessian 3D To Vesselness Measure)
* Image smoothing

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