GZIP is an Open Source data compression library which provides high compression ratio.
It applies two levels of compression:
- Byte Level (Limpel Ziev LZ Based Compression Scheme)
- Bit Level (Huffman Entropy)
Traditionally the CPU based solutions are limited to MB/s speed but there is a high demand for accelerated GZIP which provides throughput in terms of GB/s. This application provides GZIP and ZLIB compression and decompression using Alveo U50 platform.
Vendor: AMD
Platform: On-Premise
Size: 1.14 GB
Container Version: gzip-u50-2020.1-v1.0
This product is free to deploy from AMD
Performance
Below throughput numbers are tested using the silesia file set. (http://sun.aei.polsl.pl/~sdeor/index.php?page=silesia )
The below overall speed is calculated using the multiple file list on multiple core.
|
Speed/File |
Total Cores |
Overall Speed |
Compress |
688.5 MB/s |
8 |
5.3 GB/s |
Decompress |
678.4 MB/s |
7 |
4.7 GB/s |
Deployment Options
This application is containerized and can be easily run in a few minutes in the cloud, or on-premises.
On Premises |
|
Alveo U50 |
|
Getting Started
Follow the instructions based on your deployment method.
1. Host Setup
The Xilinx Runtime (XRT) host application is supported on Ubuntu 16.04 /18.04 and CentOS 7.x. with sudo access, use the following command to download and run the setup script:
1.1 Clone GitHub Repository for Xilinx Base Runtime
git clone https://github.com/Xilinx/Xilinx_Base_Runtime.git
cd Xilinx_Base_Runtime
1.2 Run the Host Setup Script
./host_setup.sh -v 2020.1
Note:
- Please wait for the installation to complete. During this time you may need press [Y] to continue the host setup.
- If you choose to flash the FPGA, you will need to cold reboot the local machine after the installation is completed to load the new image on the FPGA.
- The script for host setup can be used to setup other versions XRT and shell. Please check https://github.com/Xilinx/Xilinx_Base_Runtime for more details.
2. Install Docker (If not installed already)
With sudo access, use the following command to run the utility script to install docker.
2.1 Go to Xilinx_Base_Runtime utilities directory
cd Xilinx_Base_Runtime/utilities
2.2 Run the Docker installation script
./docker_install.sh
3. Application Execution
Enter the following commands in a terminal window to run the application:
3.1 Setup Environment Variables by script from Xilinx_Base_Runtime
source Xilinx_Base_Runtime/utilities/xilinx_docker_setup.sh
3.2 Pull the Docker Image
docker pull xilinx/data_compression:gzip-u50-2020.1-v1.0
3.3 Run the Docker Image
docker run $XILINX_DOCKER_DEVICES -it xilinx/data_compression:gzip-u50-2020.1-v1.0
Description of command arguments:
$XILINX_DOCKER_DEVICES
- Variables set by the host setup script
3.4 Run GZIP
xgzip -c <input_file>
xgzip -d <compressed_file>
sample commands:
[For Compression]
[For Decompression]
wget http://sun.aei.polsl.pl/~sdeor/corpus/nci.bz2
xgzip -c nci.bz2
For Compression
xgzip -d nci.bz2.gz
For Decompression
xgzip -t nci.bz2
Test or Validate a file
4. Results
Once the compression or decompression is done, the output file will be generated in the same folder path will be same as input path folder.
- File compressed with GZIP the output file format will be:
<file_name>.gz
- File compressed with ZLIB the output file format will be:
<file_name>.xz
- File extension after decompression will be:
<compress_file>.raw