Programming high-performance signal processing algorithms in high-level languages
|RISE Research Institutes of Sweden AB - RISE SICS AB, Kista
|Funding from Vinnova
|SEK 480 936
|November 2018 - March 2019
Purpose and goal
The goal was a methodology for high-level, portable, and high-performing programming of signal processing algorithms. Vector types, vector libraries, and the Unison code generator were evaluated. All three techniques turned out to have limitations, including expressibility, scalability, portability and precision, that prevented the goal from being reached. These limitations were not previously known, so valuable knowledge toward reaching the goal was gained.
Expected results and effects
The project could be followed up in multiple ways. Overcoming the bottlenecks of Unison is a topic for future research. Portable vector types are likely to appear in the near future. The vector library approach (e.g. Agner Fog´s library, https://www.agner.org/optimize) is promising, but two factors currently prevent its adoption in industry: (i) restrictive licensing terms, and (ii) a lack of generic abstractions for signal processing. Developing a library for industrial use is feasible but challenging.
Planned approach and implementation
Test programs written with traditional assembly intrinsics as well as with vector types or libraries were evaluated on an X86 Skylake processor. Vector types are not portable and many operation cannot be expressed conveniently. Vector libraries are portable and expressive, but target HPC applications and have restrictive license terms. Unison is not scalable enough and its cost function deviates too much from actual execution time. Factors behind these limitations have been identified.