10 Star 20 Fork 6

openEuler / marketing

 / 详情

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

Backlog
开源之夏2023
Opened this issue  
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

Comments (1)

liqiang created暑期2020
liqiang set related repository to openEuler/marketing
Expand operation logs

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 assigned collaborator allesgute
genedna assigned collaborator genedna
genedna added
 
summer2020
label
genedna set related project to Summer 2020
genedna set deadline to 2020-07-02
genedna set start time to 2020-07-01
genedna changed deadline from 2020-07-02 to 2020-09-30
genedna changed title
genedna changed description
openeuler-ci-bot removed
 
summer2020
label

Sign in to comment

Status
Assignees
Projects
Milestones
Pull Requests
Successfully merging a pull request will close this issue.
Branches
Planed to start   -   Planed to end
-
Top level
Priority
Duration (hours)
参与者(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

Search