编译器调优
原理
选择针对鲲鹏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,使用时需要在编译参数和链接参数都应用。 | 
     父主题: 基础软件调优