The usage of vector/SIMD instructions is an important prerequisite to achieve a significant fraction of the peak performance on any modern CPU-based parallel system. Such SIMD instructions may be generated automatically by a vectorizing compiler or manually by using compiler intrinsics. Another option is to use abstractions provided in the form of user-defined C++ data types that represent the SIMD registers available on modern CPUs. Hardware platforms from different vendors offer SIMD registers and instructions with different functionality, and a portable C++ SIMD library must try to provide a common interface while enabling optimization for each particular platform. The goal of the thesis is to evaluate and compare C++ SIMD libraries in terms of features, functionality, ease-of-use, optimization potential and other criteria.
Dauer der Arbeit:
Anzahl Bearbeiter: 1