by Vadim Karpusenko
3. May 2013 17:56
Complete paper:
Colfax_Static_Libraries_Xeon_Phi.pdf (425.6 kb)
Statically-linked libraries are used in business and academia for security, encapsulation, and convenience reasons.
Static libraries with functions offloadable to Intel Xeon Phi coprocessors must contain executable code for both the host and the coprocessor architecture.
Furthermore, for library functions used in data-parallel contexts, vectorized versions of the functions must be produced at the compilation stage.
This white paper shows how to design and build statically-linked libraries with functions offloadable to Intel Xeon Phi coprocessors.
In addition, it illustrates how special functions with scalar syntax (e.g., y=f(x)) can be implemented in such a way that user applications can use them in thread- and data-parallel contexts.
The second part of the paper demonstrates some optimization methods that improve the performance of functions with scalar syntax on the multi-core and the many-core platforms: precision control, strength reduction, and algorithmic optimizations.
Complete paper:
Colfax_Static_Libraries_Xeon_Phi.pdf (425.6 kb)
by Andrey Vladimirov
12. March 2012 13:01
Complete paper:
Colfax_Sandy_Bridge_AVX.pdf (632.23 kb)
One of the features of Intel’s Sandy Bridge-E processor released this month is the support for the Advanced Vector Extensions (AVX) instruction set. Codes suitable for efficient auto-vectorization by the compiler will be able to take advantage of AVX without any code modification, with only re-compilation.
This paper explains the guidelines for code design suitable for auto-vectorization by the compiler (elimination of vector dependence, implementation of unit-stride data access and proper address alignment) and walks the reader through a practical example of code development with auto-vectorization. The resulting code is compiled and executed on two computer systems: a Westmere CPU-based system with SSE 4.2 support, and a Sandy Bridge-based system with AVX support. The benefit of vectorization is more significant in the AVX version, if the code is designed efficiently. An ‘elegant’, but inefficient solution is also provided and discussed.
In addition, the paper provides a comparative benchmark of the Sandy Bridge and Westmere systems, based on the discussed algorithm. Implications of auto-vectorization methods for Intel’s future Many Integrated Core technology based on the Knights Corner chip are discussed at the end.
Complete paper:
Colfax_Sandy_Bridge_AVX.pdf (632.23 kb)