fida: a frameworkto automatically integrate fpga ... · fida: a frameworkto automatically integrate...
TRANSCRIPT
FIDA: a framework to automaticallyintegrate FPGA kernels within
Data-Science applications
Luca StornaiuoloDipartimento di Elettronica Informazione e Bioingegneria (DEIB)
Alberto Parravicini, Donatella Sciuto and Marco Santambrogio
05/21/2018
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)
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
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
5
From this…
6
…to this!
7
Architecture
Input FIFO
Output FIFO
Boost
Rcpp
MEX
UnifiedFIFO Interface
OpenCLHost File
FPGAKernel
PCIe
NamedPipes
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.
9
Experimental Results
• Execution profile:
10
Experimental Results
• Execution profile:
• Most of the time is spent in interprocess communication:shared memory could drastically improve performance!
FIDA: a framework to automatically integrate FPGA kernels within Data-Science applications
Luca StornaiuoloDipartimento di Elettronica Informazione e Bioingegneria (DEIB)
Alberto Parravicini, Donatella Sciuto and Marco Santambrogio
05/21/2018
https://necst.it/https://www.slideshare.net/necstlabhttps://www.facebook.com/groups/ReconfigurableArchitecturesWorkshop/