Kernel Template Library

Kernel Template Library is a set of headers defining a methodology for defining High Level helper objects (Point, Matrix, etc.) and using them to express the algorithm of a Kernel.  It can then apply that kernel to each element of its data streams in a data parallel manner:  vectorized, threaded, vectorized + threaded, or serial (for non vectorizing compilers or comparison).
Data streams can be laid out in memory as Multiple Arrays, Arrays of Structures, Tiled Structore of Arrays, or even a Mix of layouts.  By providing a template specialization for the Converter<> users can add their own High Level objects for use in KTL.  Utilizes only c++0x standard features allowing other compilers to still compile the kernel code.

KTL and its supporting tests demonstrate techniques discussed in the presentation "Getting More out of your CPU – Using Intel® C++ Composer XE to Maximize Code Vectorization and Improve Application Performance" available at
/en-us/articles/intel-software-development-products-technical-presentations

A zip file containing KTL and supporting unittests is attached.
Intent is to let the unit tests demonstrate usage and results.
Also check back for newer versions of KTL expanding its support.

Tags:
AttachmentSize
Download ktlv0.2.zip129.57 KB
For more complete information about compiler optimizations, see our Optimization Notice.

Comments