---
title: 功能介绍
description: "鲲鹏原生开发在流水线编译构建阶段提供了毕昇编译器、毕昇JDK、GCC for openEuler。通过上述鲲鹏亲和编译器，在不修改用户应用源码的情况下，实现鲲鹏平台的应用性能提升。"
url: https://www.hikunpeng.com/document/detail/zh/nativedevp/userguide/pipeline/NativeDevelopment_0036.html
sourcePath: /source/zh/nativedevp/userguide/pipeline/NativeDevelopment_0036.html
indexId: f11d80d5c96d296b3ab724b94b521bf42da316c045f96242edd801c631c7680e68
---
# 功能介绍

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

#### 毕昇编译器

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

- 支持C11、C++14/17、Fortran语言标准，OpenMP 4.5/5.0 API标准。
- 高性能编译算法，基于鲲鹏架构深度调优，内存优化、循环优化、自动向量化等多种编译增强。
- 支持安全/高效编码工具集，包括静态检查工具、重构工具等。

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

无感切换的优势：

- 性能：会针对鲲鹏进行后端亲和的编译以及在不损精度的情况下进行最优性能编译，性能比开源编译器平均高30%以上，针对关键场景也会进行极致性能优化，让性能再上一个台阶。
- 安全：相比gcc，毕昇编译器在语法检查、标准遵循上更加严格，能帮助用户更早地发现问题，规范代码，提高代码质量。


#### GCC for openEuler

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

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

使用A-FOT工具有两种方式，配置文件参数优化和命令行参数优化。

- A-FOT工具支持以下两种构建模式：

  - Wrapper，选择Wrapper构建模式，会使用A-FOT中的包装器编译。
  - Bear，选择Bear构建模式，会进行两次编译。
- A-FOT工具支持以下三种优化模式：

  - AutoFDO，AutoFDO是PGO的简化部署版，使用perf替代插桩获取程序运行profile，受益优化点包括矢量化、循环展开、循环剥离等优化。
  - AutoPrefetch，AutoPrefetch是增强版预取优化，根据Dcache访问、存取指令cache miss率，获取数据访问优化代码块并进行预取优化，同时优化预取提前量，建议和AutoFDO共同使用。
  - AutoBOLT，AutoBOLT是链接后二进制优化，对控制流复杂的程序具有显著的优化效果，主要优化包括BB重排、函数重排、冷热分区等优化，与AutoFDO、AutoPrefetch部分冲突。

- 用户需要自行完成应用的构建脚本（build_script）和执行脚本（run_script）。
- A-FOT工具会使用构建脚本完成应用的构建，使用执行脚本启动被优化的应用。
- A-FOT工具目前仅支持单实例应用优化，即应用在执行时只有一个进程。
- 用户需保证执行脚本启动的应用程序测试用例与实际生产环境行为相同，否则可能会导致负优化。
