鲲鹏BoostKit提供性能倍增的应用加速软件包,使能数据处理极致性能、数据访问极致高效和云手机极致体验。
鲲鹏BoostKit应用加速软件包,详细介绍与最新内容请参见鲲鹏应用使能套件BoostKit -> 应用加速软件包。
鲲鹏BoostKit ARM原生利用ARM指令集同构优势,支持移动应用无损上云,同时将多年技术积累浓缩到Kbox云手机容器、指令流引擎、视频流引擎核心能力等组件,形成了云手机Turbo套件,降低了开发难度,提升整机的密度,降低云手机单路成本,其中HostOS支持Ubuntu和openEuler,GuestOS支持android-9.0.0_r55和android-11.0.0_r48,用户可以基于云手机Turbo套件进行二次开发,从而实现云手机极致的性能和业务体验。
ExaGear AArch32指令翻译软件为鲲鹏服务器提供AArch32特性,基于鲲鹏服务器在ARM原生场景下能够完全兼容AArch32的应用,保障AArch32 V8.0指令应用100%兼容。同时也支持pre-translator特性,优化翻译后的APP启动时间,提升客户体验。
Kbox云手机容器提供了软件定义手机的基础能力,其基于鲲鹏服务器,在Docker容器技术和Android开源项目(AOSP)基础上,实现了将GPU设备直通到容器的轻量级设备仿真层架构方案,提供了基于Android系统的云手机容器参考方案。可实现在鲲鹏服务器支持100路720p@30fps的Kbox云手机容器高并发(以托管场景为例,云手机并发密度取决于客户云手机实际应用),具有高密度、高兼容性等商业价值。
视频流云手机方案基于视频流的端云协同引擎,提供了低时延的云手机画面同步能力,支持H.264和H.265硬编码,在画质相当的情况下,可实现H.265编码带宽减少30%+,其实现原理是利用云端强大的能力将应用和游戏的运行、渲染成最终的画面,并进行视频的压缩流化后,发送到终端播放显示。视频流引擎支持视频编码能力、视频解码播放能力、云手机图像截屏能力、触控和音频抓取/播放能力等核心功能,客户可以基于这些引擎进行二次开发,实现在移动终端上进行操控应用和游戏等操作。云端采用专业显卡进行渲染,可以获取高画质的业务体验;对终端的要求极低,只要求有视频解码能力即可;提供统一API,降低二次开发难度,易集成。
指令流云手机方案采用业界独创的端云分离渲染技术,可实现云侧免GPU部署,整机硬件成本下降10%,其实现原理是云手机利用云端强大的算力,通过引擎实现云端复制应用和游戏的渲染指令,并进行渲染指令和纹理数据压缩流化,在端侧使用手机终端的GPU把这些指令渲染出来图像。指令流引擎,支持机指令分离渲染、纹理数据视频流化、触控和音频抓取/放能力等核心功能,客户可以基于这些引擎进行二次开发,实现在移动终端上进行操控应用和游戏等操作。通过指令流引擎技术,可以支持云手机全系统渲染,并提供近乎无损的画质,在1080P/2k/4k分辨率下均不影响传输带宽,并通过资源缓存技术,有效降低网络带宽50%+;突破云端GPU能力限制,实现无GPU高密运行机制,单路硬件成本降低40%,支持图形渲染状态机的本地执行与远端同步,实现1080P 30FPS低响应时延的用户体验。
鲲鹏BoostKit大数据聚焦大数据查询效率低、性能优化难等挑战,提供大数据组件的开源使能和调优、OmniRuntime、机器学习和图分析算法加速库等应用加速软件包,提升大数据分析效率。
适用Hive 2.X/3.X、Spark 2.X,openEuler操作系统基于大数据核心组件Hive、Spark通过磁盘IO、网络IO的调度策略优化、Neon指令优化等实现大数据计算性能提升。毕昇JDK性能优化基于鲲鹏处理器构建开源JDK社区,通过AppCDS、GC算法优化、编译优化等提升大数据核心组件Hive、Spark的计算性能。Hive性能提升2%~25%,Spark性能提升3%~25%。
大数据OmniRuntime是鲲鹏BoostKit大数据面向应用加速推出的一系列特性,包括OmniData算子下推、OmniOperator算子加速、OmniShuffle Shuffle加速、OmniMV物化视图、OmniAdvisor参数调优和OmniHBaseGSI全局二级索引,旨在通过插件化的形式,端到端提升数据加载、数据计算和数据交换的性能,从而提升大数据分析的性能。Spark使用OmniRuntime加速特性执行SQL计算,相比原生性能提升20%~40%,具体包括组件如下:
适用于存算分离场景或大规模存算融合场景,支持Spark 3.0.0、Spark 3.1.1、Hive 3.1.0(Tez 0.10.0),是一种将大数据引擎的算子下推到存储节点或卸载节点的服务,从而实现了近数据计算,减少了网络带宽,将该特性集成到Spark后,基于TPC-H测试用例12条算子下推的SQL性能平均提升40%。集成到Hive后,基于TPC-H测试用例4条算子下推SQL性能平均提升20%。
适用于虚拟化场景,支持Spark 3.1.1、Spark 3.3.1、Spark 3.4.3、Spark 3.5.2、Hive 3.1.0版本,其采用Native Code(C/C++)实现大数据SQL算子来提高查询性能的特性,通过列式存储和向量化执行技术,同时利用鲲鹏加速库,提升算子的执行效率,将该特性集成到Spark后,基于TPC-DS 99条SQL验证,可实现Spark性能提升30%。
适用于虚拟化场景,支持RDMA和TCP两种网络模式,支持Spark 3.1.1、Spark 3.3.1、Hive 3.1.0版本,其基于TCP/RDMA等网络介质,优化数据分析过程中跨节点的数据写入、传输和读取流程,提升Shuffle性能,支持数据分析过程性能提升,将该特性及算子加速特性集成到Spark后,基于TPC-DS 99条SQL验证,可实现Spark性能提升40%。
适用于虚拟化场景,支持Spark 3.1.1、Spark 3.4.3版本,支持ClickHouse 22.3.6.5版本,其通过AI算法从历史SQL查询中推荐出最优物化视图,并在Spark中自动对用户SQL进行物化视图匹配,将匹配成功的物化视图替换用户执行计划的部分SQL,大幅减少重复计算,提升查询性能,在将该特性集成到Spark后,基于TPC-DS基准测试用例实现了Spark组件计算性能平均提升30%,集成到ClickHouse后,基于Star Schema BenchMark实现ClickHouse计算性能平均提升数倍。
适用于虚拟机场景,支持Spark 3.1.1和Hive 3.1.0(只支持Hive on Tez模式),因Spark/Hive引擎参数众多,取值范围大,人工调优存在调优效率低,调优效果不佳,OmniAdvisor旨在通过AI的方式,实现参数的自动推荐,从而提升调优效率和调优效果。集成该特性后,基于TPC-DS 10条SQL可实现Spark性能提升10%。
适用于虚拟机场景,支持HBase 2.4.14版本,因HBase原生提供了主键索引,但若使用非Rowkey进行查询,则需要进行全表扫描,不仅耗费大量资源,查询时延也很长,OmniHBaseGSI全局二级索引,可以在非Rowkey列上创建全局二级索引,从而极大加速非Rowkey列的查询性能,集成该特性后,可实现在100并发下,平均时延小于30ms,P99时延小于300ms。
适用于Hadoop集群节点间负载不均衡场景,支持Hadoop 3.3.4版本,Yarn负载调度算法优化原生Capacity Scheduler调度器,基于集群节点物理资源权重计算及排序结果进行资源调度,实现资源的均衡配置和高效利用。
兼容Spark原生机器学习和图分析算法的API接口,支持适配Spark 2.3.2、Spark 2.4.5、Spark 2.4.6版本,部分算法支持Spark 3.1.1和Spark 3.3.1版本,基于算法原理和芯片特征针对机器学习和图分析算法进行深入优化,从而可以大幅提升了大数据算法场景的计算性能。基于鲲鹏CPU的机器学习&图分析算法加速库相比基于友商的Spark原生MLlib和GraphX,相同精度下计算性能提升20%以上。
鲲鹏BoostKit分布式存储使能套件聚焦开源Ceph存储的性能低、成本高等关键挑战,通过存储加速算法库和存储Ceph加速库等特性提升系统性能和降低存储成本,充分发挥鲲鹏算力优势,提供高性价比存储方案。
支持Ceph 14.2.8版本,其采用鲲鹏优化的算法代替主流开源算法,提升存储性能。当前包括EC算法、CRC16 T10DIF算法和CRC32C算法,具体介绍如下:
基于华为自研向量化EC编解码方案,通过同构映射将EC编码过程中所需的高阶有限域GF(2^w)乘法操作替换为二元矩阵乘法,进而将查表实现的复杂有限域乘法操作替代为XOR(Exclusive OR)操作,同时采用编码编排算法在校验块计算过程中对中间结果进行复用,减少XOR操作数,配合鲲鹏向量化指令实现编码加速。相比开源EC算法,KSAL EC算法性能更好。与主流开源EC算法相比,编码性能提升1倍以上。
通过大数求余算法和配合鲲鹏向量化指令实现编码加速,相比开源算法,CRC16 T10DIF算法4K性能提升130%,CRC32C算法4K性能提升30%。
存储维护工具库(KSML)是华为自研的存储维护工具库,包括HDD/SSD故障预测与HDD/SSD慢盘检测功能,基于机器学习算法,通过收集SMART数据训练模型,预测与识别存储集群潜在故障盘,通过采集系统磁盘的svctm完成慢盘检测。
SPDK的BDEV设备作为虚拟设备层对接底层多种设备类型(虚拟设备、物理设备),通过在BDEV设备中使能压缩和加解密能够支持所有SPDK设备。鲲鹏KAE通过Zlib和Openssl提供压缩和加解密,通过在BDEV设备中支持Zlib和OpenSSL的KAE加速实现对应能力的硬件卸载。
支持Ceph 14.2.8版本,适用于使用块存储或对象存储服务场景,不支持Bcache,该特性是针对开源Ceph的EC流程进行优化,降低了数据读写流程中的IO放大比例,从而使得整体性能更高。相对于Ceph开源EC,在均衡型配置下,对于块存储服务,EC Turbo性能可达到x86三副本80%以上,存储成本降低50%;对于对象存储服务,EC Turbo(4+2)性能达到x86三副本80%以上,大IO存储成本比三副本降低50%,小IO成本与三副本持平。
支持Ceph 14.2.8版本,适用于块存储和对象存储服务写场景,其支持通过IO直通、QoS控制策略、Writeback控制策略以及GC控制策略,提升Bcache场景下的Ceph集群写性能。在块存储随机写场景下,IOPS性能可提升20%以上。
O直通工具是针对Ceph均衡型场景下的一个流程优化工具,可以自动对Ceph集群进行性能优化。在均衡型配置场景下,使用IO直通特性可提升存储性能15%以上。
通过消除补零对齐操作带来的数据浪费问题,结合压紧封装、空间计数分配、粒度分流、聚合提交、批量回调等手段提升数据缩减率并提升系统整体IOPS,实现成本性能双收益。数据压紧可将数据压缩率再提高20%以上,对系统性能无损失。
元数据加速特性在RocksDB的基础上,结合华为自研算法进行了性能加速优化,在使能鲲鹏加速特性时可以获取更佳的性能。较开源RocksDB,混合读写场景性能提升超过30%。
智能读缓存通过IO智能预取精准识别热点请求并针对顺序、间隔等IO流进行IO预取,将IO提前载入读缓存,同时读缓存通过LRU算法淘汰冷数据,从而提高缓存的IO命中率,提升读性能。Ucache智能读缓存可提高读请求IO命中率以提升读性能。热点、顺序、间隔等IO流下性能提升100%。
在存算分离架构下,BoostIO利用计算侧的内存和磁盘资源构建分布式多级缓存,写缓存通过RDMA高速通信、缓存亲和策略、副本冗余和线性布局等特性提升业务写性能,提高数据可靠性;读缓存通过数据预取提前将热点数据加载缓存磁盘中,通过LRU淘汰策略和冷热识别提高读缓存命中率,从而提升业务读性能。
通过在Ceph网络框架AsyncMessage中新增插件支持UCX网络框架,实现Ceph全闪存场景支持网络全RDMA化。UCX通信处理层主要包含ceph与UCX接口适配,并根据RNDV协议的特点,实现了零拷贝,提升大块写的性能。
鲲鹏BoostKit机密计算TrustZone套件是基于ARM TrustZone技术的一个机密计算软件套件,包含华为自研TEE(Trusted Execution Environment,可信执行环境)安全操作系统iTrustee,鲲鹏服务器iBMC和BIOS等,结合开源的操作系统驱动以及SDK,旨在帮助伙伴更便捷地为行业客户构建机密计算解决方案,从而为用户的关键数据提供完整性、机密性保护和可信使用。
普通鲲鹏服务器默认不带有机密计算TrustZone完整套件,需要在购买鲲鹏服务器时明确带有TEE功能,支持TEE功能的服务器会在出厂阶段完成TrustZone套件预置安装。
iTrustee基于TrustZone技术实现了整套安全解决方案,包含正常模式的客户端应用(Client Application,CA)、安全模式的可信应用(Trusted Application,TA)、安全模式下的可信操作系统。
iTrustee应用于金融大数据数据挖掘场景,可保证数据处理过程中的机密性。可应用于一体化大数据中心场景,确保数据可信交易,同样也可用于行业隐私计算认证场景,确保计算过程中避免泄漏个人隐私信息。
iTrustee安全可靠,其基于华为自研的微内核实现,安全OS已在手机侧商用近10年,用户数已过亿,同时安全性获得CC EAL4+认证,兼容性获得GlobalPlatform认证。在规格方面也较为灵活,其中TEE侧安全内存支持按需配置,最大可配512GB,可支持大数据、AI等大型应用运行。
鲲鹏BoostKit数据库对开源MySQL OLAP查询效率低、OLTP场景高并发下锁导致的性能问题等关键挑战,提供MySQL可插拔向量化分析引擎、MySQL无锁优化、MySQL可插拔线程池和MySQL CRC32指令优化等加速软件包,深度优化了OLAP查询分析效率和OLTP在线交易事务处理能力,充分发挥多核算力极致性能。提供主流开源和商业数据库最佳实践,帮助开发者高效完成开源组件迁移和调优。
适用MySQL各版本,通过SSD硬件原子写特性消除Doublewrite双写软件冗余提升数据库的性能,通过SSD硬件原子写特性密集写场景性能预计提升15%。
适用MySQL各版本,基于DPDK在用户态直接读写网卡报文,共享大页内存传递报文,使用轻量级LwIP协议栈。能够大幅提高应用的网络IO吞吐能力,通过Gazelle网络优化,TPC-C综合性能预计提升10%。
适用MySQL各版本,采用多模态(源代码、汇编码、二进制)、全生命周期(编译、链接、后链接)的持续优化手段,获取性能更优的目标程序。使数据库TPC-C综合性能提升10%。
支持使用zlib进行压缩和解压的Greenplum版本,使用鲲鹏硬加速模块实现压缩、解压缩算法,结合无损用户态驱动框架从而提升查询性能。采用KAEzip可以在到达硬件瓶颈之前,在同一时间只处理一个请求、IO占比多的场景下,端到端的性能提升10%。
支持MySQL 8.0.20、MySQL 8.0.25版本,MySQL单SQL查询只能调度单线程,多核CPU无法使用,单查询性能查询差难于满足查询场景的性能要求,通过并行查询优化提升查询性能。可实现查询性能提升>1倍(性能提升与并行度有关)。
支持MySQL 8.0.20版本,在MySQL OLTP场景下DML语句(Insert、Update、Delete)大量并发操作trx_sys全局结构体中的关键数据结构,造成临界区的竞争和同步瓶颈。MySQL无锁优化改造后使用无锁哈希表维护事务单元,减少锁冲突,提升并发度,可实现Sysbench写场景下性能提升20%。
支持MySQL 8.0.20版本,在MySQ LOLTP场景下DML语句(Insert,Update,Delete)大量并发操作访问lock_sys->mutex全局锁保护的关键数据结构,造成锁竞争严重导致性能下降。替换成细粒度hash桶锁。减少锁冲突,提升并发度。可实现TPC-C综合性能预计提升10%。
支持MySQL 8.0.20、MySQL 8.0.25版本,在MySQL OLTP场景下高并发下系统默认的线程调度使得线程频繁跨NUMA的访问,这种情况导致CPU开销增大,性能提升受限制,需要对用户处理线程做动态绑定固定NUMA CPU减少跨NUMA访问,同时需要保证CPU访问的负载必须均衡,后台线程静态绑定固定NUMA CPU减少跨NUMA访问,提升后台线程效率。可实现OLTP场景性能提升10%。
支持MySQL 5.7.27、8.0.20、8.0.25、8.0.30和8.0.35版本,仅基于MySQL 8.0.25、8.0.30和8.0.35的线程池特性支持可插拔动态加载。在MySQL OLTP场景下,高并发下线程数过多,CPU消耗在无效的资源竞争和频繁切换上,线程池方案通过队列方式管理任务,所有的任务先放入等待执行队列,按系统执行能力取出任务队列让CPU执行,每个CPU同时处理任务个数是有限的,一般2~5个最优,从而保持稳定的业务处理能力。可实现OLTP TPC-C场景性能10000并发性能下降到最优的10%左右,开启线程池功能,性能可维持在85%。
提供支持MySQL 8.0.25版本的补丁包,该特性采用鲲鹏CRC32硬件指令替换CRC32算法的软件实现,从而提高系统业务的性能。通过CRC32指令优化特性,MySQL Sysbench写场景性能有5%的提升。
支持MySQL 8.0.25版本,该特性是MySQL预留接口第二执行引擎(Secondary Engine)的一种轻量实现,通过执行计划的并行计算,充分发挥鲲鹏CPU多核的优势,使OLAP性能倍级提升,且具有可插拔性,支持动态加载。采用并行加速技术,可将OLAP查询性能提升到3倍以上。
鲲鹏BoostKit虚拟化使能套件聚焦虚拟化轻载性能低、网络损耗大、资源碎片严重及开源生态可用性等关键痛点,提供了OVS流表网卡加速等特性提升系统性能,充分发挥鲲鹏多核架构、核间完全隔离的优势,释放鲲鹏极致算力。
负载感知加速系统(以下简称WAAS)能够基于每个计算任务深度调优,启用最优的加速库,自动配置全栈最佳参数。通过收集应用负载信息生成调优策略,通过应用参数调优、OS调度参数调优、网卡中断绑核调优和动态线程优先级调优,对被调优任务进行全栈深度优化,动态调整达到业务实时最佳。
在OVS+DPDK的基础上,提出流表归一化的方案,进一步加速云计算中的数据包转发性能,其典型场景为VXLAN+CT组网。卸载场景较不卸载场景网络转发性能提升30%以上。
在虚拟化场景下,将OVS转发流表卸载到网卡硬件上,利用硬件的查表能力来提升流表的查找速度,提高虚拟化网络的处理能力,可实现虚拟化网络的转发性能提升10倍。
通过BoostKit提供的SPDK+Ceph的方案来对虚拟化场景下的Ceph存储客户端进行加速,以提升存储场景的IO读写能力。存储IOPS性能提升30%以上。
虚拟化DPU卸载支持虚拟化场景下网络和存储的加速,其可以将本来运行在物理机上的软件(如:OVS-DPDK、SPDK等)卸载到DPU卡上运行,节省了物理机的CPU负载,从而提高虚拟机密度,同时DPU卡支持VirtIO-net和VirtIO-blk等协议,其作为VirtIO设备后端,可提高虚拟化网络和存储性能。
适用于游戏类业务场景,支持QEMU 6.2.0和Libvirt 6.2.0版本,支持openEuler 22.03 LTS SP4系统,在ARM架构的虚拟机环境中,查看缓存大小通常会默认显示一组预设值,这些默认值无法准确反映虚拟机实际使用的缓存大小。这种情况下,虚拟机中的应用程序和操作系统优化可能会受到影响。为了解决这个问题,本特性提供了一种在Libvirt的虚拟机XML配置或QEMU启动虚拟机的命令中,明确指定缓存大小的方式。通过采用这种特性,虚拟机可以精确地反映其使用的缓存大小,来获取更精确的缓存结构信息,从而更好地优化虚拟机中的应用程序性能。该特性是由QEMU和Libvirt的补丁提供的。
通过限制离线业务对内存带宽和L3缓存容量的占用,避免离线业务干扰实时业务的性能:
MPAM插件涉及的共享资源包括:L2 Cache、L3 Cache和DMC带宽。
适用于容器超分场景,支持K8s 1.28.4和Containerd 1.7.14版本,其通过容器运行时的NRI模式捕捉容器请求,依照调度策略设置容器cgroup参数,以实现NUMA亲和性管理,增加Kubernetes容器超分场景下的NUMA亲和机制,提升容器在超分场景下的5%~10%的性能。
鲲鹏BoostKit CDN使能套件聚焦CDN开源组件可用性和CDN缓存节点吞吐量低、时延大等问题,通过使能鲲鹏处理器内置的RSA加速引擎,对RSA2048算法进行硬件卸载,同时提供了NUMA优化等手段,以便充分发挥鲲鹏处理器多核优势,助力CDN缓存节点提供更大吞吐量,实现更低时延。
鲲鹏BoostKit Web使能套件聚焦Web应用HTTPS连接性能和Web开源组件可用性等关键问题,通过使能鲲鹏处理器内置的RSA加速引擎,提升Web网站的安全性,并实现用户HTTPS访问的极致体验。
鲲鹏BoostKit搜推广使能套件旨在为互联网的搜索、推荐、广告业务场景提供基于鲲鹏平台的全栈解决方案的加速能力,组件涵盖召回场景核心检索算法、排序场景模型推理TensorFlow框架软件全栈及其AI核心算子库等。
鲲鹏召回算法库SRA_Recall是华为提供的基于鲲鹏平台优化的召回算法库,包含KBest和KScaNN:
鲲鹏推理加速套件SRA_Inference是华为提供的基于鲲鹏平台优化的推理加速套件,当前主要包含鲲鹏TensorFlow算子库:
鲲鹏AI库KAIL(Kunpeng Artificial Intelligence Library)是华为提供的基于鲲鹏平台优化的高性能AI算子库,主要完成深度神经网络算子库和拓展算子库,拓展算子包括softmax、random_choice等。
HPC聚焦资源调度效率低、应用性能优化难等关键挑战,通过全栈架构创新、软硬件自研、基础软件优化和行业应用性能调优等技术构建全栈高性能计算基础平台,帮助客户释放平台算力,缩短产品上市周期,提升企业产品竞争力。