功能介绍

鲲鹏原生开发在流水线编译构建阶段提供了毕昇编译器、毕昇JDK、GCC for openEuler。通过上述鲲鹏亲和编译器,在不修改用户应用源码的情况下,提供鲲鹏平台的应用性能提升。

毕昇编译器

毕昇编译器是华为编译器实验室针对通用处理器架构构建,增强和引入了多种编译优化技术,致力于打造高性能、高可信及易扩展的编译器工具链。

Jenkins、GitLab无感切换毕昇编译器,无感切换是指:若使用的是clang或者clang++,将会使用毕昇编译器增加编译选项;若使用gcc或者g++,将会替换为clang或者clang++。

无感切换的优势:

GCC for openEuler

GCC for openEuler安装后可直接编译使用,且同时还提供A-FOT功能。

A-FOT(automatic feedback-directed optimization tool)是一款用于提升编译器openEuler GCC自动反馈优化特性易用性的工具。 该工具的目标是让用户通过较少的配置即可自动完成反馈优化的相关步骤(包括采样、分析、优化等),降低自动反馈优化特性的使用难度,享受反馈优化带来的性能提升。

  • 用户需要自行完成应用的构建脚本(build_script)和执行脚本(run_script)。
  • A-FOT工具会使用构建脚本完成应用的构建,使用执行脚本启动被优化的应用。
  • A-FOT工具目前仅支持单实例应用优化,即应用在执行时只有一个进程。
  • 用户需保证执行脚本启动的应用程序测试用例与实际生产环境行为相同,否则可能会导致负优化。
  • A-FOT是一款用于提升编译器GCC for openEuler自动反馈优化特性的工具,支持以下三种模式:
    • AutoFDO,AutoFDO是PGO的简化部署版,使用perf替代插桩获取程序运行profile,受益优化点包括矢量化、循环展开、循环剥离等优化。
    • AutoPrefetch,AutoPrefetch是增强版预取优化,根据Dcache访问、存取指令cache miss率,获取数据访问优化代码块并进行预取优化,同时优化预取提前量,建议和AutoFDO共同使用。
    • AutoBOLT,AutoBOLT是链接后二进制优化,对控制流复杂的程序具有显著的优化效果,主要优化包括BB重排、函数重排、冷热分区等优化,与AutoFDO、AutoPrefetch部分冲突。
  • A-FOT支持以下两种构建模式:
    • Wrapper,选择Wrapper构建模式,会使用A-FOT中的包装器编译。
    • Bear,选择Bear构建模式,会进行两次编译。