0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

DPU软件栈五层模型系列(一)DPU异构计算架构五层开发模型

中科驭数(北京)科技有限公司 2022-06-06 18:14 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一般说来,异构计算的核心目的是解决特定应用场景下算力不足的问题,并且大幅度提升整体系统的计算性能。在整体架构上,它的分层逻辑从应用场景出发,通过上层的需求来定义下层的功能,而每一层是对特定功能的抽象与封装。在定义每一层功能时,要达到以下几个目标:

各层职责单一

层间边界清晰

层内功能实现独立

灵活易扩展

基于上述目标,将一个异构计算的系统抽象为五层(如下图所示),自下而上分别是:1)DSA设备层(DSA Device Layer),2)DSA操作层 (DSA Operating Layer),3)计算引擎层(Scheduling Operating Layer),4)应用服务层(Application Service Layer)和5)业务开发层 (Business Development Layer),详述如下。

pYYBAGKdni-AKbWXABHPTwvC8VU475.png图异构计算系统抽象模型

一、DSA设备层

DSA设备层代表的是执行异构计算的DSA处理器以及集成了该处理器的硬件设备,例如,以DPU或GPU为处理器的异构计算设备。异构计算设备需要具备以下两个核心能力:1)提供支持专用计算操作的指令集(Instruction Set),2)CPU或其他DSA设备的标准通信接口,如PCIe数据传输标准。

二、DSA操作层

DSA操作层是对DSA处理器的指令集的管理以及基础开发平台的整合,该层完成了对硬件资源的抽象,从而使上层软件对底层设备透明;DSA操作层是对DSA设备层计算设备的抽象和计算资源的封装,是软件与硬件、逻辑与物理的边界。它基于如DPU芯片等DSA处理器提供的指令集,以更加抽象和编程友好的方式对上层提供了异构计算开发和访问的软件接口、以及设备监控管理的接口。该层内部有四个必要的模块,分别是设备驱动器,指令集管理器,资源访问接口,开发和管理平台。

  • 设备驱动器:设备驱动器是硬件设备的软件抽象,它基于操作系统标准的驱动框架及PCIe协议,实现了对计算设备的物理访问,主要包括设备处理器的指令执行和设备存储的读写。
  • 指令集管理器:指令管理器的作用是对计算设备所提供的指令集进行统一管理,通过对指令集的封装及组合,提供更加友好的编程接口。
  • 资源访问接口:基于设备驱动器和指令集管理器的功能,该模块完成对整个计算资源访问的抽象和封装,它以编程接口的方式对上层提供资源访问入口,服务于上层计算逻辑和控制逻辑的执行。
  • 开发和管理平台:除了上述运行时所需的能力外,还需要针对开发人员提供友好的编程工具,如指令集编译工具、监控管理工具、日志工具、异构计算卡模拟器等。

三、计算引擎层

计算引擎层是对计算逻辑的封装,为上层提供通用的计算能力。与DSA操作层的对计算资源封装不同,计算引擎层是对计算逻辑的封装,它基于DSA操作层提供的资源访问接口,根据上层应用层软件对算力的需求,提供了可复用的算子集合及执行接口。

算子抽象

算子定义为实现某一特定功能或算法的函数或独立的服务,它是对计算逻辑的抽象。例如,根据指定条件对数据进行过滤的函数可以是一个算子,称它为“过滤算子”。在标准的数据库软件中,它的算子有Scan, Join, GroupBy等,而在网络处理软件中,特有的算子会是以BSD Socket,NVMe等标准服务的形式呈现。由于异构计算的“异构”特性,每个算子在不同设备上的具体实现有所不同,所以针对每一个支持的算子,都要有多种不同设备平台上的实现,如ScanOnDPU、ScanOnGPU。

计算优化器

异构计算追求的是计算性能的提升,相应的需要一个计算优化器来对上层的计算请求做优化。它的基本策略是根据应用场景、上下文、数据规模等因素来动态的选择最优的算子实现进行计算。

四、应用服务层

应用服务层是数据处理的应用服务软件,也是算力的需求侧。应用服务层代表具有通用功能的软件系统,这些软件系统可以利用计算引擎提供的算子进行异构计算,从而达到计算性能提升的目的。常见的应用层软件系统有分布式计算领域的Spark, Flink, Hadoop;数据库领域的PostgreSQL, MySQL;分布式网络中的gPRC,Network Gateway,Nginx;以及存储服务中的Ceph等等,基本上通用服务型的系统都属于该层的范畴。

在实际开发中,针对应用服务层中的软件,需要解决以下几个关键问题:

  • 性能瓶颈的识别:通常应用软件的性能瓶颈会在高并发、大吞吐的情况下出现,这些瓶颈一般源于CPU计算资源的竞争、CPU计算性能的不足、网络传输的延迟以及磁盘I/O的延迟等。识别出应用软件的性能瓶颈是算力卸载的第一步。
  • 异构计算的有效性边界:在定位到软件的性能瓶颈后,需要从中识别出哪些是可以通过异构计算来解决的。通常,CPU成为瓶颈的原因会有两类,一类是算力的问题,另一类是算法的问题。针对算力的问题,可以通过异构计算来解决,而算法的问题则不然。
  • 算子的高效调用:算子是异构计算的执行单元,只有把算子集成到应用软件的执行路径中,算力卸载才算完成。考虑到性能的优化,还需要根据实际情况优化算子的执行策略,例如,数据在主机端与设备端内存之间的数据拷贝策略、各算子执行序列的编排策略等等。
  • 应用软件的向前兼容性:在整合应用软件与异构计算的算子时,要确保应用软件的向前兼容性,以保证应用服务层的软件迭代对正在运行的上层业务系统是透明的,从而提高整个架构的稳定性与可维护性。

五、业务开发层

业务开发层是在某特定领域的业务系统。业务开发层是最贴近实际业务场景的软件系统,通常它是针对某个特定行业的具体业务需求定制的软件系统,如金融行业的交易系统,互联网行业的数据分析系统等等。整个异构计算架构本质上就是解决业务层的性能瓶颈问题,所以在实际开发过程中,应该从业务端出发,寻找要解决的根本问题,然后驱动整个异构系统的构建。同时,整体架构也要保证底层构建对具体的业务系统完全透明,达到对各行业业务软件系统的无缝支撑和业务逻辑开发的隔离。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • DPU
    DPU
    +关注

    关注

    0

    文章

    407

    浏览量

    26199
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    PCIe协议分析仪能测试哪些设备?

    PCIe协议分析仪能测试多种依赖PCIe总线进行高速数据传输的设备,其测试范围覆盖计算、存储、网络及异构计算等多个领域,具体设备类型及测试场景如下:、核心计算设备 GPU(图形处理器
    发表于 07-25 14:09

    模型推理显存和计算量估计方法研究

    随着人工智能技术的飞速发展,深度学习大模型在各个领域得到了广泛应用。然而,大模型的推理过程对显存和计算资源的需求较高,给实际应用带来了挑战。为了解决这问题,本文将探讨大
    发表于 07-03 19:43

    异构计算解决方案(兼容不同硬件架构

    异构计算解决方案通过整合不同类型处理器(如CPU、GPU、NPU、FPGA等),实现硬件资源的高效协同与兼容,满足多样化计算需求。其核心技术与实践方案如下: 、硬件架构设计
    的头像 发表于 06-23 07:40 639次阅读

    如何释放异构计算的潜能?Imagination与Baya Systems的系统架构实践启示

    报告作者:PallaviSharma,Imaginaiton产品管理总监Dr.EricNorige,BayaSystems首席软件架构师关注Imagination公众号,消息框发送【异构计算】,即可
    的头像 发表于 06-13 08:33 830次阅读
    如何释放<b class='flag-5'>异构计算</b>的潜能?Imagination与Baya Systems的系统<b class='flag-5'>架构</b>实践启示

    DPU核心技术论文再次登陆体系结构领域旗舰期刊《IEEE Transactions on Computers》

    能力,在降低了规模限制的硬件成本和设计周期的同时,又可通过软件编程实现不同功能的计算,具有较高的可扩展性和灵活性。中科驭数DPU芯片基于自研KPU架构设计。
    的头像 发表于 06-11 18:11 502次阅读
    <b class='flag-5'>DPU</b>核心技术论文再次登陆体系结构领域旗舰期刊《IEEE Transactions on Computers》

    知识分享 | 评估模型架构——如何实现?

    确保良好的模型架构对于开发安全和可靠的软件非常重要。本文为您介绍MES Model Examiner® (MXAM)如何优化模型
    的头像 发表于 06-05 11:46 458次阅读
    知识分享 | 评估<b class='flag-5'>模型</b><b class='flag-5'>架构</b>——如何实现?

    第三届NVIDIA DPU黑客松开启报名

    碰撞的绝佳机会。本次竞赛采用开放式主题,参与者将通过 NVIDIA DOCA 软件架构建创新的加速应用程序,充分挖掘 NVIDIA BlueField DPU 在 AI、网络、存储和安全等领域的强大潜能。
    的头像 发表于 05-27 10:16 743次阅读

    能效提升3倍!异构计算架构让AI跑得更快更省电

    。它是应对复杂计算需求的关键技术之。   异构计算架构的核心优势   异构计算架构的核心要素主
    的头像 发表于 05-25 01:55 3452次阅读

    Nordic新代旗舰芯片nRF54H20深度解析

    显著提升) 异构计算架构创新 graph LR A[主应用处理器] -->|320MHz M33| B(传感器融合) C[实时协处理器] -->|RISC-V| D(低延迟
    发表于 04-26 23:25

    RAKsmart智能算力架构异构计算+低时延网络驱动企业AI训练范式升级

    在AI大模型参数量突破万亿、多模态应用爆发的今天,企业AI训练正面临算力效率与成本的双重挑战。RAKsmart推出的智能算力架构,以异构计算资源池化与超低时延网络为核心,重构AI训练基础设施,助力企业实现训练速度提升、硬件成本下
    的头像 发表于 04-17 09:29 597次阅读

    请问使用2022.2时是否可以读取模型OpenVINO™

    使用 2020.3 时,使用 net.layers 和 layers.blob 读取模型OpenVINO™。 OpenVINO™自 2021.2 OpenVINO™起,使用 2022.2 作为 net.layers 和 layers.blob 时无法读取
    发表于 03-06 06:37

    中科驭数DPU助力大模型训练和推理

    随着深度学习技术的快速发展,大模型(如GPT、BERT等)在自然语言处理、计算机视觉等领域取得了显著成果。然而,大模型的参数量和计算量极其庞大,传统的硬件
    的头像 发表于 02-19 09:48 1070次阅读
    中科驭数<b class='flag-5'>DPU</b>助力大<b class='flag-5'>模型</b>训练和推理

    利用NVIDIA DPF引领DPU加速云计算的未来

    DPU 的强大功能,并优化 GPU 加速计算平台。作为种编排框架和实施蓝图,DPF 使开发者、服务提供商和企业能够无缝构建 BlueField 加速的云原生
    的头像 发表于 01-24 09:29 1273次阅读
    利用NVIDIA DPF引领<b class='flag-5'>DPU</b>加速云<b class='flag-5'>计算</b>的未来

    异构计算的概念、核心、优势、挑战及考虑因素

    异构计算就像是支由“多才多艺”处理器组成的团队,每个成员都有自己的强项和责任。   什么是异构计算‍‍‍‍‍ “异构计算”指的是在同
    的头像 发表于 01-13 11:43 1656次阅读

    AI模型部署边缘设备的奇妙之旅:目标检测模型

    并非易事,它涉及到从选择合适的算法架构到针对特定硬件平台进行优化等一系列复杂的工作。 接下来,我们将详细介绍如何在资源受限的边缘设备上成功部署目标检测模型,探索其背后的原理和技术,并讨论解决该领域内常见
    发表于 12-19 14:33