High Level Design of a Flexible PCA Hardware Accelerator Using a New Block-Streaming Method

Principal Component Analysis (PCA) is a technique for dimensionality reduction that is useful in removing redundant information in data for various applications such as Microwave Imaging (MI) and Hyperspectral Imaging (HI). The computational complexity of PCA has made the hardware acceleration of PC...

Full description

Bibliographic Details
Main Authors: Mohammad Amir Mansoori, Mario R. Casu
Format: Article
Language:English
Published: MDPI AG 2020-03-01
Series:Electronics
Subjects:
Online Access:https://www.mdpi.com/2079-9292/9/3/449
id doaj-d1355f22f87145ac9cfab18d420c440e
record_format Article
spelling doaj-d1355f22f87145ac9cfab18d420c440e2020-11-25T02:28:13ZengMDPI AGElectronics2079-92922020-03-019344910.3390/electronics9030449electronics9030449High Level Design of a Flexible PCA Hardware Accelerator Using a New Block-Streaming MethodMohammad Amir Mansoori0Mario R. Casu1Department of Electronics and Telecommunications, Politecnico di Torino, 10129 Turin, ItalyDepartment of Electronics and Telecommunications, Politecnico di Torino, 10129 Turin, ItalyPrincipal Component Analysis (PCA) is a technique for dimensionality reduction that is useful in removing redundant information in data for various applications such as Microwave Imaging (MI) and Hyperspectral Imaging (HI). The computational complexity of PCA has made the hardware acceleration of PCA an active research topic in recent years. Although the hardware design flow can be optimized using High Level Synthesis (HLS) tools, efficient high-performance solutions for complex embedded systems still require careful design. In this paper we propose a flexible PCA hardware accelerator in Field-Programmable Gate Arrays (FPGA) that we designed entirely in HLS. In order to make the internal PCA computations more efficient, a new block-streaming method is also introduced. Several HLS optimization strategies are adopted to create an efficient hardware. The flexibility of our design allows us to use it for different FPGA targets, with flexible input data dimensions, and it also lets us easily switch from a more accurate floating-point implementation to a higher speed fixed-point solution. The results show the efficiency of our design compared to state-of-the-art implementations on GPUs, many-core CPUs, and other FPGA approaches in terms of resource usage, execution time and power consumption.https://www.mdpi.com/2079-9292/9/3/449fpgaprincipal component analysis (pca)high level synthesis (hls)hardware accelerationembedded systemsfixed-point implementation
collection DOAJ
language English
format Article
sources DOAJ
author Mohammad Amir Mansoori
Mario R. Casu
spellingShingle Mohammad Amir Mansoori
Mario R. Casu
High Level Design of a Flexible PCA Hardware Accelerator Using a New Block-Streaming Method
Electronics
fpga
principal component analysis (pca)
high level synthesis (hls)
hardware acceleration
embedded systems
fixed-point implementation
author_facet Mohammad Amir Mansoori
Mario R. Casu
author_sort Mohammad Amir Mansoori
title High Level Design of a Flexible PCA Hardware Accelerator Using a New Block-Streaming Method
title_short High Level Design of a Flexible PCA Hardware Accelerator Using a New Block-Streaming Method
title_full High Level Design of a Flexible PCA Hardware Accelerator Using a New Block-Streaming Method
title_fullStr High Level Design of a Flexible PCA Hardware Accelerator Using a New Block-Streaming Method
title_full_unstemmed High Level Design of a Flexible PCA Hardware Accelerator Using a New Block-Streaming Method
title_sort high level design of a flexible pca hardware accelerator using a new block-streaming method
publisher MDPI AG
series Electronics
issn 2079-9292
publishDate 2020-03-01
description Principal Component Analysis (PCA) is a technique for dimensionality reduction that is useful in removing redundant information in data for various applications such as Microwave Imaging (MI) and Hyperspectral Imaging (HI). The computational complexity of PCA has made the hardware acceleration of PCA an active research topic in recent years. Although the hardware design flow can be optimized using High Level Synthesis (HLS) tools, efficient high-performance solutions for complex embedded systems still require careful design. In this paper we propose a flexible PCA hardware accelerator in Field-Programmable Gate Arrays (FPGA) that we designed entirely in HLS. In order to make the internal PCA computations more efficient, a new block-streaming method is also introduced. Several HLS optimization strategies are adopted to create an efficient hardware. The flexibility of our design allows us to use it for different FPGA targets, with flexible input data dimensions, and it also lets us easily switch from a more accurate floating-point implementation to a higher speed fixed-point solution. The results show the efficiency of our design compared to state-of-the-art implementations on GPUs, many-core CPUs, and other FPGA approaches in terms of resource usage, execution time and power consumption.
topic fpga
principal component analysis (pca)
high level synthesis (hls)
hardware acceleration
embedded systems
fixed-point implementation
url https://www.mdpi.com/2079-9292/9/3/449
work_keys_str_mv AT mohammadamirmansoori highleveldesignofaflexiblepcahardwareacceleratorusinganewblockstreamingmethod
AT mariorcasu highleveldesignofaflexiblepcahardwareacceleratorusinganewblockstreamingmethod
_version_ 1724839601345921024