Skip to main content

TAPA

CI install Documentation Status

TAPA is a dataflow HLS framework that features fast compilation, expressive programming model and generates high-frequency FPGA accelerators.

TAPA Framework

High-Frequency

  • TAPA explicitly decouples communication and computation for better QoR.

  • TAPA integrates the AutoBridge floorplanner to optimize the RTL generation process.

  • TAPA achieves 2× higher the frequency on average compared to Vivado. 1

Speed

  • TAPA compiles 7× faster than Vitis HLS. 2

  • TAPA provides 3× faster software simulation than Vitis HLS.2

  • TAPA provides 8× faster RTL simulation than Vitis.

  • [in-progress] TAPA is integrating RapidStream that is up to 10× faster than Vivado.3

Expressiveness

  • TAPA extends the Vitis HLS syntax for richer expressiveness at the C++ level.

  • TAPA provides dedicated APIs for arbitrary external memory access patterns.

  • TAPA allows users to explicitly specify parallelism.

  • In addition to static burst analysis, TAPA supports runtime burst detectuion by transparently merging small memory transactions into large bursts.

HBM-Specific Optimizations

  • TAPA significantly reduce the area overhead of HBM interface IPs compared to Vitis HLS.

  • TAPA includes an automated design space exploration tool to balance the resource pressure and the wire pressure for HBM FPGAs.

  • TAPA automatically select the physical channel for each top-level argument of your accelerator.

Successful Cases

  • Serpens, DAC'22, achieves 270 MHz on the Xilinx Alveo U280 HBM board when using 24 HBM channels. The Vitis HLS baseline failed in routing.
  • Sextans, FPGA'22, achieves 260 MHz on the Xilinx Alveo U250 board when using 4 DDR channels. The Vivado baseline achieves only 189 MHz.
  • SPLAG, FPGA'22, achieves up to a 4.9× speedup over state-of-the-art FPGA accelerators, up to a 2.6× speedup over 32-thread CPU running at 4.4 GHz, and up to a 0.9× speedup over an A100 GPU (that has 4.1× power budget and 3.4× HBM bandwidth).
  • AutoSA Systolic-Array Compiler, FPGA'21: AutoSA Frequency Figure
  • KNN, FPT'20, achieves 252 MHz on the Xilinx Alveo U280 board. The Vivado baseline achieves only 165 MHz.

Getting Started

TAPA Publications

Metadata

Release files for tapa 0.0.20240825.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tapa 0.0.20240825.1
File Size Uploaded
tapa-0.0.20240825.1.tar.gz 98.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tapa 0.0.20240825.1
File Interpreter ABI Platform
tapa-0.0.20240825.1-py3-none-any.whl Python 3 none any Details

Total release size: 224.1 kB

Release files / tapa-0.0.20240825.1.tar.gz

Download URL tapa-0.0.20240825.1.tar.gz
Size 98.0 kB
Tags Source
SHA-256 checksum
How to use checksums
977c16ec681a98d67580cc5166cfd96dd4c9b1968dc459e9808ccbccee8286fb
BLAKE2b-256 checksum
How to use checksums
24a8796065c9a6b9859f78137ea472a39a78428ff2693a43045fad2b202c8da3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.0 CPython/3.12.5

Release files / tapa-0.0.20240825.1-py3-none-any.whl

Download URL tapa-0.0.20240825.1-py3-none-any.whl
Size 126.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a4273af1cde651b48ba468f67d6b61ce405c09c4f49e698c40b7c95deb8d8bb6
BLAKE2b-256 checksum
How to use checksums
d775cc22e30f16c0d57d6b78627c37cb59ae26ae8ee104a6d0f69d27c05c329f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.0 CPython/3.12.5

Release history Release notifications | RSS feed

This release

0.0.20240825.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page