openEuler 24.03 LTS发布,加速库UADK迎来重要更新

2024年6月6日, OpenAtom openEuler(简称"openEuler") 24.03 LTS 版本(下载:openEuler下载 | openEuler ISO镜像 | openEuler社区官网)正式发布。openEuler 加速库也迎来了重要更新。本文将带各位读者详细了解openEuler加速库SIG【1】的重要组件UADK的能力,价值和发展状态。

1.  UADK的起源和能力

UADK,全称为用户态硬件加速器开发工具包(User Space Accelerator Development Kit),支持共享虚拟地址(SVA)技术,为用户提供高效利用硬件加速器能力的统一编程接口。它为用户提供了基础的库和驱动支持。UADK 提供了一组不断扩展的高性能算法实现,涵盖了加密、压缩等功能。在最新的openEuler 24.03 LTS版本中,UADK已经能够同时支持硬件加速引擎和Arm64 SVE 以及 Crypto Extension CPU指令加速。

UADK提供的算法库使得用户应用程序能够利用服务器加速能力,显著提高应用性能。UADK由Linaro 和华为团队共同开发。

在最新版 openEuler 24.03-LTS 中,UADK支持的加速算法有:

• 压缩算法: GZIP,ZLIB,DEFLATE,LZ77_ZSTD

• 非对称加解密: RSA,DH,ECC(SM2,ECDSA,ECDH,X25519/X448)

• 对称加解密: AES,SM4,DES/3DES

• 摘要算法: SHA-1,SHA-2,SM3,MD5

Note:当前的使能调优工作基于鲲鹏920处理器芯片,但UADK作为通用的用户态框架,很容易与具备SVA能力的其他厂商硬件加速引擎进行集成。配合新的软算/硬算框架,未来UADK还可扩展至多架构CPU加速指令。

2. UADK 的加速效果

通过使用 UADK 和鲲鹏硬件加速器,在多种场景中都可以获得显著的性能提升。这里引用了2024年5月Linaro Connect上发布的实测结果。下面两张图分别展示了使用UADK在OpenSSL speed RSA2048,SM3,SM4测试时的性能提升,和在大数据场景中,HDFS Transparent Encryption / TeraSort SM4实测的处理能力提升。

如果您想了解更详细的分析说明,欢迎访问Linaro Resources Hub网站【2】观看完整演讲内容。

图片

图片

3.  UADK 的生态使能

截至目前,UADK 已经和多种生态链加速组件进行了使能对接。这些工作大大降低了用户的使用门槛。让用户在不改变或少改变现有 APIs调用代码的前提下,使用到鲲鹏服务器的硬件加速能力。

图片

目前已经对接的生态链加速组件包括:

• GmSSL 3.0,能让UADK更好地服务于国密算法SM2/3/4应用场景

• Nginx 1.20.0,对https短连接场景有很好的加速效果

• OpenSSL 1.1.1f+

• OpenSSL 3.0+

• DPDK,支持UADK crypto PMD 和UADK compress PMD

• SPDK,支持UADK crypto PMD 和UADK compress PMD

• OpenJDK / BishengJDK

• Zlib 压缩库

通过对JDK的支持,让UADK能够进一步惠及大数据和AI数据处理场景。

4.  UADK 的设计要点

简单来说,UADK 主要由两部分组成:内核空间的UACCE 和 用户空间的算法库。两个部分分别负责向下和向上的生态对接。

通过UACCE 【3】,可使支持 SVA 的不同供应商的硬件加速器适应于 UADK。(注:Linux内核从 5.7 版本开始已经在 ARM64 平台上支持 UACCE 和 SVA。)

图片

通过用户空间的算法库【4】,UADK 提供了一组不断扩展的高性能算法实现,涵盖加密、压缩等功能,如AES,SM4,GZIP等。这些算法库使用户应用程序能够利用硬件加速功能来显著提高性能。

5.openEuler-24.03-LTS 版本中的重要更新

从openEuler-22.03-LTS版本首次引入UADK,到今天的openEuler-24.03-LTS版本发布,UADK【4】以及与OpenSSL对接的UADK_Engine【5】迎来如下重要更新。

5.1 UADK

一、支持 SVE汇编 和 Crypto Extension (CE)指令加速:(同时支持软算和硬算,双算法)

• 使用了 CE 指令来加速 SM4(ECB、CFB、XTS、CBC、CTR)和 SM3 算法

• 使用了 SVE 指令来加速 SM3 和 MD5 哈希计算,并且支持multi-buffering

二、新的加密算法

• 支持SM4-XTS GB standard

• 支持AES-CBC CTS mode

三、更友好,更灵活的配置方式:

增强可配置性。提供了多项配置和管理功能,包括:可配置的队列深度,自定义内存管理,通过环境变量进行自定义配置,队列调度,设备查询,资源管理,用户状态 epoll,日志查询/管理。

四、测试工具和新增测试用例

五、简化用户API调用接口

5.2 UADK Engine

一、在原本OpenSSL 1.1.1f Engine框架的基础上,新增对OpenSSL 3.0+ Provider框架的支持

二、软件鲁棒性提升

三、效率提升,小包使用CPU软算

四、增强可配置性,易用性提升

6.  未来展望

目前团队在加紧实现的任务包括:

• 软算/硬算的调度策略

• 增加更多算法,包括CPU指令集的软算和硬算

• 在UADK_Engine中,针对新算法增加相应provider

• 将UADK适配到更多生态组件中,比如QEMU live migration, 又比如 Ceph

7.  参考资料

【1】openEuler Acclib SIG主页https://www.openeuler.org/zh/sig/sig-detail/?name=sig-AccLib

【2】MAD24-408 Accelerator: UADK’s usage and development, https://resources.linaro.org/en/resource/44w3i93Jq9dENzwc7mxATt

【3】Introduction of UACCE,https://docs.kernel.org/misc-devices/uacce.html

【4】UADK in github.com,https://github.com/Linaro/uadk

【5】UADK_Engine in github.com,https://github.com/Linaro/uadk_engine

8.  关于Linaro

Linaro 支持在动态Arm 生态系统中快速部署产品。Linaro 的尖端解决方案和协作平台促进开源创新的快速开发、测试和交付,使企业能够在当今竞争激烈的技术领域保持领先地位。Linaro 在企业和开源生态系统之间营造了一个协作、标准化和优化的环境,并在开源发现和采用方面发挥着关键作用。

Linaro 的专业知识和贡献涵盖测试和Linux 长期支持、安全、云和边缘计算、物联网、人工智能、汽车、CI/CD、工具链、虚拟化以及专注于支持和维护的垂直项目,比如Windows on Arm 和 Android 生态系统。

自2010年起,Linaro公司一直致力于建立信任、保证质量,并促进行业内的协作。

官网访问: www.linaro.org

  • 29
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

openEuler社区

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值