当前位置: X-MOL 学术Int. J. Parallel. Program › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Accelerating OCaml Programs on FPGA
International Journal of Parallel Programming ( IF 1.5 ) Pub Date : 2023-01-24 , DOI: 10.1007/s10766-022-00748-z
Loïc Sylvestre , Emmanuel Chailloux , Jocelyn Sérot

This paper aims to exploit the massive parallelism of Field-Programmable Gate Arrays (FPGAs) by programming them in OCaml, a multiparadigm and statically typed language. It first presents O2B, an implementation of the OCaml virtual machine using a softcore processor to run the entire OCaml language on an FPGA. It then introduces Macle, a language to express, in ML-style, hardware-accelerated user-defined functions, implemented as gates and registers on the same FPGA. Macle allows to implement pure computations and compose them in parallel. It also supports processing of dynamic data structures such as arrays, matrices and trees allocated by the OCaml runtime in the memory of the softcore processor. Macle functions can then be called, as hardware accelerators, by OCaml programs executed by O2B. This combination of Macle and OCaml codes in a single source program enables to easily prototype FPGA applications mixing numeric and symbolic computations.



中文翻译:

在 FPGA 上加速 OCaml 程序

本文旨在通过使用 OCaml(一种多范式和静态类型语言)对其进行编程来利用现场可编程门阵列 (FPGA) 的大规模并行性。它首先介绍了 O2B,这是一种 OCaml 虚拟机的实现,它使用软核处理器在 FPGA 上运行整个 OCaml 语言。然后介绍了 Macle,这是一种以 ML 风格表达硬件加速的用户定义函数的语言,在同一 FPGA 上作为门和寄存器实现。Macle 允许实现纯计算并并行组合它们。它还支持处理动态数据结构,例如 OCaml 运行时在软核处理器内存中分配的数组、矩阵和树。然后可以通过 O2B 执行的 OCaml 程序调用 Macle 函数,作为硬件加速器。

更新日期:2023-01-25
down
wechat
bug