Skip to content

This repository includes a set of software tools enabling heterogeneous OpenMP programming on heterogeneous platforms released by the PULP Project.

License

Notifications You must be signed in to change notification settings

pulp-platform/hero-tools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HeroSDK

HeroSDK is an open-research software development kit for heterogeneous RISC-V platforms. This project enables deploying accelerated Linux user space applications using OpenMP target for programmable multi-core clusters. We currently target Carfield and Occamy.

HeroSDK is a continuity of Hero and HeroV2 but both projects are not yet compatible. Use the original Hero repository for everything referred to HeroV2.

HeroSDK is developed as part of the PULP project, a joint effort between ETH Zurich and the University of Bologna.

This repository

The HeroSDK contains compilers (Linux GCC & Bare metal LLVM), Linux kernel modules, host and device runtimes. See the figure felow for more informations.

image

This repository

First, fetch the required repositories:

git submodule update --init --recursive

This repository contains the following directories:

Directory Contains
apps Some example applications using OpenMP
artifacts Automatically managed artifact cache
cva6-sdk The cva6-sdk git submodule containing Buildroot
docs Files used to build the documentation
install* LLVM and compiled binaries and libraries. Also contains device's compiled newlibs.
output* Intermediary compilation folder for LLVM and newlibs.
platforms* The hardware platforms available (cloned on demand)
scripts Helper scripts
sw Hero runtime library, LLVM libraries, the OpenMP target runtime library, and the device drivers
toolchain An LLVM fork containing the Hero OpenMP target runtime library implementation
* generated files

Getting started

To build the software stack, compile a FPGA bitstream, get a Linux image, and more, go to Getting Started.

Dependencies

This project contains the following dependancies:

  • CVA6-sdk to build Linux images using Buildroot.
  • llvm-project to build the heterogeneous compiler and OpenMP target runtime.
  • o1heap to manage dynamic memory allocation for device.

License

Unless specified otherwise in the respective file headers, all code checked into this repository is made available under a permissive license. All software sources are licensed under Apache 2.0.

References

(To come)

About

This repository includes a set of software tools enabling heterogeneous OpenMP programming on heterogeneous platforms released by the PULP Project.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published