Image Convolution
Stai vedendo l'anteprima delle prime pagine. Il file completo è gratis: registrati per leggerlo tutto.
Di cosa parla
- Il filtraggio spaziale tramite convoluzione in dominio digitale è un'operazione fondamentale per il rilevamento dei bordi e la modifica dell'immagine che richiede elevate capacità di elaborazione dato l'aumento delle dimensioni degli immagini moderne.
- Su CPU, mentre gli algoritmi sequenziali sono sufficientemente veloci solo per immagini piccole, le versioni parallele basate su OpenMP ottimizzano significativamente i tempi riducendo quasi a metà la durata rispetto all'approccio seriale sfruttando il parallelismo dei pixel indipendenti.
- Le implementazioni GPU con CUDA seguono una struttura standard di allocazione memoria e copia dati, ma l'utilizzo della shared memory riduce drasticamente gli accessi alla global memory passando da 9 a soli 4 per thread nel caso di kernel 3x3.
- L'impiego ulteriore della constant memory permette ulteriori miglioramenti prestazionali poiché memorizza i dati del kernel invariabili durante l'esecuzione, riducendo la larghezza di banda richiesta rispetto all'utilizzo esclusivo della global memory.
- I test condotti su immagini fino a 6000x4000 pixel confermano che gli algoritmi CUDA superano nettamente le prestazioni delle CPU e che la combinazione di shared e constant memory offre i tempi di elaborazione più brevi per entrambi i kernel da 3x3 e 5x5.
Questo appunto è gratis. Registrati in 30 secondi per leggere tutte le pagine e scaricarlo.