The New Method for Automatic Vectorization Efficiency Increasing
摘要
This chapter considers the use of vectorization in computing as one of the key approaches to improving software efficiency. First, we analyzed the existing approaches to vectorization, their problems and limitations, and the capabilities of modern optimizing compilers for automatic generation of vectorized code using the example of the Intel C++ Compiler. Based on the analysis, we have proposed a new software design method that is used at the initial stages of design and is designed to improve the algorithms of vectorization of calculations in software development. Next, we applied this method to the BLAS operation of multiplying a vector by a matrix, resulting in algorithms for solving this problem optimized for SSE and AVX computing vectorization technologies. The use of these algorithms can significantly reduce the execution time of the program, which is confirmed by the results of computational experiments.