日韩成人激情_欧美黑人xxx_国产一区二精品区在线_精品在线一区_97成人资源_久久久久久一区

產(chǎn)品分類

當(dāng)前位置: 首頁(yè) > 工業(yè)電氣產(chǎn)品 > 端子與連接器 > 線路板連接器 > FFC連接器

類型分類:
科普知識(shí)
數(shù)據(jù)分類:
FFC連接器

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

發(fā)布日期:2022-04-25 點(diǎn)擊率:38

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

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

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

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

DPU 具有 Arm64 體系結(jié)構(gòu),一種快速啟動(dòng) DPU 應(yīng)用程序的方法是直接在 DPU 上開(kāi)發(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 的庫(kù)。為了使用 DOCA 庫(kù)構(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

接下來(lái),通過(guò)克隆 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 開(kāi)發(fā)環(huán)境Roment ,我構(gòu)建并安裝了 FRR 二進(jìn)制文件:

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

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

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

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

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


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

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

您可以在不離開(kāi)工作區(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)單,但它需要無(wú)限期地為每個(gè)開(kāi)發(fā)人員保留 DPU 的許可證,僅用于應(yīng)用程序開(kāi)發(fā)或維護(hù)。您的開(kāi)發(fā)環(huán)境可能還需要更多的內(nèi)存和馬力,因此長(zhǎng)期來(lái)看,這是一個(gè)不太可行的選擇。

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

我的 Bluefield2 DPU 由一臺(tái) x86-64 Ubuntu 20.04 服務(wù)器托管,我在開(kāi)發(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 開(kāi)發(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 庫(kù)預(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)用程序,但我無(wú)法對(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)庫(kù)存充足的 x86 服務(wù)器,而且沒(méi)有 Docker 限制。因此,將 CPU 和 RAM 扔到一個(gè)問(wèn)題上似乎并不總是有幫助!這種性能下降是因?yàn)榭珞w系結(jié)構(gòu),正如您在下一個(gè)選項(xiàng)中看到的那樣。

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

接下來(lái),我嘗試在 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 庫(kù),我安裝了DOCA SDK 回購(gòu)元包.

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è)開(kāi)發(fā)環(huán)境:

BlueField 增值稅

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

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

你可以直接在 DPU 上制作應(yīng)用程序原型,在 x86 DOCA 開(kāi)發(fā)容器中進(jìn)行開(kāi)發(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 解決方案。

審核編輯:郭婷

 

下一篇: PLC、DCS、FCS三大控

上一篇: 歐菲光8P鏡頭項(xiàng)目已研

推薦產(chǎn)品

更多
主站蜘蛛池模板: 国产午夜av片 | 精品一区二区三区在线视频 | 蜜桃视频在线观看免费视频网站www | 国产91精品网站 | 久久精品亚洲精品 | 国产精品久久久久久久久久免费看 | 国产亚洲精品综合一区 | 精品国产乱码久久久久久闺蜜 | 99婷婷| 日本一区二区三区免费观看 | 亚洲第一视频网 | 日韩成人专区 | 日本在线中文 | 久久激情视频 | 亚洲国产高清高潮精品美女 | 国产美女久久久 | 久久r免费视频 | 欧美黄色一区 | 国产一区中文字幕 | www.久久艹| 欧洲精品视频一区 | 日本久久视频 | 午夜无码国产理论在线 | 欧美视频 亚洲视频 | 2022精品国偷自产免费观看 | 久久成人午夜 | 久久精品国产一区二区三区不卡 | jvid精品资源在线观看 | 岛国av一区二区三区 | 亚洲欧美激情精品一区二区 | 成人一区二区三区在线观看 | 日韩视频在线一区 | 国产精品美女www爽爽爽视频 | 亚洲精品视频在线 | 一区二区三区在线免费观看 | 九九综合 | 国产精品久久久久久久久久久久午夜片 | 精产嫩模国品一二三区 | 99精品视频在线观看 | www.亚洲 | 欧美日韩国产中文 |