目录
目录README.md

赛题题目:基于PGO的OpenHarmony动态库(.so)优化自动化检测与验证系统

赛题说明:

OpenHarmony生态应用性能优化是提升用户体验的关键环节。其中,动态库(.so文件)作为核心计算模块,其执行效率直接影响应用响应速度、电池续航和设备发热。PGO(Profile-Guided Optimization)是一种强大的编译优化技术,通过收集程序实际运行数据来指导编译器优化,可为适合的动态库带来10%-15%的性能提升。 然而,在OpenHarmony生态中,PGO技术应用面临三大挑战: 收益评估困难:并非所有动态库都能从PGO中获得显著收益。计算密集型、分支逻辑复杂的库(如物理引擎、渲染器)通常收益显著,而IO绑定型或线性执行路径的库收益有限。开发者难以预先判断哪些库值得投入PGO优化成本; 测试用例构建复杂:有效的PGO优化依赖高质量的profile数据,需要测试用例覆盖关键执行路径。手动构建这些测试集耗时且往往不全面,导致次优的优化效果; 工程成本与收益平衡:PGO引入额外的构建步骤(插桩编译→收集profile→优化编译),增加了构建时间和CI/CD复杂度。对于收益有限的库,这种额外成本可能不值得。 本赛题要求参赛者开发一套自动化工具链,能够: 分析OpenHarmony应用中的动态库特征,预测PGO优化潜在收益; 自动识别高收益库并生成针对性测试用例,覆盖关键执行路径; 量化优化效果,提供性能提升报告和工程成本评估。 参赛者需在RK3568开发板上实际验证工具链效果,通过至少3个真实应用案例,证明工具能准确识别高收益库并带来≥10%的性能提升(以IPC提升、缓存命中率提高或功耗降低等指标衡量)。

赛题要求:

核心任务

开发自动化工具链实现以下功能中的一项或多项: PGO收益预测

  1. 分析动态库的二进制特征(如分支密度、循环复杂度、间接调用比例)
  2. 构建预测模型,评估库应用PGO后的潜在性能提升
  3. 对OpenHarmony应用中的动态库进行排序,识别最值得优化的目标
测试用例管理
  1. 基于提供的标准测试集,验证至少3款OpenHarmony应用中的高收益动态库
  2. 测试覆盖以下关键场景: (1)高频函数调用路径 (2)分支密集区域 (3)内存密集操作
优化策略推荐
  1. 基于性能分析数据,生成带量化收益预测的编译参数建议(如-O级别、内联阈值等)
  2. 提供优先级排序的优化建议列表
  3. 输出具体的编译命令行参数
效果验证
  1. 在RK3568开发板上实测优化效果,主要指标: (1)CPU指令数降低比例 (2)IPC (每周期指令数) 提升
  2. 参考指标(加分项): (1)冷启动时延 (2)帧渲染稳定性
技术要求

二进制分析:提取动态库的特征(可使用任何适合的工具) 动态追踪:采集性能数据,如热点函数、分支预测、缓存命中率等 预测模型:训练模型预测PGO收益,输入特征可包括: 二进制特征:分支密度、函数大小分布等 运行时特征:热点函数占比、分支预测失败率等 交付物 技术报告:详细说明技术方案、算法设计、实验结果和性能提升分析 可运行的技术原型:提供完整源代码和使用说明,确保评委可复现结果 输出内容: 优化分析报告:包含库收益预测和优先级排序 验证结果:通过实际编译参数调整验证优化建议,高收益库性能提升≥10%

评分标准:

评估维度 权重 评分细则 验证方法 收益预测准确性 35% - 预测与实际收益偏差<5%得25分

  • 偏差<3%得30分
  • 偏差<1%得35分 对比预测收益与实际测量收益 优化效果 30% - 高收益库实际CPU指令数降低≥5%:20分
  • 每降低1%加2分(上限30分)
  • 误优化率>5%扣15分 对比优化前后perf report数据 工程化水平 10% - 实现自动化工作流得5分
  • 提供可视化分析界面得5分 审查工具链的易用性与分析能力 创新加分项(20分上限) 多维度优化:除PGO外,探索其他编译优化维度(如指令集优化、LTO等)(+10分); 无源码分析能力:针对仅有二进制文件的动态库实现有效分析(+10分)。

赛题联系人:

范刚 fan.gang@huawei.com

参考资料:

OpenHarmony性能分析工具:https://developer.huawei.com/consumer/cn/agconnect/huawei-smartperf/
论文《ArkAnalyzer: The Static Analysis Framework for OpenHarmony》 项目地址: https://gitee.com/openharmony-sig/arkanalyzer
论文《Identifying Compiler and Optimization Level in Binary Code From Multiple Architectures》
OpenHarmony LLVM-PGO工具链文档: https://gitee.com/openharmony/third_party_llvm-project
鸿蒙OS部分开源应用项目地址:https://gitee.com/explore/harmonyos-app?order=recommend

参赛资源支持:

OpenHarmony社区:基于Windows PC,不提供额外硬件

赛题交流讨论链接:

https://www.chaspark.com/#/races/competitions/1136109649061687296

关于
28.0 KB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

©Copyright 2023 CCF 开源发展委员会
Powered by Trustie& IntelliDE 京ICP备13000930号