女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

DPU編譯應用程序的不同方法

科技綠洲 ? 來源:NVIDIA英偉達 ? 作者:NVIDIA英偉達 ? 2022-04-22 14:25 ? 次閱讀

您在說明書中常常看到“去喝杯咖啡”嗎?作為一名開發人員,我很早就發現這種令人生厭的俏皮話是我生活中的禍根。無論持續時間長短,進程切換(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 路徑。

poYBAGJiSM-ADKhSAAA0-HM25uM779.png

接下來,我通過克隆 FRR 在 DPU 上設置了我的代碼工作區,并切換到 DOCA 數據平面插件。

pYYBAGJiSNyAKI4PAABRnN3Rlik071.png

FRR 需要一個不斷發展的先決條件列表,這些先決條件列舉在 FRR 社區文檔中。安裝了這些依賴項后,我將 FRR 配置為包括 DPDK 和 DOCA 數據平面插件。

pYYBAGJiSOWAebWsAAGaEi-TMOg630.png

當我使用 DPU 作為我的開發環境時,我構建并安裝了 FRR 二進制文件:

pYYBAGJiSPWAfhXBAAAaCAxtvCc412.png

以下是構建時間的表現。我用多種方法來衡量:

使用 make -j12 all 和 make install 構建和安裝二進制文件的時候

使用 dpkg-buildpackage –j12 –uc –us 將它們組裝成 Debian 軟件包來構建相同二進制文件的時候

第一種方法用于編碼和單元測試。第二種生成 deb 的方法需要與其他外部開發環境上的構建時間進行比較。

poYBAGJiSQaAQcx_AABqX3AaQm0746.png

表 1 。 DPU Arm 構建時間

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

使用 DPU 作為開發環境有一些明顯的優勢:

您可以在不離開工作區的情況下進行編碼、構建和安裝,然后進行單元測試。

您可以針對增量代碼更改來優化構建。

與完整構建(Complete make)相比,最后一個選擇通常可以大幅縮短構建時間。例如,我在 FRR 中修改了 DOCA 數據平面代碼,并重建的結果如下:

pYYBAGJiSRWAPa8zAAA_d4TNlhE084.png

雖然這可能會讓事情變得更簡單,但它需要為每個開發人員無限期的保留 DPU ,僅用于應用程序開發或維護。您的開發環境可能還需要更多的內存和性能,因此長期來看,這是一個不太可行的選擇。

在 x86 服務器上開發

我的 BlueField-2 DPU 由一臺 x86-64 Ubuntu 20.04 服務器托管,我將這臺服務器用于我的開發環境。

poYBAGJiSUSAOLNhAABe0_ZMDeY239.png

o4YBAGC24DOAHECBAAAARmu_22A208.png

在本例中,構建機器是 x86 ,應用程序將運行的主機是 DPU-Arm64 。有幾種方法可以做到這一點:

在 x86 構建機器上使用 Arm 仿真。 提供的 DOCA 開發容器 作為 DOCA 軟件包的一部分。

使用交叉編譯工具鏈。

在這個測試中,我使用了第一個選項,因為它是最簡單的。第二個選項可以提供不同的性能,但創建該工具鏈有其挑戰。

我在x86 服務器上下載并加載了 bfb_builder_doca_ubuntu_20.04 容器,并啟動了它。

pYYBAGJiSVmAdlsmAABc4El4kyM985.png

o4YBAGC24DOAHECBAAAARmu_22A208.png

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

pYYBAGJiSaeAA6DxAAA7e9xntoI930.png

o4YBAGC24DOAHECBAAAARmu_22A208.png

我在容器中設置了工作區和 FRR 先決條件,與前面的選項相同。

poYBAGJiSbGAAlY8AABHA2eupwo769.png

o4YBAGC24DOAHECBAAAARmu_22A208.png

我可以在這個 DOCA 容器中構建我的應用程序,但我無法對其進行測試。因此,必須將 FRR 二進制文件構建并打包到 deb 中,然后將其復制到 BlueField DPU 進行測試。我設置了 FRR Debian 規則,以匹配前面選項中使用的 FRR 構建配置,并生成了軟件包:

poYBAGJiSf2AB5KdAAAhp-tOlxQ827.png

o4YBAGC24DOAHECBAAAARmu_22A208.png

表 2 顯示了構建時間與以前方法的比較:

pYYBAGJiSd6AJN9yAACcpOnJQKU984.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

pYYBAGJiSg6AC2ysAABSdOs16j4440.png

為了在這個實例中設置 DOCA 和 DPDK 庫,我安裝了 DOCA SDK repo meta 包 。

poYBAGJiShuAdgXdAABdONwKHxw043.png

克隆和構建 FRR Debian 軟件包的其余步驟與前面的選項相同。

表 3 顯示了構建在 AWS Arm 實例上的運行情況:

poYBAGJiSjCAUQBxAADWypr3srY185.png

表 3 。 DPU Arm 、X86 和 AWS Arm 的構建時間

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

圖 1 顯示了這些環境中的編譯時間。

poYBAGJiSj6AK_ctAABeyzwo--w253.png

圖 1 。 具有不同選項的 FRR 構建時間

總結

在本文中,我討論了 DPU 應用程序的幾個開發環境:

BlueField DPU

x86 服務器上的 DOCA 開發容器

AWS Graviton 計算實例

你可以直接在 DPU 上對您的應用程序進行原型設計,在 x86 DOCA 開發容器中進行開發實踐,然后用 DOCA 獲取一個 AWS Graviton 實例,使其高速運行!

審核編輯:彭菁
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • DPU
    DPU
    +關注

    關注

    0

    文章

    390

    瀏覽量

    24694
  • 應用程序
    +關注

    關注

    38

    文章

    3322

    瀏覽量

    58726
  • 編譯
    +關注

    關注

    0

    文章

    676

    瀏覽量

    33746
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    嵌入式應用程序開發Windows環境一鍵編譯下載

    【知識分享】嵌入式應用程序開發,Windows環境一鍵編譯下載
    的頭像 發表于 08-27 12:55 ?2218次閱讀
    嵌入式<b class='flag-5'>應用程序</b>開發Windows環境一鍵<b class='flag-5'>編譯</b>下載

    如何構建linux開發環境和編譯軟件工程、應用程序

    前文介紹了如何使用官方提供的鏡像文件啟動開發板,本文將說明如何構建linux開發環境和編譯軟件工程、應用程序
    的頭像 發表于 01-03 12:31 ?2607次閱讀
    如何構建linux開發環境和<b class='flag-5'>編譯</b>軟件工程、<b class='flag-5'>應用程序</b>

    單片機編譯軟件keillic注冊機應用程序軟件免費下載

    本文檔的主要內容詳細介紹的是單片機編譯軟件keillic注冊機應用程序軟件免費下載。
    發表于 09-26 11:25 ?19次下載
    單片機<b class='flag-5'>編譯</b>軟件keillic注冊機<b class='flag-5'>應用程序</b>軟件免費下載

    如何使用Xilinx SDK創建Linux應用程序,并進行開發和調試

    了解如何使用Xilinx SDK創建Linux應用程序。 我們還將重點介紹和演示支持Linux應用程序開發和調試的不同方面的SDK功能。 整個過程快速而簡單。
    的頭像 發表于 11-20 07:03 ?1.1w次閱讀

    AVR程序編譯器avrubd應用程序免費下載

    本文檔的主要內容詳細介紹的是AVR程序編譯器avrubd應用程序免費下載,簡單的AVR程序編譯器,簡單實用,只需配置串口和時鐘頻率。
    發表于 05-15 17:22 ?54次下載
    AVR<b class='flag-5'>程序</b><b class='flag-5'>編譯</b>器avrubd<b class='flag-5'>應用程序</b>免費下載

    MATLAB 64位C語言和C++編譯應用程序免費下載

    本文檔的主要內容詳細介紹的是MATLAB 64位C語言和C++編譯應用程序免費下載。
    發表于 05-21 08:00 ?4次下載
    MATLAB 64位C語言和C++<b class='flag-5'>編譯</b>器<b class='flag-5'>應用程序</b>免費下載

    STM32的編譯器CubeIDE安裝包應用程序免費下載

    本文檔的主要內容詳細介紹的使用STM32的編譯器CubeIDE安裝包應用程序免費下載。
    發表于 11-28 11:44 ?27次下載
    STM32的<b class='flag-5'>編譯</b>器CubeIDE安裝包<b class='flag-5'>應用程序</b>免費下載

    C語言編譯器PICC9.60應用程序免費下載

    本文檔的主要內容詳細介紹的是C語言編譯器PICC9.60破解版應用程序免費下載。
    發表于 05-21 08:00 ?20次下載
    C語言<b class='flag-5'>編譯</b>器PICC9.60<b class='flag-5'>應用程序</b>免費下載

    HI-TECH PICC編譯器8.05版應用程序

    本文檔的主要內容詳細介紹的是HI-TECH PICC編譯器8.05版應用程序免費下載。
    發表于 06-08 08:00 ?0次下載
    HI-TECH PICC<b class='flag-5'>編譯</b>器8.05版<b class='flag-5'>應用程序</b>

    在BlueField DPU上通過DOCA加速方案開發

    NVIDIA 希望您能輕松使用 DPU 的各種功能,并簡化以下流程:在 DPU 上創建新應用程序,或者將現有應用程序與 BlueField DPU
    的頭像 發表于 04-14 15:51 ?2057次閱讀
    在BlueField <b class='flag-5'>DPU</b>上通過DOCA加速方案開發

    NVIDIA BlueField DPU應用程序的不同編譯方法

      隨著我們進入 NVIDIA BlueField DPU 應用程序開發的新世界,高效地設置構建步驟非常重要,以便您能夠無縫地{code =》 compile =》 unit-test}。在本文中,我介紹了為 DPU
    的頭像 發表于 04-20 14:12 ?2057次閱讀
    NVIDIA BlueField <b class='flag-5'>DPU</b><b class='flag-5'>應用程序</b>的不同<b class='flag-5'>編譯</b><b class='flag-5'>方法</b>

    NVIDIA BlueField DPU編譯應用程序的不同方法

      您在說明書中常常看到“去喝杯咖啡”嗎?作為一名開發人員,我很早就發現這種令人生厭的俏皮話是我生活中的禍根。無論持續時間長短,進程切換(Context Switches)在應用程序開發周期中都是一項高昂的成本。在所有需要您離開的步驟中,等待應用程序
    的頭像 發表于 04-25 11:51 ?1384次閱讀

    使用 Microsoft Azure Stack HCI 和 NVIDIA BlueField DPU 加速企業應用程序

    DPU(數據處理器)是一個加速的數據中心基礎設施平臺,可釋放應用程序性能和系統效率。NVIDIA BlueField DPU 幫助有
    的頭像 發表于 11-22 19:45 ?867次閱讀

    如何實現DPU加速數據包轉向邏輯呢?

    NVIDIA DOCA 框架旨在簡化 NVIDIA BlueField DPU 和 ConnectX 智能網卡的編程和應用程序開發。
    的頭像 發表于 09-19 10:00 ?882次閱讀
    如何實現<b class='flag-5'>DPU</b>加速數據包轉向邏輯呢?

    linux驅動程序編譯方法是什么

    Linux驅動程序編譯方法主要包括兩種: 與內核一起編譯編譯成獨立的內核模塊 。以下是對這兩種
    的頭像 發表于 08-30 14:46 ?1107次閱讀