Refer to the TAPA Github repo for the full code.
.. literalinclude:: ../apps/vadd/vadd.cpp :language: cpp
.. literalinclude:: ../apps/shared-vadd/vadd.cpp :language: cpp
.. literalinclude:: ../apps/nested-vadd/vadd.cpp :language: cpp
.. literalinclude:: ../apps/bandwidth/bandwidth.cpp :language: cpp
.. literalinclude:: ../apps/network/network.cpp :language: cpp
.. literalinclude:: ../apps/cannon/cannon.cpp :language: cpp
.. literalinclude:: ../apps/jacobi/jacobi.cpp :language: cpp
The TAPA repo also includes a set of large scale designs under the regression
directory. This directory is in active development and we are adding more sophiticated TAPA designs here.
cnn
andlu_decomposition
are both systolic arrays (of different shape) originally published in FPGA'21.hbm-bandwidth
can be used to profile the HBM bandwidth. It reads from and write back to all 32 channels of HBM. It is a good demonstration of the expressiveness and the optimized area ofasync_mmap
.hbm-bandwidth-1-ch
only reads from and writes to one HBM channel.serpens
is a sparse matrix-vector multiplication published in DAC'22. We provide different versions that are of the same architecture but different parallelism.spmm
is a sparse matrix-matrix multiplication published in FPGA'22spmv-hisparse-mmap
is another sparse matrix-vector multiplication published in HiSparse at FPGA'22knn
is a K-nearest-neighbor accelerator originally published in FPT'20page_rank
is an accelerator for the Page-Rank algorithm that is included in FCCM'21