Affiliation:
1. IBM Haifa Labs, Haifa, Israel
Abstract
Most implementations of the Single Instruction Multiple Data (SIMD) model available today require that data elements be packed in vector registers. Operations on disjoint vector elements are not supported directly and require explicit data reorganization manipulations. Computations on non-contiguous and especially interleaved data appear in important applications, which can greatly benefit from SIMD instructions once the data is reorganized properly. Vectorizing such computations efficiently is therefore an ambitious challenge for both programmers and vectorizing compilers. We demonstrate an automatic compilation scheme that supports effective vectorization in the presence of interleaved data with constant strides that are powers of 2, facilitating data reorganization. We demonstrate how our vectorization scheme applies to dominant SIMD architectures, and present experimental results on a wide range of key kernels, showing speedups in execution time up to 3.7 for interleaving levels (stride) as high as 8.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
23 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Autovesk: Automatic Vectorized Code Generation from Unstructured Static Kernels Using Graph Transformations;ACM Transactions on Architecture and Code Optimization;2023-12-15
2. Fast Instruction Selection for Fast Digital Signal Processing;Proceedings of the 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 4;2023-03-25
3. Parsimony: Enabling SIMD/Vector Programming in Standard Compiler Flows;Proceedings of the 21st ACM/IEEE International Symposium on Code Generation and Optimization;2023-02-17
4. Custom High-Performance Vector Code Generation for Data-Specific Sparse Computations;Proceedings of the International Conference on Parallel Architectures and Compilation Techniques;2022-10-08
5. COX : Exposing CUDA Warp-level Functions to CPUs;ACM Transactions on Architecture and Code Optimization;2022-09-16