* Note: This project is under active development. We will tag a stable release in the coming weeks.*
ACCL is a Vitis kernel and associated Pynq and XRT drivers which together provide MPI-like collectives for Xilinx FPGAs. ACCL is designed to enable compute kernels resident in FPGA fabric to communicate directly under host supervision but without requiring data movement between the FPGA and host. Instead, ACCL uses Vitis-compatible TCP and UDP stacks to connect FPGAs directly over Ethernet at up to 100 Gbps on Alveo cards.
ACCL currently supports Send/Recv and the following collectives:
- Broadcast
- Scatter
- Gather
- All-gather
- Reduce
- All-reduce
The repository is organized as follows:
- kernel: builds the ACCL Vitis kernel (called CCL Offload)
- driver: drivers for the ACCL.
- demo: ACCL example systems on Alveo.
- docs: documentation.
More info at demo/build/readme.md
- Source xrt
- Go in demo/build
- Modify demo/build/Makefile to target the right shell (e.g. xilinx_u280_xdma_201920_3) and the right mode (e.g. tcp_cmac)
- Source Vitis 2020.1
- Build tcp network stack ips
- Source Vitis 2020.2
- run make to create a
.xclbin