GZIP 是一个开源数据压缩库,能够提供高压缩比。

GZIP 可执行两层压缩:

  • 字节层(基于 Limpel Ziev LZ 的压缩方案) 
  • 比特层(霍夫曼熵)

在此之前,基于 CPU 的解决方案最高只能达到 MB/s 速度级别。但如今,大家越来越需要能够提供 GB/s 级别吞吐量的 GZIP 加速方案。本应用采用 Alveo U50 平台,可提供 GZIP 和 ZLIB 压缩与解压功能。

厂商:AMD

平台:本地

大小:1.14 GB

容器版本:gzip-u50-2020.1-v1.0

本产品由 AMD 提供,可免费部署

性能

以下吞吐量数值基于 silesia 文件集测试得出。(http://sun.aei.polsl.pl/~sdeor/index.php?page=silesia)
以下总体速度则是基于多个核心、多个文件计算得出。

 

文件处理速度
(单核)

总核数

总体速度
(多个文件)

压缩

688.5 MB/s

8

5.3 GB/s

解压

678.4 MB/s

7

4.7 GB/s

部署方案

本应用已容器化,只需几分钟即可在云端或本地部署运行,操作十分简单。

本地

Alveo U50
查看和购买产品

  • Xilinx Runtime:2020.1
  • 目标平台:xilinx_u50_gen13x16_xdma_201920_3

开始体验

请根据所选部署方法,按照相应说明进行操作。

1.主机安装

Xilinx Runtime (XRT) 主机应用在 Ubuntu 16.04/18.04 和 CentOS 7.x 上受支持。  以 sudo 访问权限,使用以下命令下载并运行所需的安装脚本:

1.1 克隆 Xilinx Base Runtime 对应的 GitHub 库

git clone https://github.com/Xilinx/Xilinx_Base_Runtime.git

cd Xilinx_Base_Runtime

1.2 运行主机安装脚本

./host_setup.sh -v 2020.1

注意:

  • 请等待安装完成。  在此期间,您可能需要按 [Y] 才能继续进行主机安装。
  • 如果选择进行 FPGA 烧写,则需要在安装完成后冷重启本地设备,才能在 FPGA 上加载新镜像。
  • 主机安装脚本可用于安装其他版本的 XRT 和 shell。更多详细信息,请访问 https://github.com/Xilinx/Xilinx_Base_Runtime

2.安装 Docker(如果尚未安装)

sudo 访问权限,使用以下命令运行相应实用程序脚本以安装 Docker。

2.1 进入 Xilinx_Base_Runtime 实用工具目录

cd Xilinx_Base_Runtime/utilities

2.2 运行 Docker 安装脚本

./docker_install.sh

3.应用执行

在终端窗口中输入以下命令以运行应用:

3.1 通过 Xilinx_Base_Runtime 脚本设置环境变量

source Xilinx_Base_Runtime/utilities/xilinx_docker_setup.sh

3.2 获取 Docker 镜像

docker pull xilinx/data_compression:gzip-u50-2020.1-v1.0

3.3 运行 Docker 镜像

docker run $XILINX_DOCKER_DEVICES -it xilinx/data_compression:gzip-u50-2020.1-v1.0

命令参数说明:

  • $XILINX_DOCKER_DEVICES - 通过主机安装脚本设置的变量

3.4 运行 GZIP

xgzip -c <input_file>

xgzip -d <compressed_file>

示例命令:

[压缩]

[解压]

wget http://sun.aei.polsl.pl/~sdeor/corpus/nci.bz2

xgzip -c nci.bz2

压缩

xgzip -d nci.bz2.gz

解压

xgzip -t nci.bz2

测试或验证文件

4.结果

压缩或解压完成后,将生成输出文件,输出文件所在的文件夹路径与输入文件夹路径相同。

  • 对于使用 GZIP 压缩的文件,输出文件格式为:<file_name>.gz
  • 对于使用 ZLIB 压缩的文件,输出文件格式为:<file_name>.xz
  • 解压后,文件扩展名为:<compress_file>.raw