O GZIP é uma biblioteca de compactação de dados de código aberto que oferece alta taxa de compactação.
Ele aplica dois níveis de compactação:
- Nível de byte (Esquema de compactação baseado em Limpel Ziev LZ)
- Nível de bits (Entropia de Huffman)
Tradicionalmente, as soluções baseadas em CPU são limitadas à velocidade de MB/s, mas há uma grande demanda por GZIP acelerado que ofereça produtividade em termos de GB/s. Esse aplicativo fornece compactação e descompactação GZIP e ZLIB usando a plataforma Alveo U50.
Fornecedor: AMD
Plataforma: No local
Tamanho: 1,14 GB
Versão do contêiner: gzip-u50-2020.1-v1.0
A implantação desse produto da AMD é gratuita
Desempenho
Os números de produtividade abaixo são testados usando o conjunto de arquivos silesia. (http://sun.aei.polsl.pl/~sdeor/index.php?page=silesia )
A velocidade geral abaixo é calculada usando a lista de vários arquivos em vários núcleos.
|
Velocidade/arquivo |
Total de núcleos |
Velocidade geral |
Compactar |
688,5 MB/s |
8 |
5,3 GB/s |
Descompactar |
678,4 MB/s |
7 |
4,7 GB/s |
Opções de implantação
Esse aplicativo é conteinerizado e pode ser facilmente executado em poucos minutos na nuvem ou no local.
No local |
|
Alveo U50 |
|
Introdução
Siga as instruções de acordo com seu método de implantação.
1. Configuração do host
O aplicativo host Xilinx Runtime (XRT) é compatível com o Ubuntu 16.04/18.04 e o CentOS 7.x. com acesso sudo, use o seguinte comando para baixar e executar o script de configuração:
1.1 Clone o repositório do GitHub para o Xilinx Base Runtime
git clone https://github.com/Xilinx/Xilinx_Base_Runtime.git
cd Xilinx_Base_Runtime
1.2 Execute o script de configuração do host
./host_setup.sh -v 2020.1
Nota:
- Aguarde a conclusão da instalação. Durante esse período, talvez seja necessário pressionar [Y] para continuar a configuração do host.
- Se você optar por atualizar a FPGA, será necessário reinicializar a máquina local após a conclusão da instalação para carregar a nova imagem na FPGA.
- O script de configuração do host pode ser usado para configurar outras versões do XRT e do shell. Consulte o site https://github.com/Xilinx/Xilinx_Base_Runtime para obter mais detalhes.
2. Instale o Docker (se ainda não estiver instalado)
Com acesso sudo, use o seguinte comando para executar o script do utilitário para instalar o docker.
2.1 Acesse o diretório de utilitários Xilinx_Base_Runtime
cd Xilinx_Base_Runtime/utilities
2.2 Execute o script de instalação do Docker
./docker_install.sh
3. Execução do aplicativo
Digite os seguintes comandos em uma janela de terminal para executar o aplicativo:
3.1 Configure variáveis de ambiente por script do Xilinx_Base_Runtime
source Xilinx_Base_Runtime/utilities/xilinx_docker_setup.sh
3.2 Extraia a imagem do Docker
docker pull xilinx/data_compression:gzip-u50-2020.1-v1.0
3.3 Execute a imagem do Docker
docker run $XILINX_DOCKER_DEVICES -it xilinx/data_compression:gzip-u50-2020.1-v1.0
Descrição dos argumentos do comando:
$XILINX_DOCKER_DEVICES
- Variáveis definidas pelo script de configuração do host
3.4 Execute o GZIP
xgzip -c <input_file>
xgzip -d <compressed_file>
exemplo de comandos:
[Para compactação]
[Para descompactação]
wget http://sun.aei.polsl.pl/~sdeor/corpus/nci.bz2
xgzip -c nci.bz2
Para compactação
xgzip -d nci.bz2.gz
Para descompactação
xgzip -t nci.bz2
Testar ou validar um arquivo
4. Resultados
Depois que a compactação ou descompactação for feita, o arquivo de saída será gerado no mesmo caminho de pasta que o caminho de entrada.
- Arquivo compactado com GZIP, o formato do arquivo de saída será:
<file_name>.gz
- Arquivo compactado com ZLIB, o formato do arquivo de saída será:
<file_name>.xz
- A extensão do arquivo após a descompactação será:
<compress_file>.raw