中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
鲲鹏小智

概述

本文面向鲲鹏原生应用开发者,基于鲲鹏920处理器的特性,从多个维度介绍鲲鹏原生应用开发时优化代码性能的方法。

首先简单介绍一下鲲鹏处理器。鲲鹏处理器是基于ARM架构的企业级处理器产品。在通用计算处理器领域,华为公司于2014年发布了第一颗基于ARM的64位CPU鲲鹏912处理器;2016年发布的鲲鹏916处理器是业界第一颗支持多路互连的ARM处理器;2019年1月发布的第三代鲲鹏920处理器则是业界第一颗采用7nm工艺的数据中心级ARM架构处理器。

图1给出了华为鲲鹏处理器家族的演化路线图。

图1 鲲鹏处理器演化路线

本文主要从硬件和软件两个方面介绍鲲鹏编程优化方法,编程优化框架如图2所示。

图2 编程优化框架

在硬件层面,优化与调优的方法的陈述主要基于鲲鹏处理器的特性展开。

鲲鹏920处理器采用 NUMA 架构,NUMA架构很好的解决了SMP技术对CPU核数的制约,因此拥有更多的核心是鲲鹏处理器的一大优势。但在程序并发运行时,跨NUMA节点的内存访问降低了程序的性能,本文在多核与NUMA中将介绍一些提升程序NUMA亲和性的编程方法。

鲲鹏920处理器片上系统采用华为海思全自研的TaiShan V110内核,就单个处理器核心而言,在性能提升过程中起着主导作用的是指令的时间并行技术,即指令流水线,鲲鹏920处理器支持多级流水线。在流水线中将介绍流水线编排优化方法,以提高流水线的吞吐量、效率,充分发挥处理器性能。而在Cache和预取,结合鲲鹏920处理器的三级缓存,本文会介绍一些良好的程序数据结构排布和访问的方法,可以较显著的提升Cache命中率。

在软件层面,则主要介绍指令集、编译器和加速库。

鲲鹏920处理器全面兼容ARMv8-A指令集,在SIMD编程将介绍ARM平台SIMD指令—— NEON指令 的使用。代码开发完成后,还需要编译器翻译成适应不同平台机器的可执行文件,本文将在编译器介绍如何利用编译器的特性充分优化代码。

除了上述较为通用的方法,华为公司发布了针对鲲鹏硬件、基础软件和应用软件的全栈优化解决方案——鲲鹏BoostKit应用使能套件,提供高性能开源组件、基础加速软件包和应用加速软件包,使能应用极致性能。本文将在鲲鹏加速库主要对鲲鹏基础加速库的使用做一个介绍。

搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词