The Walsh-Hadamard Transform (WHT) is a mathematical algorithm with applications in areas such as signal processing and data compression. In recent years, ARM processors have become increasingly widespread, especially in mobile devices and Apple Silicon computers. This thesis focuses on the implementation and optimization of the WHT on this architecture. The project started from a basic iterative version written in C++, which served as a reference for developing an optimized variant using NEON instructions, the SIMD extensions available on ARM to process multiple data elements in parallel. The optimization mainly targeted the sum and difference operations that form the so-called “butterfly” structure of the algorithm. Through a series of tests and benchmarks on vectors of different sizes, it was possible to compare the performance of the two versions, highlighting a clear speed improvement thanks to the use of NEON. This work shows how SIMD instructions on ARM can provide concrete performance benefits and offers a foundation for possible extensions to similar algorithms or practical applications.
La Walsh-Hadamard Transform (WHT) è un algoritmo matematico che trova applicazione in diversi campi, come l’elaborazione dei segnali e la compressione dei dati. Negli ultimi anni i processori ARM sono diventati sempre più diffusi, in particolare nei dispositivi mobili e nei computer basati su Apple Silicon. Questo lavoro si concentra sull’implementazione e l’ottimizzazione della WHT proprio su questa architettura. Il progetto è partito da una versione iterativa di base scritta in C++, che è stata poi presa come riferimento per sviluppare una variante ottimizzata con le istruzioni NEON, ovvero le estensioni SIMD disponibili su ARM per elaborare più dati in parallelo. L’ottimizzazione ha riguardato in particolare le operazioni fondamentali di somma e differenza che compongono i cosiddetti “butterfly” dell’algoritmo. Attraverso una serie di test e benchmark su vettori di diverse dimensioni è stato possibile confrontare le prestazioni delle due versioni, evidenziando un miglioramento netto della velocità grazie all’uso di NEON. Il lavoro dimostra quindi come sia possibile ottenere benefici concreti dall’uso delle istruzioni SIMD su ARM e fornisce una base per eventuali estensioni verso algoritmi simili o applicazioni pratiche.
Implementazione e ottimizzazione della Walsh-Hadamard Transform su architettura ARM con istruzioni NEON
ROSSETTO, LUCA
2024/2025
Abstract
The Walsh-Hadamard Transform (WHT) is a mathematical algorithm with applications in areas such as signal processing and data compression. In recent years, ARM processors have become increasingly widespread, especially in mobile devices and Apple Silicon computers. This thesis focuses on the implementation and optimization of the WHT on this architecture. The project started from a basic iterative version written in C++, which served as a reference for developing an optimized variant using NEON instructions, the SIMD extensions available on ARM to process multiple data elements in parallel. The optimization mainly targeted the sum and difference operations that form the so-called “butterfly” structure of the algorithm. Through a series of tests and benchmarks on vectors of different sizes, it was possible to compare the performance of the two versions, highlighting a clear speed improvement thanks to the use of NEON. This work shows how SIMD instructions on ARM can provide concrete performance benefits and offers a foundation for possible extensions to similar algorithms or practical applications.| File | Dimensione | Formato | |
|---|---|---|---|
|
Rossetto_Luca.pdf
accesso aperto
Dimensione
567.99 kB
Formato
Adobe PDF
|
567.99 kB | Adobe PDF | Visualizza/Apri |
The text of this website © Università degli studi di Padova. Full Text are published under a non-exclusive license. Metadata are under a CC0 License
https://hdl.handle.net/20.500.12608/97851