Designing and Implementing a Generator Framework for a SIMD Abstraction Library
<|reference_start|>Designing and Implementing a Generator Framework for a SIMD Abstraction Library: The Single Instruction Multiple Data (SIMD) parallel paradigm is a well-established and heavily-used hardware-driven technique to increase the single-thread performance in different system domains such as database or machine learning. Depending on the hardware vendor and the specific processor generation/version, SIMD capabilities come in different flavors concerning the register size and the supported SIMD instructions. Due to this heterogeneity and the lack of standardized calling conventions, building high-performance and portable systems is a challenging task. To address this challenge, academia and industry have invested a remarkable effort into creating SIMD abstraction libraries that provide unified access to different SIMD hardware capabilities. However, those one-size-fits-all library approaches are inherently complex, which hampers maintainability and extensibility. Furthermore, they assume similar SIMD hardware designs, which may be invalidated through ARM SVE's emergence. Additionally, while existing SIMD abstraction libraries do a great job of hiding away the specifics of the underlying hardware, their lack of expressiveness impedes crucial algorithm design decisions for system developers. To overcome these limitations, we present TSLGen, a novel end-to-end framework approach for generating an SIMD abstraction library in this paper. We have implemented our TSLGen framework and used our generated Template SIMD Library (TSL) to program various system components from different domains. As we will show, the programming effort is comparable to existing libraries, and we achieve the same performance results. However, our framework is easy to maintain and to extend, which simultaneously supports disruptive changes to the interface by design and exposes valuable insights for assessing provided functionality.<|reference_end|>
@article{pietrzyk2024designing,
    title={Designing and Implementing a Generator Framework for a SIMD Abstraction
  Library},
    author={Johannes Pietrzyk and Alexander Krause and Dirk Habich and Wolfgang
  Lehner},
    journal={arXiv preprint arXiv:2407.18728},
    year={2024},
    archivePrefix={arXiv},
    eprint={2407.18728},
    primaryClass={cs.DB cs.SE}
}