fida: a frameworkto automatically integrate fpga ... · fida: a frameworkto automatically integrate...

11
FIDA: a framework to automatically integrate FPGA kernels within Data-Science applications Luca Stornaiuolo Dipartimento di Elettronica Informazione e Bioingegneria (DEIB) [email protected] Alberto Parravicini, Donatella Sciuto and Marco Santambrogio 05/21/2018

Upload: others

Post on 11-Jul-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: FIDA: a frameworkto automatically integrate FPGA ... · FIDA: a frameworkto automatically integrate FPGA kernelswithin Data-Science applications Luca Stornaiuolo Dipartimento di Elettronica

FIDA: a framework to automaticallyintegrate FPGA kernels within

Data-Science applications

Luca StornaiuoloDipartimento di Elettronica Informazione e Bioingegneria (DEIB)

[email protected]

Alberto Parravicini, Donatella Sciuto and Marco Santambrogio

05/21/2018

Page 2: FIDA: a frameworkto automatically integrate FPGA ... · FIDA: a frameworkto automatically integrate FPGA kernelswithin Data-Science applications Luca Stornaiuolo Dipartimento di Elettronica

2

Context Definition

Huge amount of data that need to be processedto get aggregated information

Machine Learning(e.g. Neural Network)

Data Mining(e.g. K-means)

Image Analysis(e.g. Vessel segmentation)

Signal Processing(e.g. Autocorrelation)

Page 3: FIDA: a frameworkto automatically integrate FPGA ... · FIDA: a frameworkto automatically integrate FPGA kernelswithin Data-Science applications Luca Stornaiuolo Dipartimento di Elettronica

3

Problem Definition

• Most computational pipelines rely on high-levellanguages like Python, R and MATLAB.

• These pipelines can be accelerated with OpenCL andFPGAs.

• Integrating OpenCL kernels with high-level languages is slow and error-prone.

FPGA

Page 4: FIDA: a frameworkto automatically integrate FPGA ... · FIDA: a frameworkto automatically integrate FPGA kernelswithin Data-Science applications Luca Stornaiuolo Dipartimento di Elettronica

4

Proposed Solution

• Integrating OpenCL kernels with high-level languages is slow and error-prone.

• FIDA automatize this process!From a simple description of the kernel, wecreate interfaces for Python, R and MATLAB.

FPGA

Page 5: FIDA: a frameworkto automatically integrate FPGA ... · FIDA: a frameworkto automatically integrate FPGA kernelswithin Data-Science applications Luca Stornaiuolo Dipartimento di Elettronica

5

From this…

Page 6: FIDA: a frameworkto automatically integrate FPGA ... · FIDA: a frameworkto automatically integrate FPGA kernelswithin Data-Science applications Luca Stornaiuolo Dipartimento di Elettronica

6

…to this!

Page 7: FIDA: a frameworkto automatically integrate FPGA ... · FIDA: a frameworkto automatically integrate FPGA kernelswithin Data-Science applications Luca Stornaiuolo Dipartimento di Elettronica

7

Architecture

Input FIFO

Output FIFO

Boost

Rcpp

MEX

UnifiedFIFO Interface

OpenCLHost File

FPGAKernel

PCIe

NamedPipes

Page 8: FIDA: a frameworkto automatically integrate FPGA ... · FIDA: a frameworkto automatically integrate FPGA kernelswithin Data-Science applications Luca Stornaiuolo Dipartimento di Elettronica

8

Experimental Results

• We tested our architecture on different computational kernels.

• We profiled executions to find where bottlenecks are.

• We analyzed introduced execution time overheads.

Page 9: FIDA: a frameworkto automatically integrate FPGA ... · FIDA: a frameworkto automatically integrate FPGA kernelswithin Data-Science applications Luca Stornaiuolo Dipartimento di Elettronica

9

Experimental Results

• Execution profile:

Page 10: FIDA: a frameworkto automatically integrate FPGA ... · FIDA: a frameworkto automatically integrate FPGA kernelswithin Data-Science applications Luca Stornaiuolo Dipartimento di Elettronica

10

Experimental Results

• Execution profile:

• Most of the time is spent in interprocess communication:shared memory could drastically improve performance!

Page 11: FIDA: a frameworkto automatically integrate FPGA ... · FIDA: a frameworkto automatically integrate FPGA kernelswithin Data-Science applications Luca Stornaiuolo Dipartimento di Elettronica

FIDA: a framework to automatically integrate FPGA kernels within Data-Science applications

Luca StornaiuoloDipartimento di Elettronica Informazione e Bioingegneria (DEIB)

[email protected]

Alberto Parravicini, Donatella Sciuto and Marco Santambrogio

05/21/2018

https://necst.it/https://www.slideshare.net/necstlabhttps://www.facebook.com/groups/ReconfigurableArchitecturesWorkshop/