Havarti is Capra’s second research server.

Getting Access

Access to Havarti is managed in the same way (with the same Active Directory groups) as Gorgonzola. See the instructions on that page for access.

Please join the #gorgonzola channel on Slack (which, despite the name, covers all our research infrastructure).

Logging In

The hostname is havarti.cs.cornell.edu. Your SSH credentials are your NetID credentials.

Storage

The server has a really small amount of space on /, which includes the home directories. So please don’t put anything big in your $HOME. Whenever possible, use /scratch, which has plenty of space.

Specs

Software

Docker

Whenever possible, don’t install stuff locally on the machine. Instead, use Docker. For a guide on how to use Docker, see this blog post.

The docker data directory is at /scratch/docker. (Please never touch this directory directly.) The placement of the Docker data (which by default lives on our /var filesystem, which has very limited space) is controlled by the systemd unit configuration file at /etc/systemd/system/docker.service.d/docker.conf, which contains these lines to override the startup config:

[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -g /scratch/docker -H fd:// --containerd=/run/containerd/containerd.sock

To avoid needed to prefix docker commands with sudo, you can add yourself to the docker group with:

sudo usermod -a -G docker <netid>

Verilator

If you need the open-source package Verilator, please do not build a local copy. We have an shared installation under /opt/verilator that you should use instead.

You may be reading this because you are trying to install Verilator for use via fud. When asked to point to the Verilator binary, point to /opt/verilator/bin/verilator. Also add export VERILATOR_ROOT="/opt/verilator" to your ~/.bashrc. Then reinstall fud.

Intel FPGA Tools

The Intel Acceleration Stack for Development is installed at /opt/inteldevstack. To use it, source the setup script:

$ source /opt/inteldevstack/init_env.sh

Xilinx Tools

Xilinx Vitis (the renamed successor to Vivado, Vivado HLS, and SDSoC) version 2020.2 is installed at /scratch/opt/Xilinx. Run this command:

source /scratch/opt/Xilinx/Vitis/2020.2/settings64.sh

And you now have vitis, vitis_hls, and other tools available.

Xilinx XRT (Xilinx Runtime) version 2.8.743 is installed at /opt/xilinx. It includes platform version xilinx_u50_gen3x16_xdma_201920_3 which is the current firmware on the U50 card. Run this command:

source /opt/xilinx/xrt/setup.sh

If you need it, there is a second version of XRT, 2.13.0 a.k.a. 2022.1, installed at /scratch/opt/xilinx/xrt.

Automatically Loading Xilinx Tools

Bash users: Add this to your ~/.bashrc:

source /scratch/opt/Xilinx/Vitis/2020.2/settings64.sh
source /opt/xilinx/xrt/setup.sh

Zsh users: Add this to your ~/.zshenv:

source /scratch/opt/Xilinx/Vitis/2020.2/settings64.sh
BASH_SOURCE=/opt/xilinx/xrt/setup.sh emulate zsh -c 'bash /opt/xilinx/xrt/setup.sh' 1> /dev/null

We need to do this complicated dance because Xilinx’s setup script is written for bash and expects the BASH_SOURCE variable to be set. Zsh doesn’t set this variable, so we have to set it ourselves.

edit havarti.md