4月26日,软通动力在深圳大学城2021年华为开发者大会HDC.Cloud的鲲鹏计算分论坛上,分享了主题为“鲲鹏KAE开源应用使能场景实践”的主旨演讲。软通动力鲲鹏计算生态业务技术总监刘军利,从鲲鹏加速引擎(KAE)应用原理、使用场景、实践等方面,全面分享软通动力在多应用场景中基于KAE使能的优秀实践。
刘军利
软通动力鲲鹏计算生态业务技术总监
历任华为与软通动力多个产品的产品架构师,对鲲鹏生态系统和架构设计有深入理解。曾参与计算虚拟化、混合云等产品架构设计,其产品已在市场规模化运营多年。
鲲鹏计算硬加速
KAE引擎当仁不让
华为提出“鲲鹏+昇腾”的双引擎计算战略后不断在智能计算、智能数据与存储业务领域持续发力。KAE是鲲鹏平台指令优化和软硬件结合的加速技术,主要是在鲲鹏920、916 CPU的硬件实现加解密、解压缩等功能,实现应用加速。
在本次开发者大会上,刘军利着重介绍了软通动力基于KAE加速引擎在鲲鹏硬加速领域所取得的进展和不同场景下的使能实践。当前,KAE加速引擎主要包括芯片加速器子系统,集成在鲲鹏920处理器中,提供加速器的能力,对上层提供寄存器接口;BIOS子系统,主要负责根据License决定对加速器哪些模块初始化,并上报加速器ACPI表到内核;BMC子系统,主要负责对加速器License的管理;加速库器驱动子系统,KAE系统的核心,向上层提供各子加速器模块统一的驱动接口;应用库子系统,包括OpenSSL加速器引擎、zlib替代库等,向上层提供标准接口;应用系统用户的应用系统,通过调用应用库子系统或驱动子系统实现加速器的功能。
“KAE除了性能优势外,还面向开源社区,有开源软件的诸多优点。”刘军利介绍道:首先,KAE使用起来比较简单,它兼容OpenSSL和Zlib的标准接口,即已集成在OpenSSL和Zlib中,上层应用只需要调用OpenSSL和Zlib的标准接口,无需做较大改动;其次,KAE基于华为的UACCE加速器内核框架,已进行系统优化,避免传统内核调用方式的路径损耗;第三,KAE驱动完全开源,用户可以在开源社区下载驱动,自行进行编译;最后,在兼容性方面,KAE已兼容10多款主流操作系统,开源性能优异。
KAE使能两典型场景
效果立竿见影
相对于软件,KAE提供更高的解压缩、加解密加速功能,但这些加速能力如何在现实中获得应用?刘军利在演讲中用Web应用加速和Spark加速两个场景实践加以说明。
在Web应用场景中,当前60%的网站都使用HTTPS技术,但由于HTTPS要求对每次会话协商、数据传输进行加密,这就要求Web服务有更高的处理性能,但单对于Nginx开源版本,存在不支持OpenSSL异步模式、软件SSL加速方案性能低而导致会话并发量低、CPU资源消耗高等问题。而当KAE使能于Nginx时,其支持异步模式(epoll)、增加OpenSSL KAE Engine使能KAE加解密加速功能、支持引擎一键部署等功能,使得Nginx并发数、性能等指标参数皆能获得数倍提升。
在Spark集群场景中,无论是Spark SQL进行分布式查询,或者类似WordCount进行分布式计算,数据都会在节点之间大量传递,因此,在数据传递过程中的压缩、解压缩就会较大的影响Spark的性能。而当KAE使能于Spark进行压缩、解压缩时,在TPC-DS SQL和HiBench性能测试中,KAE硬加速都能表现出卓越优势,最终都会发现这些性能指标得到大幅改善,大幅提升数据块的混合读写性能。
综上所述,可以发现KAE相对软件加速有更好的加速性能,相对于单独加速卡能同时降低CAPEX;同时,通过Openssl和glib提供标准接口,应用兼容性好,代码适配量小。
扫描二维码,进入HDC.Cloud论坛
点击左下角阅读原文,查看演讲回顾视频