科技 > 人工智能 > 云计算

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

152人参与 2024-08-04 云计算

2024年6月6日, openatom openeuler(简称"openeuler") 24.03 lts 版本正式发布。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




(0)
打赏 微信扫一扫 微信扫一扫

您想发表意见!!点此发布评论

推荐阅读

我参与,我做主 | 他们为openEuler的未来描绘蓝图

08-04

iSulad CDI:告别复杂,标准化配置容器设备

08-04

openEuler首场开源备份Meetup成功举办,Backup SIG正式成立!

08-04

活动回顾 | openEuler Talent-and-Service SIG Meetup东莞站

08-04

探讨前沿技术,共创开源未来!麒麟软件深度参与openEuler SIG Gathering 2024

08-04

同创共赢Cantian引擎,共话多主数据库存算分离 | openEuler DB Meetup北京站精彩回顾

08-04

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论