当前位置: X-MOL 学术arXiv.cs.PL › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Transparent Compiler and Runtime Specializations for Accelerating Managed Languages on FPGAs
arXiv - CS - Programming Languages Pub Date : 2020-10-30 , DOI: arxiv-2010.16304
Michail Papadimitriou, Juan Fumero, Athanasios Stratikopoulos, Foivos S. Zakkak, Christos Kotselidis

In recent years, heterogeneous computing has emerged as the vital way to increase computers? performance and energy efficiency by combining diverse hardware devices, such as Graphics Processing Units (GPUs) and Field Programmable Gate Arrays (FPGAs). The rationale behind this trend is that different parts of an application can be offloaded from the main CPU to diverse devices, which can efficiently execute these parts as co-processors. FPGAs are a subset of the most widely used co-processors, typically used for accelerating specific workloads due to their flexible hardware and energy-efficient characteristics. These characteristics have made them prevalent in a broad spectrum of computing systems ranging from low-power embedded systems to high-end data centers and cloud infrastructures. However, these hardware characteristics come at the cost of programmability. Developers who create their applications using high-level programming languages (e.g., Java, Python, etc.) are required to familiarize with a hardware description language (e.g., VHDL, Verilog) or recently heterogeneous programming models (e.g., OpenCL, HLS) in order to exploit the co-processors? capacity and tune the performance of their applications. Currently, the above-mentioned heterogeneous programming models support exclusively the compilation from compiled languages, such as C and C++. Thus, the transparent integration of heterogeneous co-processors to the software ecosystem of managed programming languages (e.g. Java, Python) is not seamless. In this paper we rethink the engineering trade-offs that we encountered, in terms of transparency and compilation overheads, while integrating FPGAs into high-level managed programming languages. We present a novel approach that enables runtime code specialization techniques for seamless and high-performance execution of Java programs on FPGAs. The proposed solution is prototyped in the context of the Java programming language and TornadoVM; an open-source programming framework for Java execution on heterogeneous hardware. Finally, we evaluate the proposed solution for FPGA execution against both sequential and multi-threaded Java implementations showcasing up to 224x and 19.8x performance speedups, respectively, and up to 13.82x compared to TornadoVM running on an Intel integrated GPU. We also provide a break-down analysis of the proposed compiler optimizations for FPGA execution, as a means to project their impact on the applications? characteristics.

中文翻译:

用于加速 FPGA 上的托管语言的透明编译器和运行时专业化

近年来,异构计算已成为增加计算机的重要方式?通过组合各种硬件设备,例如图形处理单元 (GPU) 和现场可编程门阵列 (FPGA),提高性能和能效。这种趋势背后的基本原理是应用程序的不同部分可以从主 CPU 卸载到不同的设备,这些设备可以作为协处理器有效地执行这些部分。FPGA 是使用最广泛的协处理器的一个子集,由于其灵活的硬件和节能特性,通常用于加速特定的工作负载。这些特性使它们在从低功耗嵌入式系统到高端数据中心和云基础设施的广泛计算系统中普遍存在。然而,这些硬件特性是以可编程性为代价的。使用高级编程语言(例如 Java、Python 等)创建应用程序的开发人员需要熟悉硬件描述语言(例如 VHDL、Verilog)或最近的异构编程模型(例如 OpenCL、HLS)。为了利用协处理器?容量并调整其应用程序的性能。目前,上述异构编程模型仅支持编译语言的编译,例如C和C++。因此,异构协处理器到托管编程语言(例如 Java、Python)的软件生态系统的透明集成并不是无缝的。在本文中,我们重新考虑了我们遇到的工程权衡,在透明度和编译开销方面,同时将 FPGA 集成到高级托管编程语言中。我们提出了一种新颖的方法,该方法支持运行时代码专业化技术,以在 FPGA 上无缝和高性能地执行 Java 程序。所提出的解决方案是在 Java 编程语言和 TornadoVM 的上下文中进行原型设计的;用于在异构硬件上执行 Java 的开源编程框架。最后,我们针对顺序和多线程 Java 实现评估了所提出的 FPGA 执行解决方案,与在 Intel 集成 GPU 上运行的 TornadoVM 相比,性能加速分别高达 224 倍和 19.8 倍,以及高达 13.82 倍。我们还提供了对 FPGA 执行建议的编译器优化的细分分析,作为预测它们对应用程序影响的一种手段?特征。我们提出了一种新颖的方法,该方法支持运行时代码专业化技术,以在 FPGA 上无缝和高性能地执行 Java 程序。所提出的解决方案是在 Java 编程语言和 TornadoVM 的上下文中进行原型设计的;用于在异构硬件上执行 Java 的开源编程框架。最后,我们针对顺序和多线程 Java 实现评估了所提出的 FPGA 执行解决方案,与在 Intel 集成 GPU 上运行的 TornadoVM 相比,性能加速分别高达 224 倍和 19.8 倍,以及高达 13.82 倍。我们还提供了对 FPGA 执行建议的编译器优化的细分分析,作为预测它们对应用程序影响的一种手段?特征。我们提出了一种新颖的方法,该方法支持运行时代码专业化技术,以在 FPGA 上无缝和高性能地执行 Java 程序。所提出的解决方案是在 Java 编程语言和 TornadoVM 的上下文中进行原型设计的;用于在异构硬件上执行 Java 的开源编程框架。最后,我们针对顺序和多线程 Java 实现评估了所提出的 FPGA 执行解决方案,与在 Intel 集成 GPU 上运行的 TornadoVM 相比,性能加速分别高达 224 倍和 19.8 倍,以及高达 13.82 倍。我们还提供了对 FPGA 执行建议的编译器优化的细分分析,作为预测它们对应用程序影响的一种手段?特征。所提出的解决方案是在 Java 编程语言和 TornadoVM 的上下文中进行原型设计的;用于在异构硬件上执行 Java 的开源编程框架。最后,我们针对顺序和多线程 Java 实现评估了所提出的 FPGA 执行解决方案,与在 Intel 集成 GPU 上运行的 TornadoVM 相比,性能加速分别高达 224 倍和 19.8 倍,以及高达 13.82 倍。我们还提供了对 FPGA 执行建议的编译器优化的细分分析,作为预测它们对应用程序影响的一种手段?特征。所提出的解决方案是在 Java 编程语言和 TornadoVM 的上下文中进行原型设计的;用于在异构硬件上执行 Java 的开源编程框架。最后,我们针对顺序和多线程 Java 实现评估了所提出的 FPGA 执行解决方案,与在 Intel 集成 GPU 上运行的 TornadoVM 相比,性能加速分别高达 224 倍和 19.8 倍,以及高达 13.82 倍。我们还提供了对 FPGA 执行建议的编译器优化的细分分析,作为预测它们对应用程序影响的一种手段?特征。我们针对顺序和多线程 Java 实现评估了所提出的 FPGA 执行解决方案,与在 Intel 集成 GPU 上运行的 TornadoVM 相比,性能加速分别高达 224 倍和 19.8 倍,以及高达 13.82 倍。我们还提供了对 FPGA 执行建议的编译器优化的细分分析,作为预测它们对应用程序影响的一种手段?特征。我们针对顺序和多线程 Java 实现评估了所提出的 FPGA 执行解决方案,与在 Intel 集成 GPU 上运行的 TornadoVM 相比,性能加速分别高达 224 倍和 19.8 倍,以及高达 13.82 倍。我们还提供了对 FPGA 执行建议的编译器优化的细分分析,作为预测它们对应用程序影响的一种手段?特征。
更新日期:2020-11-02
down
wechat
bug