Compiler-based loop unrolling optimization for dual-SIMD extensions
摘要
Single Instruction Multiple Data (SIMD) extensions play a pivotal role in accelerating computations for both high-performance computing (HPC) and artificial intelligence (AI) workloads. To further exploit these architectures, this study introduces a compiler-based approach that generates parallel code for processors equipped with dual-SIMD extensions via vectorizable loop unrolling. The proposed optimization is implemented in both the GNU Compiler Collection (GCC) and the SWGCC710 compilers as an optional compilation pass that can be activated through a single flag. Performance evaluations conducted on Shenwei and Intel processors–using the SPEC CPU 2006, SPEC CPU 2017, and NAS Parallel Benchmarks (NPB)–demonstrate the effectiveness of the proposed method. Compared with the conventional