99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

NVIDIA BlueField DPU應(yīng)用程序的不同編譯方法

星星科技指導(dǎo)員 ? 來源:NVIDIA ? 作者:Anuradha Karuppiah ? 2022-04-20 14:12 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

隨著我們進(jìn)入 NVIDIA BlueField DPU 應(yīng)用程序開發(fā)的新世界,高效地設(shè)置構(gòu)建步驟非常重要,以便您能夠無縫地{code =》 compile =》 unit-test}。在本文中,我介紹了為 DPU 編譯應(yīng)用程序的不同方法。

DOCA 數(shù)據(jù)平面插件的自由范圍路由

在 DPU 應(yīng)用開發(fā) 在系列文章中,我談到了在中創(chuàng)建 DOCA 數(shù)據(jù)平面插件 FRR 用于卸載策略。 FRR 的代碼計(jì)數(shù)接近 100 萬行( 789678 SLOC ),這使得它成為測(cè)量構(gòu)建時(shí)間的最佳候選。

直接在 BlueField DPU 上開發(fā)

DPU 具有 Arm64 體系結(jié)構(gòu),一種快速啟動(dòng) DPU 應(yīng)用程序的方法是直接在 DPU 上開發(fā)。本測(cè)試使用的是 NVIDIA BlueField2 ,帶有 8G RAM 和 8xCortex-A72 CPU 。

我安裝了 BlueField 啟動(dòng)文件( BFB ),它為 DPU 提供 Ubuntu 20.04.3 操作系統(tǒng)映像。它還包括 DOCA-1.2 和 DPDK-20.11.3 的庫。為了使用 DOCA 庫構(gòu)建應(yīng)用程序,我將 DPDK pkgconfig位置添加到PKG_CONFIG路徑。

root@dpu-arm:~# export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/mellanox/dpdk/lib/aarch64-linux-gnu/pkgconfig 

接下來,通過克隆 FRR 并切換到 DOCA 數(shù)據(jù)平面插件分支,我在 DPU 上設(shè)置了我的代碼工作區(qū)。

root@dpu-arm:~/code# git clone  https://github.com/AnuradhaKaruppiah/frr.git  
root@dpu-arm:~/code# cd frr 
root@dpu-arm:~/code/frr# git checkout dp-doca 

FRR 需要一系列不斷發(fā)展的先決條件,這些先決條件在FRR 社區(qū)文檔安裝了這些依賴項(xiàng)后,我將 FRR 配置為包括 DPDK 和 DOCA 數(shù)據(jù)平面插件。

root@dpu-arm:~/code/frr# ./bootstrap.sh 

root@dpu-arm:~/code/frr# ./configure --build=aarch64-linux-gnu --prefix=/usr --includedir=\${prefix}/include --mandir=\${prefix}/share/man --infodir=\${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=\${prefix}/lib/aarch64-linux-gnu --libexecdir=\${prefix}/lib/aarch64-linux-gnu --disable-maintainer-mode --disable-dependency-tracking --enable-exampledir=/usr/share/doc/frr/examples/ --localstatedir=/var/run/frr --sbindir=/usr/lib/frr --sysconfdir=/etc/frr --with-vtysh-pager=/usr/bin/pager --libdir=/usr/lib/aarch64-linux-gnu/frr --with-moduledir=/usr/lib/aarch64-linux-gnu/frr/modules "LIBTOOLFLAGS=-rpath /usr/lib/aarch64-linux-gnu/frr" --disable-dependency-tracking --disable-dev-build --enable-systemd=yes --enable-rpki --with-libpam --enable-doc --enable-doc-html --enable-snmp --enable-fpm --disable-zeromq --enable-ospfapi --disable-bgp-vnc --enable-multipath=128 --enable-user=root --enable-group=root --enable-vty-group=root --enable-configfile-mask=0640 --enable-logfile-mask=0640 --disable-address-sanitizer --enable-cumulus=yes --enable-datacenter=yes --enable-bfdd=no --enable-sharpd=yes --enable-dp-doca=yes --enable-dp-dpdk=yes 

因?yàn)槲矣?DPU 作為 my 開發(fā)環(huán)境Roment ,我構(gòu)建并安裝了 FRR 二進(jìn)制文件:

root@dpu-arm:~/code# make –j12 all; make install 

以下是構(gòu)建時(shí)間的進(jìn)展。我用多種方法來衡量:

是時(shí)候使用make -j12 all和make install構(gòu)建和安裝二進(jìn)制文件了

是時(shí)候構(gòu)建相同的二進(jìn)制文件了,但也可以使用dpkg-buildpackage –j12 –uc –us將它們組裝到 Debian 軟件包中

第一種方法用于編碼和單元測(cè)試。第二種生成 DEB 的方法需要與其他外部開發(fā)環(huán)境上的構(gòu)建時(shí)間進(jìn)行比較。

時(shí)間上的差異是意料之中的。生成一個(gè)包需要幾個(gè)額外的步驟。

使用 DPU 作為開發(fā)環(huán)境有一些明顯的優(yōu)勢(shì)。

您可以在不離開工作區(qū)的情況下進(jìn)行編碼、構(gòu)建和安裝,然后進(jìn)行單元測(cè)試。

您可以為增量代碼更改優(yōu)化構(gòu)建。

最后一種選擇通常是與完整構(gòu)建相比,大幅縮短構(gòu)建時(shí)間。例如,我在 FRR 中修改了 DOCA 數(shù)據(jù)平面代碼,并用以下結(jié)果重建:

root@dpu-arm:~/code/frr# time make –j12 

>>>>>>>>>>>>> snipped make output >>>>>>>>>>>> 

real 0m3.119s 

user 0m2.794s 

sys 0m0.479s 

雖然這可能會(huì)讓事情變得更簡(jiǎn)單,但它需要無限期地為每個(gè)開發(fā)人員保留 DPU 的許可證,僅用于應(yīng)用程序開發(fā)或維護(hù)。您的開發(fā)環(huán)境可能還需要更多的內(nèi)存和馬力,因此長(zhǎng)期來看,這是一個(gè)不太可行的選擇。

在 x86 服務(wù)器上開發(fā)

我的 Bluefield2 DPU 由一臺(tái) x86-64 Ubuntu 20.04 服務(wù)器托管,我在開發(fā)環(huán)境中使用了這臺(tái)服務(wù)器。

root@server1-x86:~# lscpu |grep "CPU(s):\|Model name" 

CPU(s): 32 

Model name: Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz 

root@server1-x86:~# grep MemTotal /proc/meminfo 

MemTotal: 131906300 kB 

在本例中,構(gòu)建機(jī)器是 x86 ,應(yīng)用程序?qū)⑦\(yùn)行的主機(jī)是 DPU-Arm64 。有幾種方法可以做到這一點(diǎn):

在 x86 構(gòu)建機(jī)器上使用 Arm 仿真。 A 。 DOCA 開發(fā)容器 作為 DOCA 軟件包的一部分提供。

使用交叉編譯工具鏈。

在這個(gè)測(cè)試中,我使用了第一個(gè)選項(xiàng),因?yàn)樗亲詈?jiǎn)單的。第二個(gè)選項(xiàng)可以提供不同的性能,但創(chuàng)建該工具鏈有其挑戰(zhàn) 。

我在 x86 服務(wù)器上下載并加載了bfb_builder_doca_ubuntu_20.04容器,并啟動(dòng)了它。

root@server1-x86:~# sudo docker load -i bfb_builder_doca_ubuntu_20.04-mlnx-5.4.tar 
root@server1-x86:~# docker run -v ~/code:/code --privileged -it -e container=dock 
er doca_v1.11_bluefield_os_ubuntu_20.04-mlnx-5.4:latest 

DOCA 和 DPDK 庫預(yù)先安裝在這個(gè)容器中,我只需要將它們添加到PKG_CONFIG路徑。

root@86b87b0ab0c2:/code # export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/mellanox/dpdk/lib/aarch64-linux-gnu/pkgconfig 

我在容器中設(shè)置了工作區(qū)和 FRR 先決條件,與前面的選項(xiàng)相同。

root@86b87b0ab0c2:/code # git clone  https://github.com/AnuradhaKaruppiah/frr.git  
root@86b87b0ab0c2:/code # cd frr 
root@86b87b0ab0c2:/code/frr # git checkout dp-doca 

我可以在這個(gè) DOCA 容器中構(gòu)建我的應(yīng)用程序,但我無法對(duì)其進(jìn)行測(cè)試。因此,必須將 FRR 二進(jìn)制文件構(gòu)建并打包到 DEB 中,然后將其復(fù)制到 BlueField DPU 進(jìn)行測(cè)試。我設(shè)置了 FRR Debian 規(guī)則,以匹配前面選項(xiàng)中使用的 FRR 構(gòu)建配置,并生成了包:

root@86b87b0ab0c2:/code/frr # dpkg-buildpackage –j12 –uc -us 

表 2 顯示了構(gòu)建時(shí)間與以前方法的比較。


表 2 。 DPU Arm 和 X86 構(gòu)建時(shí)間

構(gòu)建時(shí)間的巨大飛躍讓我感到驚訝,因?yàn)槲矣幸慌_(tái)庫存充足的 x86 服務(wù)器,而且沒有 Docker 限制。因此,將 CPU 和 RAM 扔到一個(gè)問題上似乎并不總是有幫助!這種性能下降是因?yàn)榭珞w系結(jié)構(gòu),正如您在下一個(gè)選項(xiàng)中看到的那樣。

在 AWS 引力子實(shí)例中開發(fā)

接下來,我嘗試在 Arm 上構(gòu)建我的應(yīng)用程序,但這次是在一臺(tái)馬力更大的外部服務(wù)器上。為此,我使用了 Amazon EC2 Graviton 實(shí)例,其規(guī)格與我的 x86 服務(wù)器相當(dāng)。

Arm64 arch , Ubuntu 20.04 操作系統(tǒng)

128G 內(nèi)存

32 伏 CPU

root@ip-172-31-28-243:~# lscpu |grep "CPU(s):\|Model name" 
CPU(s): 32 
Model name: Neoverse-N1 
root@ip-172-31-28-243:~# grep MemTotal /proc/meminfo 
MemTotal: 129051172 kB 

為了在本例中設(shè)置 DOCA 和 DPDK 庫,我安裝了DOCA SDK 回購元包.

root@ip-172-31-28-243:~# dpkg -i doca-repo-aarch64-ubuntu2004-local_1.1.1-1.5.4.2.4.1.3.bf.3.7.1.11866_arm64.deb 
root@ip-172-31-28-243:~#  apt update 
root@ip-172-31-28-243:~# apt install doca-sdk 

克隆和構(gòu)建 FRR Debian 包的其余步驟與前面的選項(xiàng)相同。

表 3 顯示了構(gòu)建在 AWS Arm 實(shí)例上的運(yùn)行情況。


表 3 。 DPU Arm 、 X86 和 AWS Arm 的構(gòu)建時(shí)間

這是一個(gè)明顯的贏家,不需要咖啡。

圖 1 顯示了這些環(huán)境中的編譯時(shí)間。

圖 1 。具有不同選項(xiàng)的 FRR 構(gòu)建時(shí)間

總結(jié)

在本文中,我討論了 DPU 應(yīng)用程序的幾個(gè)開發(fā)環(huán)境:

BlueField 增值稅

x86 服務(wù)器上的 DOCA 開發(fā)容器

AWS 引力計(jì)算實(shí)例

你可以直接在 DPU 上制作應(yīng)用程序原型,在 x86 DOCA 開發(fā)容器中進(jìn)行開發(fā)實(shí)驗(yàn),然后用 DOCA 抓取一個(gè) AWS Graviton 實(shí)例,使其進(jìn)入 hyperspeed !

關(guān)于作者

Anuradha Karuppiah 是 NVIDIA 網(wǎng)絡(luò)的首席軟件工程師。 Anuradha 使用 FRR (自由范圍路由軟件套件)設(shè)計(jì)和實(shí)現(xiàn) EVPN 解決方案。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • NVIDIA
    +關(guān)注

    關(guān)注

    14

    文章

    5304

    瀏覽量

    106325
  • 應(yīng)用程序
    +關(guān)注

    關(guān)注

    38

    文章

    3333

    瀏覽量

    59010
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    NVIDIA DOCA 3.0版本的亮點(diǎn)解析

    NVIDIA DOCA 框架已發(fā)展成為新一代 AI 基礎(chǔ)設(shè)施的重要組成部分。從初始版本到備受期待的 NVIDIA DOCA 3.0 發(fā)布,每個(gè)版本都擴(kuò)展了 NVIDIA BlueField
    的頭像 發(fā)表于 07-04 14:27 ?306次閱讀
    <b class='flag-5'>NVIDIA</b> DOCA 3.0版本的亮點(diǎn)解析

    第三屆NVIDIA DPU黑客松開啟報(bào)名

    碰撞的絕佳機(jī)會(huì)。本次競(jìng)賽采用開放式主題,參與者將通過 NVIDIA DOCA 軟件框架構(gòu)建創(chuàng)新的加速應(yīng)用程序,充分挖掘 NVIDIA BlueField
    的頭像 發(fā)表于 05-27 10:16 ?405次閱讀

    NVIDIA網(wǎng)絡(luò)安全AI平臺(tái)助力保護(hù)關(guān)鍵基礎(chǔ)設(shè)施

    此平臺(tái)集成了 NVIDIA BlueField 和 Morpheus,并為 Armis、Check Point Software Technologies、CrowdStrike、Deloitte 和 WWT 的下一代網(wǎng)絡(luò)防御提供支持。
    的頭像 發(fā)表于 02-19 10:22 ?495次閱讀

    利用NVIDIA DPF引領(lǐng)DPU加速云計(jì)算的未來

    越來越多的企業(yè)開始采用加速計(jì)算,從而滿足生成式 AI、5G 電信和主權(quán)云的需求。NVIDIA 推出了 DOCA 平臺(tái)框架(DPF),該框架提供了基礎(chǔ)構(gòu)建模塊來釋放 NVIDIA BlueField
    的頭像 發(fā)表于 01-24 09:29 ?699次閱讀
    利用<b class='flag-5'>NVIDIA</b> DPF引領(lǐng)<b class='flag-5'>DPU</b>加速云計(jì)算的未來

    ANACONDA——關(guān)于發(fā)布數(shù)據(jù)應(yīng)用程序的新簡(jiǎn)單方法

    我們推出了一款用于發(fā)布數(shù)據(jù)應(yīng)用程序的開創(chuàng)性解決方案:具有 Panel 應(yīng)用程序部署功能的 Anaconda Cloud Notebooks。Panel 是一種開源 Python 工具,現(xiàn)在
    的頭像 發(fā)表于 01-17 11:39 ?424次閱讀
    ANACONDA——關(guān)于發(fā)布數(shù)據(jù)<b class='flag-5'>應(yīng)用程序</b>的新簡(jiǎn)單<b class='flag-5'>方法</b>

    NVIDIA BlueField-3 DPU上運(yùn)行WEKA客戶端的實(shí)際優(yōu)勢(shì)

    WEKA是可擴(kuò)展軟件定義數(shù)據(jù)平臺(tái)的先驅(qū),NVIDIA 正在與其合作,將 WEKA 先進(jìn)的數(shù)據(jù)平臺(tái)解決方案與功能強(qiáng)大的NVIDIA BlueField DPU相結(jié)合。
    的頭像 發(fā)表于 01-07 09:43 ?660次閱讀
    在<b class='flag-5'>NVIDIA</b> <b class='flag-5'>BlueField</b>-3 <b class='flag-5'>DPU</b>上運(yùn)行WEKA客戶端的實(shí)際優(yōu)勢(shì)

    TAS2521應(yīng)用程序參考指南

    電子發(fā)燒友網(wǎng)站提供《TAS2521應(yīng)用程序參考指南.pdf》資料免費(fèi)下載
    發(fā)表于 12-10 13:49 ?0次下載
    TAS2521<b class='flag-5'>應(yīng)用程序</b>參考指南

    android手機(jī)上emulate應(yīng)用程序方法

    在Android手機(jī)上模擬(emulate)應(yīng)用程序方法通常涉及到使用Android模擬器(Emulator)或類似的工具來模擬Android環(huán)境,以便在沒有實(shí)際物理設(shè)備的情況下運(yùn)行和測(cè)試應(yīng)用程序
    的頭像 發(fā)表于 12-05 15:33 ?1198次閱讀

    AWTK-WEB 快速入門(2) - JS 應(yīng)用程序

    導(dǎo)讀AWTK可以使用相同的技術(shù)棧開發(fā)各種平臺(tái)的應(yīng)用程序。有時(shí)我們需要使用Web界面與設(shè)備進(jìn)行交互,本文介紹一下如何使用JS語言開發(fā)AWTK-WEB應(yīng)用程序。用AWTKDesigner新建一個(gè)應(yīng)用程序先安裝AWTKDesigner
    的頭像 發(fā)表于 12-05 01:04 ?493次閱讀
    AWTK-WEB 快速入門(2) - JS <b class='flag-5'>應(yīng)用程序</b>

    AWTK-WEB 快速入門(1) - C 語言應(yīng)用程序

    導(dǎo)讀AWTK可以使用相同的技術(shù)棧開發(fā)各種平臺(tái)的應(yīng)用程序。有時(shí)我們需要使用Web界面與設(shè)備進(jìn)行交互,本文介紹一下如何使用C語言開發(fā)AWTK-WEB應(yīng)用程序。用AWTKDesigner新建一個(gè)應(yīng)用程序
    的頭像 發(fā)表于 11-27 11:46 ?701次閱讀
    AWTK-WEB 快速入門(1) - C 語言<b class='flag-5'>應(yīng)用程序</b>

    NVIDIA DOCA-OFED的主要特性

    NVIDIA DOCA 軟件平臺(tái)釋放了 NVIDIA BlueField 網(wǎng)絡(luò)平臺(tái)的潛力,并為NVIDIA BlueField和Connec
    的頭像 發(fā)表于 11-09 13:50 ?991次閱讀

    linux驅(qū)動(dòng)程序編譯方法是什么

    Linux驅(qū)動(dòng)程序編譯方法主要包括兩種: 與內(nèi)核一起編譯編譯成獨(dú)立的內(nèi)核模塊 。以下是對(duì)這兩種
    的頭像 發(fā)表于 08-30 14:46 ?1242次閱讀

    linux驅(qū)動(dòng)程序編譯方法有哪兩種

    Linux驅(qū)動(dòng)程序編譯方法主要可以歸納為兩種: 手動(dòng)編譯 和 使用內(nèi)核構(gòu)建系統(tǒng)(Makefile)自動(dòng)編譯 。 1. 手動(dòng)
    的頭像 發(fā)表于 08-30 14:39 ?1525次閱讀

    IB Verbs和NVIDIA DOCA GPUNetIO性能測(cè)試

    Async 等技術(shù),能夠創(chuàng)建以 GPU 為中心的應(yīng)用程序,其中 CUDA 內(nèi)核可以直接與網(wǎng)卡(NIC)通信,從而繞過 CPU 發(fā)送和接收數(shù)據(jù)包,并將 CPU 排除在關(guān)鍵路徑之外。
    的頭像 發(fā)表于 08-23 17:03 ?1339次閱讀
    IB Verbs和<b class='flag-5'>NVIDIA</b> DOCA GPUNetIO性能測(cè)試

    IaaS+on+DPU(IoD)+下一代高性能算力底座技術(shù)白皮書

    的技術(shù)標(biāo)準(zhǔn)也在不斷完善。從此 DPU 不再是行業(yè)巨頭的“專享”技術(shù),基礎(chǔ)設(shè)施與云計(jì)算相關(guān)產(chǎn)業(yè)參與者都在尋求一種簡(jiǎn)單高效的方法,將 DPU 的優(yōu)勢(shì)運(yùn)用到自身業(yè)務(wù)系統(tǒng)之中,例如 Red Hat
    發(fā)表于 07-24 15:32