Compact native code generation for dynamic languages on micro-core architectures

Compact native code generation for dynamic languages on micro-core architectures
复制标题

微核架构上动态语言的紧凑本机代码生成

DOI:
10.1145/3446804.3446853
复制
发表时间:
2021
期刊:
--
影响因子:
--
通讯作者:
Jamieson M
Jamieson M
中科院分区:
--
文献类型:
--
作者:
Jamieson M

文献摘要

参考文献

被引文献

相似文献

微核架构将许多简单、低内存、低功耗的CPU内核组合到单个芯片上。该技术可能提供显著的性能和低功耗,不仅对嵌入式、边缘和物联网应用非常感兴趣,而且还可能作为数据中心工作负载的加速器。由于此类cpu的局限性,这些体系结构在传统上对编程具有挑战性,尤其是由于非常有限的内存量(通常在32KB左右)和技术的特性。然而,最近,像Python这样的动态语言已经被移植到许多微核上,但这些语言通常作为解释器提供,具有相关的性能限制。以性能、无限的代码大小、体系结构之间的可移植性和维护动态语言的程序员生产力优势这四个目标为目标,有限的可用内存意味着动态语言编译器使用的经典技术,如即时(JIT),根本不可行。在本文中,我们描述了一种针对微核架构的动态语言编译方法的构建,旨在满足这四个目标,并使用Python作为工具来探索其在取代现有微核解释器中的应用。我们的实验关注性能指标、架构可移植性、最小内存大小和程序员生产力,并将我们的方法与编写本机C代码的方法进行比较。这项工作的结果是确定了一系列技术,这些技术不仅适用于编译Python代码,而且适用于微核上的各种动态语言。
Micro-core architectures combine many simple, low memory, low power-consuming CPU cores onto a single chip. Potentially providing significant performance and low power consumption, this technology is not only of great interest in embedded, edge, and IoT uses, but also potentially as accelerators for data-center workloads. Due to the restricted nature of such CPUs, these architectures have traditionally been challenging to program, not least due to the very constrained amounts of memory (often around 32KB) and idiosyncrasies of the technology. However, more recently, dynamic languages such as Python have been ported to a number of micro-cores, but these are often delivered as interpreters which have an associated performance limitation.Targeting the four objectives of performance, unlimited code-size, portability between architectures, and maintaining the programmer productivity benefits of dynamic languages, the limited memory available means that classic techniques employed by dynamic language compilers, such as just-in-time (JIT), are simply not feasible. In this paper we describe the construction of a compilation approach for dynamic languages on micro-core architectures which aims to meet these four objectives, and use Python as a vehicle for exploring the application of this in replacing the existing micro-core interpreter. Our experiments focus on the metrics of performance, architecture portability, minimum memory size, and programmer productivity, comparing our approach against that of writing native C code. The outcome of this work is the identification of a series of techniques that are not only suitable for compiling Python code, but also applicable to a wide variety of dynamic languages on micro-cores.
SPARC 技术论文
DOI: --
发表时间: 1991
期刊: Sun Technical Reference Library
影响因子: --
作者:
B. Catanzaro
通讯作者: B. Catanzaro
Eithne:微核加速器基准测试框架
DOI: --
发表时间: 2019
期刊:
影响因子: --
作者:
Maurice Jamieson;Nicholas Brown
通讯作者: Nicholas Brown
作为一等公民的开放价值观
DOI: --
发表时间: 1991
期刊:
影响因子: --
作者:
S. Jones;J. Launchbury;S. Jones
通讯作者: S. Jones
JavaScript AOT 编译
DOI: --
发表时间: 2018
期刊: Dynamic Languages Symposium
影响因子: --
作者:
M. Serrano
通讯作者: M. Serrano
类型冻结:在跟踪 JIT 编译器中利用属性类型单态性
DOI: 10.1145/3368826.3377907
发表时间: 2020
期刊: Proceedings of the 18th ACM/IEEE International Symposium on Code Generation and Optimization
影响因子: --
作者:
Lin Cheng;Berkin Ilbeyi;Carl Friedrich Bolz;C. Batten
通讯作者: C. Batten