上一期,鲲鹏布道师汤景仁向我们分享了如何使用鲲鹏BoostKit中基于ARM指令的加速库,实现软件加速。
今天,汤老师继续带您挖掘鲲鹏BoostKit KAE加速库 –基于鲲鹏硬件加速引擎的加速库技术。
鲲鹏加速引擎 - CPU集成的“高性能加速卡”
鲲鹏BoostKit提供基于KAE(Kunpeng Accelerator Engine 鲲鹏加速引擎)的加速库,包含ZIP(硬加速-压缩),HPRE(硬加速-非对称加解密),SEC(硬加速-对称加解密)。
鲲鹏KAE利用鲲鹏处理器内置的硬件加速单元和特有的指令,用硬件算法代替软件算法,大幅度提升应用性能,使用特有框架,帮助降低调用路径性能损耗。
拥有了鲲鹏KAE的加速能力,相当于系统的每个CPU额外集成了性能强大且低负载的压缩或加解密硬件加速卡。
鲲鹏加速引擎KAE架构图
加速场景化性能,卸载CPU业务负载
鲲鹏KAE加速库可以广泛使用在分大数据、布式存储、Web应用等主流应用场景,带来显著的性能加速效果。
大数据加速场景
大数据特定场景下海量数据需要在节点之间做传输同步,为了保障业务数据的安全,通常需要把数据加密之后再传输。
如果采用常规的CPU加密方案,会导致CPU利用率大幅提升20%,可能产生系统性能瓶颈。但如果采用独立的硬件加速卡进行加密,则需要额外采购和部署硬件,带来系统硬件成本的上升。
使用鲲鹏KAE加解密加速库,充分利用鲲鹏处理器的硬件加密模块,不仅可以大幅度地提升加密性能,相比不加密的状态仅会产生<5%性能损耗,而且完全卸载CPU的加密计算,节点的CPU资源可以用来额外处理其他更多的大数据计算,从而实现端到端的系统性能提升。
基于鲲鹏BoostKit KAE的加解密架构图
分布式存储加速场景
企业客户在定期归档业务数据时,通常会对业务数据进行数据压缩处理,通过提升磁盘利用率,节约磁盘空间和降低存储成本。鲲鹏KAE压缩解压缩加速库能够卸载CPU负载并加速 zlib/gzip压缩,在混合读写7:3的典型场景中,能够块存储和对象存储的压缩性能平均提升15%+,最高提升40%。
基于鲲鹏BoostKit KAE的压缩解压缩架构图
Web应用加速场景
互联网和金融Web应用中通常采用HTTPS(超文本传输安全协议)保障网络数据的安全传输,其关键在于采用SSL/TLS来加密HTTP通信数据包。HTTPS默认采用RSA非对称加密算法,在客户端接入时RSA运算会消耗大量的CPU算力。
理想情况下,用户期望系统能够提供80K~100K次/秒以上的RSA加密计算能力。然而,常规x86 CPU1个物理核只能处理约650次/秒RSA加密计算,而一台x86高端服务器处理能力也低于20K次/秒。
鲲鹏KAE RSA加速库支持RSA算法,应用可通过Nginx异步调用OpenSSL的鲲鹏KAE。鲲鹏KAE RSA加速库提供108K次/秒的RSA加密计算能力,相比x86 CPU方案提升4倍性能,相比x86加速卡方案提升35%,大幅提升了客户端接入Web应用请求的响应能力。
使用极简,应用无需修改
鲲鹏KAE加速库的部署和调用操作非常简单,对于用户非常友好。鲲鹏KAE在系统启动阶段通过License激活,BMC子系统负载管理芯片加速子系统的License,当系统初始化时,BMC将License传递给BIOS系统。
BIOS子系统解析License信息,根据解析结果对芯片加速子系统进行使能控制,并上报加速器ACPI表到内核。上层应用基于OpenSSL/zlib加速库调用鲲鹏KAE,并通过寄存器操作调用芯片加速子系统。
鲲鹏KAE目前兼容OpenSSL和Zlib标准接口,如果上层应用已经调用了OpenSSL或是Zlib,则应用无需做任何修改。此外,鲲鹏社区提供开源的鲲鹏KAE驱动,用户可以直接下载源码,并自行编译和安装。