当前位置: 首页 > news >正文

【spdk】isal加速库数据压缩测试

文章目录

      • 参考
      • 1.Installing Intel ISA-L
      • 2.Using Intel ISA-L
      • 3.Examples

参考

https://www.intel.cn/content/www/cn/zh/developer/articles/guide/data-compression-tuning-guide-on-xeon-systems.html

https://github.com/intel/isa-l/blob/master/README.md

1.Installing Intel ISA-L

Some of the low-level core functions of Intel ISA-L are optimized using SIMD. Intel ISA-L also provides optimization functions for CPUs that do not support or support only a small number of SIMD instructions. It has been tuned in many details with CRC, DEFLATE, and Huffman coding optimizations for compression algorithms. It also supports multi-threading and offers great performance improvements over zlib*. The compression output of Intel ISA-L is completely compatible with the gzip* format, even if there is no change upon decompression.

The standard Linux installation from source code method is used for the compilation and installation of Intel ISA-L.

  1. Download source code from Github
  2. Compilation commands shown below. For detailed information, refer to the README file.
./autogen.sh

./configure

make

sudo make install

2.Using Intel ISA-L

Intel ISA-L provides the igzip executable program, which is used in a similar way to gzip. Intel ISA-L supports the RFC 1951 data compression algorithm and provides its own compression/decompression interfaces. It supports 4 levels (level [0,3]) of compression. The higher the level, the greater the compression ratio, with 3 being the highest.

$ igzip -h

Usage: igzip [options] [infiles]

Options:

-h, --help help, print this message

-# use compression level # with 0 <= # <= 3

-o <file> output file

-c, --stdout write to stdout

-d, --decompress decompress file

-z, --compress compress file (default)

Intel ISA-L provides a performance test program. The “make other” command can be used to generate an igzip/igzip_perf performance test program which can test Zlib’s and Intel ISA-L’s compression performance respectively. To use the igzip_perf for testing, the basic command is “igzip_perf -l 1 file”, where the “-z” parameter is used to test the zlib performance…

/igzip_perf -h

Usage: igzip_perf [options] <infile>

-h help, print this message

The options -l, -f, -z may be used up to 32 times

-l <level> isa-l stateless deflate level to test (0-3)

-f <level> isa-l stateful deflate level to test (0-3)

-z <level> zlib deflate level to test

-d <time> approx time in seconds for deflate (at least 0)

-i <time> approx time in seconds for inflate (at least 0)

-s performance test isa-l stateful inflate

-t performance test isa-l stateless inflate

-u performance test zlib inflate

…

3.Examples


 ./spdk-23.09/isa-l/igzip/igzip_perf  -l 1 ./isal_file
igzip_perf-> compress level: 1 flush_type: 0 block_size: 0
  file info-> name: ./isal_file file_size: 1073741824 compress_size: 1040465 ratio: 0.10%

    isal_stateless_deflate-> runtime =    3061146 usecs, bandwidth 30064 MB in 3.0611 sec = 9821.41 MB/s

    isal_stateless_inflate-> runtime =    3132379 usecs, bandwidth 15032 MB in 3.1324 sec = 4799.03 MB/s
    
./spdk-23.09/isa-l/igzip/igzip_perf  -z 1 ./isal_file
igzip_perf-> compress level: 1 flush_type: 0 block_size: 0
  file info-> name: ./isal_file file_size: 1073741824 compress_size: 4683744 ratio: 0.44%

    zlib_deflate->           runtime =    4435214 usecs, bandwidth 3221 MB in 4.4352 sec = 726.28 MB/s

    isal_stateless_inflate-> runtime =    3004605 usecs, bandwidth 27917 MB in 3.0046 sec = 9291.50 MB/s
    
./spdk-23.09/isa-l/igzip/igzip_perf  -z 1 -u ./isal_file
igzip_perf-> compress level: 1 flush_type: 0 block_size: 0
  file info-> name: ./isal_file file_size: 1073741824 compress_size: 4683744 ratio: 0.44%

    zlib_deflate->           runtime =    4238310 usecs, bandwidth 3221 MB in 4.2383 sec = 760.03 MB/s

    zlib_inflate->           runtime =    3013896 usecs, bandwidth 12884 MB in 3.0139 sec = 4275.16 MB/s
http://www.dtcms.com/a/7703.html

相关文章:

  • 【Java万花筒】解码Java网络通讯谜团:对比Apache HttpClient、OkHttp、Feign、RestTemplate、Retrofit
  • 一种解决常用存储设备无法被电脑识别的方法
  • PHP 调用 e 签宝接口签名指南
  • NAT44-ED features及节点图
  • python数字图像处理基础(九)——特征匹配
  • stm32 FOC 电机介绍
  • 【立创EDA-PCB设计基础】6.布线铺铜实战及细节详解
  • HCIA-HarmonyOS设备开发认证-序
  • 【GitHub项目推荐--不错的 Java 开源项目】【转载】
  • Transformer and Pretrain Language Models3-1
  • 使用trace工具分析Mysql如何选择索引
  • sky_take_out
  • Java使用Netty实现端口转发Http代理Sock5代理服务器
  • 基于若依的ruoyi-nbcio流程管理系统一种简单的动态表单模拟测试实现(四)
  • GBASE南大通用数据库GBase 8s常见问题讲堂 -- 字符集的设置
  • Java实现考研专业课程管理系统 JAVA+Vue+SpringBoot+MySQL
  • 面试百问之count(1) 和 count(*) 区别是什么?
  • 机器学习-决策树【手撕】
  • Ribbon负载均衡
  • C++三剑客之std::variant(二):深入剖析
  • L1-093 猜帽子游戏(Java)
  • 【Effective C++】4. 设计与声明
  • OpenKruiseGame × KubeSphere 联合发布游戏服运维控制台,推动云原生游戏落地
  • 1.24寒假集训
  • C++高精度问题
  • 【大数据精讲】全量同步与CDC增量同步方案对比
  • (2)(2.4) CRSF/ELRS Telemetry
  • 2024免费mathtype7.4.4安装注册步骤教程
  • 【AI视野·今日NLP 自然语言处理论文速览 第七十五期】Thu, 11 Jan 2024
  • 【GitHub项目推荐--微软开源的课程(Web开发课程/机器学习课程/物联网课程/数据科学课程)】【转载】