HEROv2 Software Development Kit (SDK) Docker Image

Citation Author(s):
Andreas
Kurth
ETH Zurich
Björn
Forsberg
ETH Zurich
Luca
Benini
ETH Zurich
Submitted by:
Andreas Kurth
Last updated:
Sun, 05/08/2022 - 23:33
DOI:
10.21227/faxp-5j95
Data Format:
License:
16 Views
Categories:
0
0 ratings - Please login to submit your rating.

Abstract 

This is a compressed archive containing a Docker image with a software development kit (SDK) for HEROv2 (see https://github.com/pulp-platform/hero). This SDK currently contains:

  • Ubuntu 20.04 LTS with packages required to build and use the HERO SDK;
  • the GCC-based toolchain for PULP (`hero-tc-pulp`);
  • the PULP SDK (`sdk-pulp`);
  • the GCC-based toolchain for Linux on the ARMv8 host (`hero-tc-har-olinux`);
  • the Buildroot-based SDK for Linux on the ARMv8 host (`sdk-har`);
  • the LLVM-based heterogeneous toolchain (`tc-llvm`).

Please read the attached README for further information.

Instructions: 

# HEROv2 Software Development Kit (SDK) Docker Image

`hero-v2-sdk_docker_image.tar.bz2` is a compressed archive containing a Docker image with a software
development kit (SDK) for HEROv2. This SDK currently contains:
- Ubuntu 20.04 LTS with packages required to build and use the HERO SDK;
- the GCC-based toolchain for PULP (`hero-tc-pulp`);
- the PULP SDK (`sdk-pulp`);
- the GCC-based toolchain for Linux on the ARMv8 host (`hero-tc-har-olinux`);
- the Buildroot-based SDK for Linux on the ARMv8 host (`sdk-har`);
- the LLVM-based heterogeneous toolchain (`tc-llvm`).

Using it requires an [installed Docker Engine](https://docs.docker.com/engine/install/). Once
Docker is installed, download the archive and load the contained image into Docker:
```sh
docker load < hero-v2-sdk_docker_image.tar.bz2
```
This can take tens of minutes, as the unpacked image is larger than 20 GB.

Then start a Docker container from the image:
```sh
docker run --name docker_hero -it hero-v2-sdk
```
and `source` the environment of the target for which you want to develop (e.g.,
`env/exilzcu102.sh`).

The application code is not contained in the Docker image, as it is typically provided by the end
user. You can use the OpenMP example applications from the HERO repository. We recommend to copy
application code into the container:
```sh
docker cp /path/to/hero-repo/openmp-examples docker_hero:/home/hero/hero
```
Another option to bring application code into the container would be to mount a folder into the
container; see the man pages of `docker run` for instructions.

Inside the HERO container, change directory to an application and run `make`.