Title
From Java to FPGA: An Experience with the Intel HARP System
Abstract
Recent years have seen a surge in the popularity of Field-Programmable Gate Arrays (FPGAs). Programmers can use them to develop high-performance systems that are not only efficient in time, but also in energy. Yet, programming FPGAs remains a difficult task. Even though there exist today OpenCL interfaces to synthesize such hardware, higher-level programming languages, such as Java, C# or Python remain distant from them. In this paper, we describe a compiler, and its supporting runtime environment, that reduces this distance, translating functional code written in Java to the Intel HARP platform. Thus, we bring two contributions. First, the insight that a functional-style library is a good starting point to bridge the gap between high-level programming idioms and FPGAs. Second, the implementation of this system itself, including the compiler, its intermediate representation, and all the runtime support necessary to shield developers from the task of transferring data back and forth between the host CPU and the accelerator. To demonstrate the effectiveness of our system, we have used it to implement different benchmarks, used in image processing and data-mining. For large inputs, we can observe consistent 20x speedups over the Java Virtual Machine across all our benchmarks. Depending on the target function that we compile, this speedup can achieve 280x.
Year
DOI
Venue
2018
10.1109/CAHPC.2018.8645951
2018 30th International Symposium on Computer Architecture and High Performance Computing (SBAC-PAD)
Field
DocType
ISSN
Computer science,Parallel computing,Image processing,Field-programmable gate array,Compiler,HARP,Intermediate language,Java,Python (programming language),Operating system,Speedup
Conference
1550-6533
ISBN
Citations 
PageRank 
978-1-5386-7769-8
0
0.34
References 
Authors
0
7