GZIP es una biblioteca de compresión de datos de código abierto que proporciona una alta relación de compresión.

Aplica dos niveles de compresión:

  • Nivel de bytes (esquema de compresión basado en Limpel Ziev LZ) 
  • Nivel de bits (entropía de Huffman)

Por lo general, las soluciones basadas en CPU se limitan a la velocidad de MB/s, pero hay una alta demanda de GZIP acelerado que proporciona rendimiento en términos de GB/s. Esta aplicación proporciona tanto compresión como descompresión GZIP y ZLIB con la plataforma Alveo U50.

Proveedor: AMD

Plataforma: En las instalaciones

Tamaño: 1,14 GB

Versión del contenedor: gzip-u50-2020.1-v1.0

Este producto se puede implementar de forma gratuita desde AMD

Rendimiento

Los números de rendimiento a continuación se prueban mediante el conjunto de archivos silesia. (http://sun.aei.polsl.pl/~sdeor/index.php?page=silesia  )
La velocidad general a continuación se calcula mediante la lista de archivos múltiples en varios núcleos.

 

Velocidad/archivo
Un núcleo

Núcleos en total

Velocidad general
(Varios archivos)

Comprimir

688,5 MB/s

8

5,3 GB/s

Descomprimir

678,4 MB/s

7

4,7 GB/s

Opciones de implementación

Esta aplicación está en contenedores y se puede ejecutar fácilmente en pocos minutos en la nube o en las instalaciones.

En las instalaciones

Alveo U50
Ver y comprar producto

  • Xilinx Runtime: 2020.1
  • Plataforma de destino: xilinx_u50_gen13x16_xdma_201920_3

Introducción

Sigue las instrucciones basadas en tu método de implementación.

1. Configuración del host

La aplicación host Xilinx Runtime (XRT) es compatible con Ubuntu 16.04/18.04 y CentOS 7.x.  con sudo access, utiliza el siguiente comando para descargar y ejecutar el script de instalación:

1.1 Repositorio Clone GitHub para Xilinx Base Runtime

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

cd Xilinx_Base_Runtime

1.2 Ejecuta el script de instalación del host

./host_setup.sh -v 2020.1

Nota:

  • Espera a que se complete la instalación.  Durante este tiempo, es posible que necesites presionar [Y] para continuar con la configuración del host.
  • Si eliges apresurar la FPGA, tendrás que reiniciar en frío la máquina local después de completar la instalación para cargar la nueva imagen en la FPGA.
  • El script para la configuración del host se puede utilizar con el fin de configurar otras versiones de XRT y shell. Consulta https://github.com/Xilinx/Xilinx_Base_Runtime para obtener más detalles.

2. Instalar Docker (si todavía no está instalado)

Con sudo access, utiliza el siguiente comando para ejecutar el script de utilidad con el fin de instalar Docker.

2.1 Ve al directorio de utilidades Xilinx_Base_Runtime

cd Xilinx_Base_Runtime/utilities

2.2 Ejecuta el script de instalación de Docker

./docker_install.sh

3. Ejecución de aplicaciones

Ingresa los siguientes comandos en una ventana de terminal para ejecutar la aplicación:

3.1 Configuración de variables de entorno por script desde Xilinx_Base_Runtime

source Xilinx_Base_Runtime/utilities/xilinx_docker_setup.sh

3.2 Tirar de la imagen Docker

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

3.3 Ejecutar la imagen Docker

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

Descripción de los argumentos del comando:

  • $XILINX_DOCKER_DEVICES: las variables están establecidas por el script de configuración del host

3.4 Ejecutar GZIP

xgzip -c <input_file>

xgzip -d <compressed_file>

comandos de muestra:

[Para compresión]

[Para descompresión]

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

xgzip -c nci.bz2

Para la compresión

xgzip -d nci.bz2.gz

Para la descompresión

xgzip -t nci.bz2

Probar o validar un archivo

4. Resultados

Una vez que se realiza la compresión o descompresión, el archivo de salida se generará en la misma ruta de carpeta y será igual que la carpeta de ruta de entrada.

  • Archivo comprimido con GZIP, el formato de archivo de salida será: <file_name>.gz
  • Archivo comprimido con ZLIB, el formato de archivo de salida será: <file_name>.xz
  • La extensión del archivo después de la descompresión será: <compress_file>.raw