Skip to content
Snippets Groups Projects
Forked from OS / hwaccel-23ws / project
13 commits behind the upstream repository.

Project: Accelerating Applications with Specialized Hardware

The main repo where we push the project milestones templates is here: https://gitlab.cs.uni-saarland.de/os/hwaccel-23ws/project

Submission

We have created a private repo in our Saarland University Gitlab Group for each of you. You should have received an email invitation/notification.

Please push your submission into a branch named msX-submission with X being the milestone number you are submitting. You are welcome to use other branches on this repo for keeping your work in progress etc., as we will only consider the submission branches. Note that the submission branches have force pushes disabled.

Environment Setup

We have created pre-built docker images for this project, as the environment setup is complicated and will get a lot worse in later milestones (with ASIC synthesis tools etc.).

You will need a working docker setup. We recommend doing this natively on Linux, but Windows should work as well. We have not tested macOS.

Linux

First off, you will need a working docker installation. How to do this will vary depending on your distro. We recommend the server version instead of the desktop version here (although desktop "should" work too, but we did not test this). The docker documentation has instructions for some of them. For more exotic distributions you should consult your distro documentaiton.

To run the tests you will need a system with kvm virtualization available and enabled. You only need the kernel support (among other things /dev/kvm has to exist), but no user space qemu-kvm setup etc. is required.

Set /proc/sys/kernel/perf_event_paranoid to 1 or less, so that gem5 can access CPU performance counters. (Linux Kernel Docs have more detail on what this does).

Windows

You need to install docker desktop. We have tested with the WSL2 backend. Under Windows you will have to run sudo echo 1 >/proc/sys/kernel/perf_event_paranoid inside the container.

macOS (untested)

We have not tested OS-X support. Here as well you would need at least a working docker desktop installation.

Using the Environment

The project repository is set up with a dev container configuration file that makes running the container environment relatively easy.

vscode

The easiest way to use this is with vscode and its Dev Containers Extension extension. If you have a working docker setup and the extension installed, once you open a workspace for the cloned repo, vscode will prompt you to re-open in the devcontainer. vscode will then automatically set up the container, start it, and automatically have the terminals in vscode run inside the container.

devcontainers CLI

If you prefer using the commandline directly you could give the devcontainers cli a try. This will also take care of starting and initializing the container, just as with vscode.

You first have to set up the container. For this, run the following command in the root directory of the project repo: devcontainer up --workspace-folder .

To then run an interactive shell in the container, run: devcontainer exec --workspace-folder . bash. You can replace bash with any other commands if you just want to run an individual command.

Manually running container

Note that devcontainers cli goes quite a bit beyond just docker run. Instead this will set up a user with a correct UID for a user in the container matching yours, mount the worspace directory in the container, and run additional initialization commands. If you are masochistic enough you can in principle do this manually as well, but there you will be on your own. ;-)

Project Milestones

The project milestones are in separate subdirectories msX. Per-milestone instructions can be found in the README.md files in those subdirectories.