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

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

3天内不再提示

NVIDIA BlueField DPU编译应用程序的不同方法

NVIDIA英伟达企业解决方案 来源:NVIDIA英伟达企业解决方案 作者:NVIDIA英伟达企业解 2022-04-25 11:51 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

第一步

第二步

去喝杯咖啡…

第三步

您在说明书中常常看到“去喝杯咖啡”吗?作为一名开发人员,我很早就发现这种令人生厌的俏皮话是我生活中的祸根。无论持续时间长短,进程切换(Context Switches)在应用程序开发周期中都是一项高昂的成本。在所有需要您离开的步骤中,等待应用程序编译是最难摆脱的。

当我们进入 NVIDIA BlueField DPU 应用程序开发的新世界,有效地设置构建步骤非常重要,以便您能够无缝地编码→编译→单元测试。在本文中,我介绍了 DPU 编译应用程序的不同方法。

DOCA 数据平面插件的 FRR

(Free Range Routing)

在 DPU 应用程序开发系列文章中,我谈到了在 FRR 中创建 DOCA 数据平面插件以用于卸载策略。FRR 的代码行数接近 100 万行( 789678 SLOC ),这使得它成为衡量构建时间的绝佳候选。

直接在 BlueField DPU 上开发

DPU 具有 Arm64 架构,一种快速启动 DPU 应用程序的方法就是直接在 DPU 上开发。本测试使用具有 8G RAM 和 8 个 A72 CPU 内核的 NVIDIA BlueField2 DPU 。

我安装了 BlueField 引导文件( BFB ),它为 DPU 提供 Ubuntu 20.04.3 操作系统映像。它还包括 DOCA 1.2 和 DPDK 20.11.3 库。为了使用 DOCA 库构建应用程序,我将 DPDK pkgconfig 位置添加到 PKG_CONFIG 路径。

3ff97b74-c3bb-11ec-bce3-dac502259ad0.png

接下来,我通过克隆 FRR 在 DPU 上设置了我的代码工作区,并切换到 DOCA 数据平面插件。

40077706-c3bb-11ec-bce3-dac502259ad0.png

FRR 需要一个不断发展的先决条件列表,这些先决条件列举在FRR 社区文档中。安装了这些依赖项后,我将 FRR 配置为包括 DPDK 和 DOCA 数据平面插件。

4012c0b6-c3bb-11ec-bce3-dac502259ad0.png

当我使用 DPU 作为我的开发环境时,我构建并安装了 FRR 二进制文件:

401ec5fa-c3bb-11ec-bce3-dac502259ad0.png

以下是构建时间的表现。我用多种方法来衡量:

  • 使用make -j12 allmake install构建和安装二进制文件的时候

  • 使用dpkg-buildpackage –j12 –uc –us将它们组装成 Debian 软件包来构建相同二进制文件的时候

第一种方法用于编码和单元测试。第二种生成 deb 的方法需要与其他外部开发环境上的构建时间进行比较。


402994b2-c3bb-11ec-bce3-dac502259ad0.png

表 1 . DPU Arm 构建时间

时间上的差异是意料之中的。生成一个包需要几个额外的步骤。

使用 DPU 作为开发环境有一些明显的优势:

  • 您可以在不离开工作区的情况下进行编码、构建和安装,然后进行单元测试。

  • 您可以针对增量代码更改来优化构建。

与完整构建(Complete make)相比,最后一个选择通常可以大幅缩短构建时间。例如,我在 FRR 中修改了 DOCA 数据平面代码,并重建的结果如下:

4035d31c-c3bb-11ec-bce3-dac502259ad0.png

虽然这可能会让事情变得更简单,但它需要为每个开发人员无限期的保留 DPU ,仅用于应用程序开发或维护。您的开发环境可能还需要更多的内存和性能,因此长期来看,这是一个不太可行的选择。

在 x86 服务器上开发

我的 BlueField-2 DPU 由一台 x86-64 Ubuntu 20.04 服务器托管,我将这台服务器用于我的开发环境。

40428dfa-c3bb-11ec-bce3-dac502259ad0.png

在本例中,构建机器是 x86 ,应用程序将运行的主机是 DPU-Arm64 。有几种方法可以做到这一点:

  • 在 x86 构建机器上使用 Arm 仿真。提供的 DOCA 开发容器作为 DOCA 软件包的一部分。

  • 使用交叉编译工具链。

在这个测试中,我使用了第一个选项,因为它是最简单的。第二个选项可以提供不同的性能,但创建该工具链有其挑战。

我在x86 服务器上下载并加载了bfb_builder_doca_ubuntu_20.04容器,并启动了它。

405b5196-c3bb-11ec-bce3-dac502259ad0.png

DOCA 和 DPDK 库预先安装在这个容器中,我只需要将它们添加到PKG_CONFIG路径。

4071c8fe-c3bb-11ec-bce3-dac502259ad0.png

我在容器中设置了工作区和 FRR 先决条件,与前面的选项相同。

407da5c0-c3bb-11ec-bce3-dac502259ad0.png

我可以在这个 DOCA 容器中构建我的应用程序,但我无法对其进行测试。因此,必须将 FRR 二进制文件构建并打包到 deb 中,然后将其复制到 BlueField DPU 进行测试。我设置了 FRR Debian 规则,以匹配前面选项中使用的 FRR 构建配置,并生成了软件包:

408ec22e-c3bb-11ec-bce3-dac502259ad0.png

表 2 显示了构建时间与以前方法的比较:

409fc59c-c3bb-11ec-bce3-dac502259ad0.png

表 2 . DPU Arm 和 X86 构建时间

构建时间的大幅增加让我感到惊讶,因为我有一台充足 x86 资源的服务器,而且没有 Docker 限制。因此,将 CPU 和 RAM 用于解决问题似乎并不总是有帮助的!这种性能下降是因为跨体系结构造成的,正如您在下一个选项中看到的那样。

在 AWS Graviton 实例中开发

接下来,我尝试在 Arm 上构建我的应用程序,但这次是在性能更大的外部服务器上。为此,我使用了 Amazon EC2 Graviton 实例,其规格与我的 x86 服务器相当。

  • Arm 64 arch , Ubuntu 20.04 操作系统

  • 128G 内存

  • 32 vCPU

40ac6a86-c3bb-11ec-bce3-dac502259ad0.png

为了在这个实例中设置 DOCA 和 DPDK 库,我安装了 DOCA SDK repo meta 包。

40c0407e-c3bb-11ec-bce3-dac502259ad0.png

克隆和构建 FRR Debian 软件包的其余步骤与前面的选项相同。

表 3 显示了构建在 AWS Arm 实例上的运行情况:

40cfa712-c3bb-11ec-bce3-dac502259ad0.png

表 3 . DPU Arm 、X86 和 AWS Arm 的构建时间

这是一个明显的赢家,不需要咖啡。

图 1 显示了这些环境中的编译时间。

40e8399e-c3bb-11ec-bce3-dac502259ad0.png

图 1 . 具有不同选项的 FRR 构建时间

总结

在本文中,我讨论了 DPU 应用程序的几个开发环境:

  • BlueField DPU

  • x86 服务器上的 DOCA 开发容器

  • AWS Graviton 计算实例

你可以直接在 DPU 上对您的应用程序进行原型设计,在 x86 DOCA 开发容器中进行开发实践,然后用 DOCA 获取一个 AWS Graviton 实例,使其高速运行!

原文标题:为 NVIDIA BlueField DPU 应用程序选择开发环境

文章出处:【微信公众号:NVIDIA英伟达企业解决方案】欢迎添加关注!文章转载请注明出处。

审核编辑:汤梓红


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

    关注

    14

    文章

    5496

    浏览量

    109091
  • DPU
    DPU
    +关注

    关注

    0

    文章

    407

    浏览量

    26201
  • 应用程序
    +关注

    关注

    38

    文章

    3342

    浏览量

    59926

原文标题:为 NVIDIA BlueField DPU 应用程序选择开发环境

文章出处:【微信号:NVIDIA-Enterprise,微信公众号:NVIDIA英伟达企业解决方案】欢迎添加关注!文章转载请注明出处。

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    NVIDIA在ISC 2025分享最新超级计算进展

    NVIDIA DGX Spark 到 NVIDIA BlueField-4 DPU,新一代网络和量子技术实现了飞跃。在 SC25 上展示的加速系统突显了全球超级计算和 AI 的进展
    的头像 发表于 11-25 10:59 484次阅读
    <b class='flag-5'>NVIDIA</b>在ISC 2025分享最新超级计算进展

    Linux 下交叉编译实战:跑起来你的第一个 STM32 程序

    很多开发者第一次接触STM32,总会被“交叉编译”、“烧录程序”等概念绕晕。其实方法很简单:在Linux下配置交叉编译环境,编写简单程序,然
    的头像 发表于 11-24 19:04 242次阅读
    Linux 下交叉<b class='flag-5'>编译</b>实战:跑起来你的第一个 STM32 <b class='flag-5'>程序</b>

    NVIDIA推出全新BlueField-4 DPU

    全新 NVIDIA BlueField DPU 具有 800Gb/s 的吞吐量,其集成的 NVIDIA ConnectX-9 SuperNIC 和
    的头像 发表于 11-03 14:48 592次阅读

    学生适合使用的SOLIDWORKS 云应用程序

    随着科技的不断发展,计算机辅助设计(CAD)技术已经成为现代工程教育的重要组成部分。SOLIDWORKS作为一款CAD软件,其教育版云应用程序为学生提供了强大而灵活的设计平台。本文将探讨
    的头像 发表于 09-15 10:39 528次阅读
    学生适合使用的SOLIDWORKS 云<b class='flag-5'>应用程序</b>

    基于NVIDIA BlueField DPU的5G UPF数据面加速方案

    在第三届 NVIDIA DPU 黑客松竞赛中,我们见证了开发者与 NVIDIA 网络技术的深度碰撞。在 23 支参赛队伍中,有 5 支队伍脱颖而出,展现了在 AI 网络、存储和安全等领域的创新突破。
    的头像 发表于 09-04 11:26 879次阅读

    NVIDIA助力Axio团队打造全新DPU数据面开发框架

    在第三届 NVIDIA DPU 黑客松竞赛中,我们见证了开发者与 NVIDIA 网络技术的深度碰撞。在 23 支参赛队伍中,有 5 支队伍脱颖而出,展现了在 AI 网络、存储和安全等领域的创新突破。
    的头像 发表于 08-30 15:58 1151次阅读

    利用NVIDIA DPU重塑网络安全格局

    在第三届 NVIDIA DPU 黑客松竞赛中,我们见证了开发者与 NVIDIA 网络技术的深度碰撞。在 23 支参赛队伍中,有 5 支队伍脱颖而出,展现了在 AI 网络、存储和安全等领域的创新突破。
    的头像 发表于 08-20 14:31 1024次阅读

    NVIDIA DOCA 3.0版本的亮点解析

    NVIDIA DOCA 框架已发展成为新一代 AI 基础设施的重要组成部分。从初始版本到备受期待的 NVIDIA DOCA 3.0 发布,每个版本都扩展了 NVIDIA BlueField
    的头像 发表于 07-04 14:27 960次阅读
    <b class='flag-5'>NVIDIA</b> DOCA 3.0版本的亮点解析

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

    碰撞的绝佳机会。本次竞赛采用开放式主题,参与者将通过 NVIDIA DOCA 软件框架构建创新的加速应用程序,充分挖掘 NVIDIA BlueField
    的头像 发表于 05-27 10:16 743次阅读

    NVIDIA网络安全AI平台助力保护关键基础设施

    此平台集成了 NVIDIA BlueField 和 Morpheus,并为 Armis、Check Point Software Technologies、CrowdStrike、Deloitte 和 WWT 的下一代网络防御提供支持。
    的头像 发表于 02-19 10:22 926次阅读

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

    越来越多的企业开始采用加速计算,从而满足生成式 AI、5G 电信和主权云的需求。NVIDIA 推出了 DOCA 平台框架(DPF),该框架提供了基础构建模块来释放 NVIDIA BlueField
    的头像 发表于 01-24 09:29 1274次阅读
    利用<b class='flag-5'>NVIDIA</b> DPF引领<b class='flag-5'>DPU</b>加速云计算的未来

    ANACONDA——关于发布数据应用程序的新简单方法

    我们推出了一款用于发布数据应用程序的开创性解决方案:具有 Panel 应用程序部署功能的 Anaconda Cloud Notebooks。Panel 是一种开源 Python 工具,现在
    的头像 发表于 01-17 11:39 644次阅读
    ANACONDA——关于发布数据<b class='flag-5'>应用程序</b>的新简单<b class='flag-5'>方法</b>

    NVIDIA BlueField-3 DPU上运行WEKA客户端的实际优势

    WEKA是可扩展软件定义数据平台的先驱,NVIDIA 正在与其合作,将 WEKA 先进的数据平台解决方案与功能强大的NVIDIA BlueField DPU相结合。
    的头像 发表于 01-07 09:43 1048次阅读
    在<b class='flag-5'>NVIDIA</b> <b class='flag-5'>BlueField</b>-3 <b class='flag-5'>DPU</b>上运行WEKA客户端的实际优势

    BQ78412应用程序编程接口

    电子发烧友网站提供《BQ78412应用程序编程接口.pdf》资料免费下载
    发表于 12-18 14:46 0次下载
    BQ78412<b class='flag-5'>应用程序</b>编程接口

    TAS2521应用程序参考指南

    电子发烧友网站提供《TAS2521应用程序参考指南.pdf》资料免费下载
    发表于 12-10 13:49 0次下载
    TAS2521<b class='flag-5'>应用程序</b>参考指南