编译器调优
原理
选择针对鲲鹏920架构优化的编译器,目前最新版本为GCC 9.1.0和GCC 9.2.1,其他备选的编译器包括GCC 7/8系列。
使用方法
GNU编译器可选的主要优化参数如表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,使用时需要在编译参数和链接参数都应用。 |
父主题: 基础软件调优