L2 API are for users who has certain understanding of HLS and programming on FPGA and want to make modification on kernels.
These APIs are more Vitis flow based designs in which communication and data transfer happens between kernel and host. Kernel works on data and output send back to the host. Optimized kernel with best kernel performance can be seen.
GZIP by default supports 32KB block size. But in our library we support multiple block sizes namely, 8KB, 16KB. Not only multiple block sizes but data compression library has both dynamic and static huffman modules which are optimized to give good performance.
Architecture | Compression Ratio | Throughput | FMax | LUT | BRAM | URAM |
---|---|---|---|---|---|---|
GZipc 32KB Compress Stream | 2.70 | 2.0 GB/s | 300MHz | 54K | 141 | 64 |
GZip 8KB Compress Stream | 2.70 | 2.0 GB/s | 300MHz | 57.5K | 100 | 48 |
GZip 16KB Compress Stream | 2.70 | 2.0 GB/s | 282MHz | 58K | 164 | 48 |
Gzipc_block_mm32KB | 2.70 | 2.0 GB/s | 300MHz | 57K | 135 | 64 |
Gzipc_static32KB | 2.70 | 2.0 GB/s | 300MHz | 35K | 45 | 64 |
Library designs supports Free-Running-Kernel and Memory-Mapped kernels.
GZip/Zlib
Memory Mapped and GZip/Zlib Compress Stream: Supports Dynamic Huffman.
GZip/Zlib
Streaming: Full standard support (Dynamic Huffman, Fixed Huffman and Stored Blocks supported)