We are delighted to release HERO, our Open Heterogeneous Research Platform, bringing PULP to the next level.
HERO combines a PULP-based open-source parallel manycore accelerator implemented on FPGA with a hard ARM Cortex-A multicore host processor running full-stack Linux. HERO is the first heterogeneous system architecture that mixes a powerful ARM multicore host with a highly parallel and scalable manycore accelerator based on RISC-V cores.
HERO offers a complete hardware and software platform which advances the state of the art of transparent accelerator programming using the OpenMP v4.5 Accelerator Model. The programmer writes a single application source file for the host and uses OpenMP directives for parallelization and accelerator offloading. Lower-level details such as differing ISAs as well as shared virtual memory (SVM) between host and accelerator are handled by our heterogeneous toolchain based on GCC 7, runtime libraries, kernel driver and our open-source hardware IPs.
As such, HERO greatly simplifies heterogeneous systems programming and forms a complete basis for future system-level research and industrial design comprising both the hardware and software side of heterogeneous systems.
The HERO release consists of two main repositories:
To try out the HERO platform, we suggest to get started with the HERO SDK repository. During its build process, the required hardware files (FPGA bitstream, first-stage boot loader etc.) are automatically downloaded from our servers. In the provided base configuration for the Xilinx Zynq ZC706 Evaluation Kit, the accelerator features 1 cluster comprising 8 32-bit RI5CY cores, 256 KiB of L1 scratchpad memory and 4 KiB of shared instruction cache. In addition, the accelerator has 256 KiB of shared L2 scratchpad and instruction memory. SVM is enabled by our IOMMU configured to have an L1 TLB with 32 variable-sized entries and an L2 TLB with 1024 page-sized entries.
For additional documentation, please check out our HOWTO website. Visit our www page to learn more, and follow us on Twitter (@pulp_platform).
Your PULP team
You can get the source code for the HERO hardware (released under a permissible SolderPad open-source license) and the HERO software development kit (released under Apache 2.0 and GPL) both from GitHub.
To set up the platform, please check the README of the SDK. For further documentation see our HOWTO website.
Do you need help with PULP?
Most of the discussions are currently held on individual GitHub pages. We are also preparing an online forum. You may find the following helpful, as well:
Mailing list | FAQ | Contact
HERO is supported by the Eurolab4HPC2 project. Do you want to become a HERO partner, too?