---
title: 编译器调优
description: "选择针对鲲鹏920架构优化的编译器，目前最新版本为GCC 9.1.0和GCC 9.2.1，其他备选的编译器包括GCC 7/8系列。"
url: https://www.hikunpeng.com/document/detail/zh/kunpenghpcs/hpcindapp/tngg/kunpenghpcsolution_05_0023.html
sourcePath: /source/zh/kunpenghpcs/hpcindapp/tngg/kunpenghpcsolution_05_0023.html
indexId: 999367195f3619b9bd0615bb69a826c486818998e9a4eb15ce3ef84600bac21c69
---
# 编译器调优

#### 原理

选择针对鲲鹏920架构优化的编译器，目前最新版本为GCC 9.1.0和GCC 9.2.1，其他备选的编译器包括GCC 7/8系列。


#### 使用方法

GNU编译器可选的主要优化参数如表1所示。
**表1 可选的主要优化参数**

| 参数 | 说明 |
| --- | --- |
| \-O3和\-O2 | 少部分应用功能在\-O2时性能更好。 |
| \-march=armv8.2\-a \-mtune=tsv110 | GNU 9可通过\-march=armv8.2\-a \-mtune=tsv110指定鲲鹏920架构进行优化。 |
| \-ftree\-vectorize | \-O3时默认启用。 |
| \-finline\-functions | 启动函数内联，\-O3是默认启用。 |
| \-flto | 启用Link Time Optimization优化，编译和链接参数都需使用。 |
| \-ffast\-math | 启用不安全的数学操作，数学函数优化，不建议生产环境使用。 |
| \-Ofast | 最高性能优化，仅用于benchmark，不建议生产环境编译使用。 |
| \-fprofile\-generate, \-fprofile\-use= | Profile\-guided optimization，通过编译一次，运行一次（生成运行信息），再编译一次（使用运行信息优化应用的性能）。可优化的点包括：Function inlining, Block ordering, Register allocation, branch prediction，使用时需要在编译参数和链接参数都应用。 |
