概述
本文面向鲲鹏原生应用开发者,基于鲲鹏920处理器的特性,从多个维度介绍鲲鹏原生应用开发时优化代码性能的方法。
首先简单介绍一下鲲鹏处理器。鲲鹏处理器是基于ARM架构的企业级处理器产品。在通用计算处理器领域,华为公司于2014年发布了第一颗基于ARM的64位CPU鲲鹏912处理器;2016年发布的鲲鹏916处理器是业界第一颗支持多路互连的ARM处理器;2019年1月发布的第三代鲲鹏920处理器则是业界第一颗采用7nm工艺的数据中心级ARM架构处理器。
图1给出了华为鲲鹏处理器家族的演化路线图。
本文主要从硬件和软件两个方面介绍鲲鹏编程优化方法,编程优化框架如图2所示。
在硬件层面,优化与调优的方法的陈述主要基于鲲鹏处理器的特性展开。
鲲鹏920处理器采用
鲲鹏920处理器片上系统采用华为海思全自研的TaiShan V110内核,就单个处理器核心而言,在性能提升过程中起着主导作用的是指令的时间并行技术,即指令流水线,鲲鹏920处理器支持多级流水线。在流水线中将介绍流水线编排优化方法,以提高流水线的吞吐量、效率,充分发挥处理器性能。而在Cache和预取,结合鲲鹏920处理器的三级缓存,本文会介绍一些良好的程序数据结构排布和访问的方法,可以较显著的提升Cache命中率。
在软件层面,则主要介绍指令集、编译器和加速库。
鲲鹏920处理器全面兼容ARMv8-A指令集,在SIMD编程将介绍ARM平台SIMD指令——
除了上述较为通用的方法,华为公司发布了针对鲲鹏硬件、基础软件和应用软件的全栈优化解决方案——鲲鹏BoostKit应用使能套件,提供高性能开源组件、基础加速软件包和应用加速软件包,使能应用极致性能。本文将在鲲鹏加速库主要对鲲鹏基础加速库的使用做一个介绍。