10 Star 20 Fork 5

openEuler / marketing

 / 详情

No.65 - adler32算法在ARM平台的优化

待办的
开源之夏2023
创建于  
2020-05-26 18:05

标题 adler32算法在ARM平台的优化探索

描述

  • Adler-32是马克·阿德勒(Mark Adler)在1995年发明的一种校验和 算法,是对弗莱彻校验和的一种改进。与相同长度的循环冗余校验相比,它以可靠性为代价(优先选择后者)。Adler-32比Fletcher-16更可靠,而可靠性却比Fletcher-32低。
  • Adler-32在基础压缩库libz中使用,常见压缩和解压场景中,adler-32的算法热点会比较高,优化该算法可以提升libz基础库的性能。
  • SIMD简介:单指令流多数据流(英语:Single Instruction Multiple Data,缩写:SIMD)是一种采用一个控制器来控制多个处理器,同时对一组数据(又称“数据向量”)中的每一个分别执行相同的操作从而实现空间上的并行性的技术。
  • ARM平台使用SIMD优化adler-32的案例:https://developer.arm.com/architectures/instruction-sets/simd-isas/neon/neon-programmers-guide-for-armv8-a/neon-intrinsics-chromium-case-study/adler-32
    使用SIMD向量指令优化adler-32性能能使PNG解码性能提升5%~18%
    使用SIMD向量指令优化adler-32性能能使PNG解码性能提升了5%~18%

难度

导师 @liqiang

联系方式 liqiang64@huawei.com

产出标准

  • 优化后的adler-32算法代码。
  • 输出相关准确性和性能对比的测试数据。
  • 输出算法改进的原理文档和接口使用说明。
  • 将优化算法应用到openEuler基础库libz,提升其性能。

技术要求

  • 理解SIMD相关原理、neon指令。
  • 熟悉常用性能分析和调优工具,能独立分析和评估算法性能。

相关项目
https://gitee.com/src-openeuler/zlib

相关资料
https://developer.arm.com/architectures/instruction-sets/simd-isas/neon/neon-programmers-guide-for-armv8-a/neon-intrinsics-chromium-case-study/adler-32

评论 (1)

liqiang 创建了暑期2020
liqiang 关联仓库设置为openEuler/marketing
展开全部操作日志

Hey @liqiang, Welcome to openEuler Community.
All of the projects in openEuler Community are maintained by @openeuler-ci-bot.
That means the developers can comment below every pull request or issue to trigger Bot Commands.
Please follow instructions at https://gitee.com/openeuler/community/blob/master/en/sig-infrastructure/command.md to find the details.

genedna 添加协作者allesgute
genedna 添加协作者genedna
genedna 添加了
 
summer2020
标签
genedna 关联项目设置为Summer 2020
genedna 计划截止日期设置为2020-07-02
genedna 计划开始日期设置为2020-07-01
genedna 计划截止日期2020-07-02 修改为2020-09-30
genedna 修改了标题
genedna 修改了描述
openeuler-ci-bot 负责人设置为allesgute
openeuler-ci-bot 移除了
 
summer2020
标签

登录 后才可以发表评论

状态
负责人
项目
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
预计工期 (小时)
参与者(4)
5329419 openeuler ci bot 1632792936 23249 genedna 1586065964
1
https://gitee.com/openeuler/marketing.git
git@gitee.com:openeuler/marketing.git
openeuler
marketing
marketing

搜索帮助