Xlinx LZ4 Compression¶
LZ4 Compress Streaming example resides in L2/tests/lz4_compress
directory.
Follow build instructions to generate host executable and binary.
The binary host file generated is named as xil_lz4 and it is present in ./build
directory.
Executable Usage¶
To execute single file for compression :
./build/xil_lz4 -xbin ./build/xclbin_<xsa_name>_<TARGET mode>/compress.xclbin -c <input file_name>
To execute multiple files for compression :
./build/xil_lz4 -xbin ./build/xclbin_<xsa_name>_<TARGET mode>/compress.xclbin -cfl <files.list>
<files.list>
: Contains various file names with current path
The usage of the generated executable is as follows:
Usage: application.exe -[-h-c-cfl-xbin-id] --help, -h Print Help Options --compress, -c Compress --compress_list, -cfl Compress List of Input Files --max_cr, -mcr Maximum CR Default: [10] --xclbin, -xbin XCLBIN --device_id, -id Device ID Default: [0] --block_size, -B Compress Block Size [0-64: 1-256: 2-1024: 3-4096] Default: [0]
Resource Utilization¶
Table below presents resource utilization of Xilinx LZ4 Streaming Compression kernels. The final Fmax achieved is 295MHz
Flow | LUT | LUTMem | REG | BRAM | URAM |
---|---|---|---|---|---|
Compress | 47K | 10K | 50K | 56 | 48 |
Performance Data¶
Table below presents kernel throughput achieved for a single compute unit.
Topic | Results |
---|---|
Compression Throughput | 2.2 GB/s |
Average Compression Ratio | 2.13x (Silesia Benchmark) |