- Team Number: xohw23-251
- Project Name: Accelerating Quantum Error Correction through FPGAs
- Link to YouTube Video(s): https://youtu.be/GexVrHjFZVw
- Link to project repository: https://github.com/PietroG51/xohw23-Accelerating-QEC-FPGAs
- University name: Politecnico di Milano
-
Participant(s): Valentino Guerrini, Email: [email protected]
-
Participant(s): Marco Venere, Email: [email protected]
-
Participant(s): Pietro Giannoccaro, Email: [email protected]
-
Participant(s): Beatrice Branchini, Email: [email protected]
Supervisor name: Prof. Marco Santambrogio
Supervisor e-mail: [email protected]
Board used: Alveo U55C High Performance Compute Card
Software Version: 2022.2
This project presents QuErK, a framework to accelerate Quantum Error Correction on FPGAs, achieving a top speedup of 49x with respect to software. We consider the Sparse Blossom Algorithm, that is devoted to find the best correction to apply to qubits, and implement a dataflow architecture with pipelining to accelerate the most compute-intensive component of such an algorithm.
src folder: contains the source files for kernel and host
- kernel_dataflow.h : header file for the kernel
- kernel_dataflow.cpp : source file for the kernel
- host.cpp : source file for the host
- host_arguments.hpp : utility source file for the host, for n = 22000 neighbors
- software.py : source file for the software version of the accelerated component
- software_arguments.py : utility source file for pure software, for n = 22000 neighbors
Makefile: makefile to automate design generation, build the host application and run software emulation, hardware emulation and hardware.
- makefile_us_alveo.mk : utility file for Makefile
- utils.mk : utility file for Makefile
- querk.cfg : cfg file used by Makefile
- setup.sh : script file to get most common commands.
bin folder: contains the binary of the host and the bitstream of the hardware for Alveo U55C
- querk : binary of the host
- querk.xclbin : bitstream of the hardware for Alveo U55C
-
source the required sh files for Vitis and XRT:
- source path/to/settings64.sh
- source path/to/xrt/setup.sh
- export PLATFORM_PATH=path/to/xilinx/platforms/
-
to build and run software emulation (for u55c):
- make all TARGET=sw_emu
- make run TARGET=sw_emu
-
to build and run hardware emulation (for u55c):
- make all TARGET=hw_emu
- make run TARGET=hw_emu
-
to build and run hardware (for u55c):
- make all TARGET=hw
- make run TARGET=hw
-
to only compile the host (called ./querk) and run separately:
- make host
- ./querk path/to/querk.xclbin
-
to run the software version of the accelerated component:
- python3 src/software.py