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支持的加速算法有:
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调用代码的前提下,使用到鲲鹏服务器的硬件加速能力。
目前已经对接的生态链加速组件包括:
通过对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)指令加速:(同时支持软算和硬算,双算法)
二、新的加密算法
三、更友好,更灵活的配置方式:
增强可配置性。提供了多项配置和管理功能,包括:可配置的队列深度,自定义内存管理,通过环境变量进行自定义配置,队列调度,设备查询,资源管理,用户状态 epoll,日志查询/管理。
四、测试工具和新增测试用例
五、简化用户api调用接口
5.2 uadk engine
一、在原本openssl 1.1.1f engine框架的基础上,新增对openssl 3.0+ provider框架的支持
二、软件鲁棒性提升
三、效率提升,小包使用cpu软算
四、增强可配置性,易用性提升
6. 未来展望
目前团队在加紧实现的任务包括:
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
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论