HACC Getting Started

Welcome to the XACC Cluster!

Getting started:

Before you continue, please make sure you’ve completed the following:

  1. XACC user survey form.
  2. Signed external user agreement forms.
  3. Familiarized yourself with the linux command line.

To request access to XACC, please contact the the xilinx-center PI, Prof Deming Chen. Upon completion of the above checklist, the system admin will provide you with an XACC account.

NOTE: XACC cluster accounts are different from UIUC’s active directory accounts. Your accounts may have the same login ID, but XACC passwords are managed within the cluster only.

Your first login:

When you log into the XACC cluster for the first time make sure to do the following:

  1. Update your password from the provided default.
  2. Ensure that a home directory has been created for you. If you do not have a home directory, contact the system admin.

Be nice:

Please respect the time and constraints of other users. This is a shared research cluster with limited resources. Please do not attempt to consume all resources by submitting multiple jobs. Please do not perform multiple large compilations and builds on the shared development node.

What you need to know:

The UIUC-XACC cluster has been designed for Xilinx Alveo cards as the primary accelerators. Thus, the programming and execution model has been setup to enable easy and reliable access to the FPGA accelerators.

There are several different cluster machines with varied resources. Note that only some machines are open to external users. You can check the specifications and accessibility of machines here. For security, isolation, and ease of management we have virtualized the cluster machines. For a list of all available nodes (VM and non-VM) nodes, please check the cluster status page.

The cluster status page will be periodically updated to reflect changes in node status, availability, and resources.

What you can’t do

  • We only support Alveo flows. We do not currently support non-alveo cards.
  • Please only use Vitis/Pynq to build your projects
  • You may develop your hardware in C/C++ or OpenCL or RTL
  • You must work with the installed Alveo shells.
  • We do not support custom FPGA images or custom shells.
  • We do not support custom OS/Kernels
  • You will not have root access
  • No JTAG debugging available

How to use the cluster:

XACC has been designed with HPC principles in mind. As such, we use an HPC job scheduler to help manage resources. You will need to submit “jobs” to the scheduler in order to run your tasks. You can not directly execute your jobs on a compute node. You can perform 2 types of operations on the cluster:

  1. Development – Compiling, synthesizing, and generating bitstreams for FPGA accelerators.
    We have one shared development node for these activities. This node is NOT governed by the job scheduler right now. Users are free to directly SSH into the node, and compile their jobs.
    We expect that as the number of users increase, we may need to put the development node behind the scheduler. In this case, you will need to submit Vitis compilations as jobs as well. Note that we do not support the GUI based flow.The recommended operation is that users will perform their initial design and project setup on their local desktop machines. One the project is ready to be built, users upload their projects to the cluster and only perform compilation, synthesis, P&R etc on the cluster. No development is expected to be done on this node.
  2. Compute – Running accelerated kernels on FPGAs/GPUs
    Once the project is built, users should have an host executable and a xilinx XCLbin file (partial bitstream). Users may then submit a job to the scheduler and request time on an accelerated compute node.