PROBLEMS OF AUTOMATIC CODE OPTIMIZATION BY THE COMPILER.

Saved in:
Bibliographic Details
Title: PROBLEMS OF AUTOMATIC CODE OPTIMIZATION BY THE COMPILER.
Alternate Title: ПРОБЛЕМИ АВТОМАТИЧНОЇ ОПТИМІЗАЦІЇ ПРОГРАМНОГО КОДУ КОМПІЛЯТОРОМ.
Authors: Zhulkovska, I.1, Zhulkovskyi, O.1 olalzh@ukr.net, Rudianova, T.2, Lebid, O.2, Mormul, M.2
Source: Informatics & Mathematical Methods in Simulation / Informatika ta Matematičnì Metodi v Modelûvannì. 2026, Vol. 16 Issue 1, p43-51. 9p.
Subjects: High performance computing, Program transformation, Benchmark problems (Computer science), Machine learning, Parallel processing, Scalability
Abstract: Rational use of modern compiler capabilities, in particular automatic SIMD vectorization, enables significant improvements in computational performance for tasks involving dataarray processing and computer modeling of complex processes and systems. The growing demand for software performance in scientific computing, big-data analysis, artificial intelligence, and machine learning emphasizes the importance of exploiting hardware-level data parallelism. This study investigates the efficiency of automatic SIMD vectorization provided by the Microsoft Visual C++ compiler in comparison with manual optimization implemented through AVX2 instructions. To evaluate performance, three implementations were developed: a scalar baseline version, a compiler-optimized automatic SIMD code, and a manually vectorized SIMD version using intrinsic functions. Computational experiments were conducted using the SAXPY operation for arrays sized from 105 to 109 . The results demonstrated that automatic SIMD vectorization provides up to a 7.5x speedup with an efficiency of 0.94 for small- and medium-scale problems, effectively utilizing processor resources through aggressive optimizations such as loop unrolling and efficient use of FMA pipelines Manual SIMD optimization showed stable acceleration of up to 3. for large arrays but with lower efficiency (0.28–0.49 due to memory-bandwidth limitations and less aggressive compiler-level transformations. The comparison revealed that automatic methods are more convenient for developers, significantly reducing the effort required for writing SIMD code, while manual optimizations remain relevant when scaling to large data volumes. The findings indicate that the optimal strategy is a combined use of automatic and manual SIMD transformations, allowing a balance between performance, accuracy, and development effort, thus ensuring both efficiency and scalability of software solutions in high-performance computing and computer modeling. Future research will focus on expanding the experimental base across various processor architectures, analyzing the interaction of SIMD vectorization with other compiler transformations, and applying MLbased methods for adaptive optimization-strategy selection. [ABSTRACT FROM AUTHOR]
Copyright of Informatics & Mathematical Methods in Simulation / Informatika ta Matematičnì Metodi v Modelûvannì is the property of Odessa Polytechnic University and its content may not be copied or emailed to multiple sites without the copyright holder's express written permission. Additionally, content may not be used with any artificial intelligence tools or machine learning technologies. However, users may print, download, or email articles for individual use. This abstract may be abridged. No warranty is given about the accuracy of the copy. Users should refer to the original published version of the material for the full abstract. (Copyright applies to all Abstracts.)
Database: Engineering Source
Description
Abstract:Rational use of modern compiler capabilities, in particular automatic SIMD vectorization, enables significant improvements in computational performance for tasks involving dataarray processing and computer modeling of complex processes and systems. The growing demand for software performance in scientific computing, big-data analysis, artificial intelligence, and machine learning emphasizes the importance of exploiting hardware-level data parallelism. This study investigates the efficiency of automatic SIMD vectorization provided by the Microsoft Visual C++ compiler in comparison with manual optimization implemented through AVX2 instructions. To evaluate performance, three implementations were developed: a scalar baseline version, a compiler-optimized automatic SIMD code, and a manually vectorized SIMD version using intrinsic functions. Computational experiments were conducted using the SAXPY operation for arrays sized from 105 to 109 . The results demonstrated that automatic SIMD vectorization provides up to a 7.5x speedup with an efficiency of 0.94 for small- and medium-scale problems, effectively utilizing processor resources through aggressive optimizations such as loop unrolling and efficient use of FMA pipelines Manual SIMD optimization showed stable acceleration of up to 3. for large arrays but with lower efficiency (0.28–0.49 due to memory-bandwidth limitations and less aggressive compiler-level transformations. The comparison revealed that automatic methods are more convenient for developers, significantly reducing the effort required for writing SIMD code, while manual optimizations remain relevant when scaling to large data volumes. The findings indicate that the optimal strategy is a combined use of automatic and manual SIMD transformations, allowing a balance between performance, accuracy, and development effort, thus ensuring both efficiency and scalability of software solutions in high-performance computing and computer modeling. Future research will focus on expanding the experimental base across various processor architectures, analyzing the interaction of SIMD vectorization with other compiler transformations, and applying MLbased methods for adaptive optimization-strategy selection. [ABSTRACT FROM AUTHOR]
ISSN:22235744
DOI:10.15276/imms.v16.no1.43