• <xmp id="om0om">
  • <table id="om0om"><noscript id="om0om"></noscript></table>
  • 3 月 19 日下午 2 點,鎖定 NVIDIA AI 網絡中文專場。立即注冊觀看
    數據中心/云端

    用 NVIDIA DOCA GPUNetIO 實現實時網絡處理能力

    ?

    網絡流量的實時處理可以通過高并行度 GPU 來利用。在這些類型的應用程序中優化數據包獲取或傳輸可以避免瓶頸,并使整體執行能夠跟上高速網絡的步伐。在這種情況下, DOCA GPU NetIO 將 GPU 提升為一個獨立的組件,可以在沒有 CPU 干預的情況下執行網絡和計算任務。

    這篇文章提供了一個 GPU 分組處理應用程序的列表,重點關注不同和不相關的上下文。其中,NVIDIA DOCA GPUNetIO已被集成,以降低延遲并最大限度地提高性能。

    NVIDIA DOCA GPUNetIO API

    NVIDIA DOCA software framework中的 NVIDIA DOCA GPUNetIO 是 DOCA CUDA NetIO 庫,它通過一個或多個 GPU 內核實現 NIC 和 GPU 之間的直接通信,從而從關鍵路徑中移除 CPU。

    使用 GPU DOCA NetIO 庫中的 CUDA 設備函數, CUDA kernel 可以直接向 GPU 發送和接收數據包,而無需 CPU 內核或內存。此庫的主要功能包括:

    • GPUDirect 異步內核啟動的網絡(GDAKIN):這是一種以太網通信方式,其中 GPU(CUDA 內核)可以直接與網卡交互,無需 CPU 干預,可以在 GPU memory(GPU Direct RDMA)中發送或接收數據包。
    • GPU 內存暴露:結合基本的 CUDA 內存分配功能和 GDRCopy 庫,在單個函數中將 GPU 內存緩沖區公開給 CPU 直接訪問(讀或寫),無需使用 CUDA API。
    • 精確的發送計劃:根據 GPU 的需求,可以安排未來數據包的突發傳輸,將時間戳與之關聯,并將此信息提供給網卡。網卡將負責在正確的時間發送數據包。
    • 信號量:這是一種有用的消息傳遞對象,用于在不同的 CUDA 內核之間,或者在 CUDA 內核和 CPU 線程之間共享信息和進行同步。

    如果您想深入了解 DOCA GPUNetIO 的原理和優點,請參閱NVIDIA DOCA GPUNetIO 的內聯 GPU 數據包處理。如需獲取 DOCA GPUNetIO API 的更多詳細信息,請參閱DOCA GPUNetIO SDK 編程指南

    Diagram showing a GPU-centric application in which the GPU can execute both network tasks (receive and send) and processing tasks. The CPU is no longer required.
    圖 1 。 NVIDIA DOCA GPU NetIO 應用程序中接收進程的布局。不涉及 CPU ,因為 GPU 可以獨立地接收和處理網絡數據包

    除了該庫之外,以下 NVIDIA DOCA 應用程序和 NVIDIA ZFK7 示例還展示了如何使用該庫提供的功能和特性。

    • NVIDIA DOCA application 是一個 GPU 數據包處理應用程序,能夠檢測、管理、過濾和分析 UDP 、 TCP 和 ICMP 流量。此應用程序還實現了 HTTP over TCP 服務器。使用簡單的 HTTP 客戶端(例如 curl 或 wget ),可以建立 TCP 三方握手連接,并通過對 GPU 的 HTTP GET 請求來請求簡單的 HTML 頁面。
    • NVIDIA DOCA 示例:這是一個僅 GPU 發送的示例,展示了如何使用“精確發送調度”功能(包括系統配置、功能使用等)。

    DOCA GPUNetIO 在現實世界中的應用

    DOCA GPUNetIO 已被用于 NVIDIA Aerial SDK,用于使用 GPU 進行發送和接收,從而無需 CPU。想要了解更多詳細信息,請參閱 NVIDIA DOCA GPUNetIO 的內聯 GPU 數據包處理。下面的部分提供了成功使用 DOCA GPU NetIO 利用 GDAKIN 技術進行 GPU 分組獲取的新示例。

    NVIDIA

    NVIDIA Morpheus 是一個面向性能的應用程序框架,它使網絡安全開發人員能夠創建完全優化的人工智能管道,用于過濾、處理和分類大量實時數據。該框架通過一個由 GPU 和 C ++ API 組成的可訪問編程模型,來抽象 GPU 和 Python 的并行性和并發性。

    利用這個框架,開發人員可以快速構建由階段組成的任意數據管道,這些階段為下游消費者獲取、變異或發布數據。您可以在不同的環境中應用 Morpheus ,包括惡意軟件檢測、網絡釣魚/魚叉式網絡釣魚檢測、勒索軟件檢測等。它的靈活性和高性能是實時網絡流量分析的理想選擇。

    NVIDIA Morpheus 團隊最近針對網絡監控用例,集成了 DOCA 框架,以實現高速、低延遲的 GPU 數據包獲取源階段,并將實時數據包饋送到負責分析數據包內容的 AI 管道。欲了解更多詳細信息,請訪問GitHub 上的 Morpheus

    A diagram showing the point of connection between DOCA GPUNetIO and Morpheus AI pipeline. If the packets pass the filter, their information is stored in a GPU memory buffer, accumulate, and trigger AI processing.
    圖 2 : DOCA GPUNetIO 和 NVIDIA Morpheus AI 管道由 CUDA 內核連接,該內核接收、過濾和分析傳入數據包

    如圖 2 所示, GPU 數據包捕獲是實時發生的。通過 DOCA Flow ,流引導規則應用于以太網接收隊列,這意味著隊列只能接收特定類型的數據包(例如 TCP )。 Morpheus 啟動 CUDA 內核,該內核在循環中執行以下步驟:

    1. 使用 DOCA GPUNetIO 接收功能接收數據包
    2. 過濾和分析 GPU 存儲器中的并行數據包
    3. 復制 GPU 內存緩沖區列表中的相關數據包信息
    4. 當緩沖器已經累積了足夠的信息包時,相關的 DOCA GPUNetIO 信號量項被設置為 READY
    5. AI 管道前面的 CUDA 內核正在輪詢信號量項
    6. 當項目為 READY 時,由于緩沖區中的數據包信息已準備就緒, AI 被解除阻塞

    GTC 會議中的邊緣網絡的防御性網絡操作 (DCO)提供了一個具體的例子,展示了如何使用該架構部署一個高性能的、支持人工智能的 SPAN /網絡 TAP 解決方案。這個解決方案的動機是應對信息技術( IT )和操作技術( OT )網絡中的高數據速率、第 7 層應用程序數據的異構性,以及邊緣計算的大小、重量和功率( SWaP )限制。

    在邊緣計算的情況下,當計算需求增加時,許多組織無法“突然上云”,尤其是在斷開連接的邊緣網絡上。這個場景需要為 I / O 和計算挑戰設計一個架構,以提供跨 SWaP 頻譜的性能。

    這個 DCO 示例通過一個常見的網絡安全問題來解決這些限制,識別未加密 TCP 流量中的泄露數據(例如,泄露的密碼、密鑰和 PII ),并代表了 Morpheus SID 演示的擴展。識別和修復這些漏洞可以減少攻擊面,提高組織的安全態勢。

    在該示例中, DCO 解決方案將數據包接收到異構 Morpheus 管道( GPU 和以 Python 和 C ++的混合形式編寫的并發 CPU 階段)中,該管道應用 transformer 模型來檢測第 7 層應用數據中泄漏的敏感數據。它將輸出與 ELK 堆棧集成,包括安全操作中心( SOC )分析師可利用的直觀可視化(圖 3 和圖 4 )。

    Example Kibana dashboard showcasing results of DOCA GPUNetIO plus Morpheus Sensitive Information Detections including total detections of each type, a pairwise network map, and the distribution of packet sizes.
    圖 3 。 Kibana 儀表板顯示 DOCA GPUNetIO 加上 Morpheus 敏感信息檢測的結果,包括每種類型的總檢測、成對網絡圖和數據包大小的分布
    Screenshot of Kibana dashboard showcasing results of DOCA GPUNetIO plus Morpheus Sensitive Information Detections including filtered and processed network packets index at up to 50 K packets per second, including a table of payloads with leaked secret keys.
    圖 4 。 Kibana 儀表板顯示 DOCA GPUNetIO 加 Morpheus 敏感信息檢測的結果,包括每秒高達 50 K 數據包的過濾和處理網絡數據包索引,包括帶有泄露密鑰的有效載荷表

    實驗設置包括在具有 100 Gbps 的虛擬機上運行的云原生 UDP 多播和 REST 應用程序,這些應用程序通過NVIDIA BlueField-2 DPU和 SWaP 高效通信NVIDIA Spectrum SN2100 Ethernet switch數據包生成器將敏感數據注入到由這些應用程序傳輸的數據包中。網絡數據包被聚合并鏡像到 NVIDIA Spectrum SN2100 上的 SPAN 端口,然后發送到 NVIDIA A30X匯聚加速器為 Morpheus 數據包檢查管道提供動力,實現了令人印象深刻的吞吐量結果。

    • 該管道包括在第三方 SIEM 平臺( Elasticsearch )中進行 I / O 、數據包過濾、數據包處理和索引的幾個組件。 DOCA GPUNetIO 主要關注 I / O 方面,使得 Morpheus 能夠通過單一接收隊列,以高達 100 Gbps 的速度將數據包接收到 GPU 內存中,從而消除了網絡數據包處理應用程序中的一個關鍵瓶頸。
    • 利用階段級并發,該管道顯示 Elasticsearch 索引吞吐量提高了 60% 。
    • 在 NVIDIA A30X 聚合加速器上運行端到端數據管道生成的豐富數據包的容量約為彈性搜索索引器的 50% 。使用兩倍數量的 A30X 將使索引器完全飽和,從而提供一種方便的縮放啟發式方法。
    This figure depicts the end-to-end accelerated sensitive information detection packet processing application. SOC teams who leverage other SIEM/SOAR solutions (such as Splunk) are empowered to exchange Morpheus sink stages in their implementations.
    圖 5 。端到端數據包處理應用程序加速敏感信息的檢測

    雖然這個用例演示了 Morpheus 的特定應用程序,但它代表了網絡數據包處理應用程序的基本組件。 Morpheus 加上 DOCA GPUNetIO 共同為大量延遲敏感和計算密集型數據包處理應用程序提供了性能和可擴展性。

    線速率雷達信號處理

    本節介紹了一個示例,在該示例中,雷達檢測應用程序以 100Gbps 的線路速率從模擬的僅測距雷達系統接收下變頻的 I / Q 樣本,執行將接收到的 I / Q RF 樣本實時轉換為目標檢測所需的所有信號處理。

    雷達、激光雷達和光學平臺等遙感應用依賴于信號處理算法,將從測量環境中收集的原始數據轉化為可操作的信息。這些算法通常具有很高的并行性,并且需要很高的計算負載,這使得它們非常適合基于 GPU 的處理。

    此外,輸入傳感器會生成大量的原始數據,這意味著處理解決方案的入口/出口能力必須能夠在低延遲下處理非常高的帶寬。

    使問題進一步復雜化的是,許多基于邊緣的傳感器系統具有嚴格的 SWaP 約束,限制了可能用于其他高通量網絡方法(如基于 DPDK 的 GPUDirect RDMA )的可用 CPU 核心的數量和功率。

    DOCA GPUNetIO 使 GPU 能夠直接處理網絡負載以及使實時傳感器流應用程序成功所需的信號處理。

    常用的信號處理算法被用于雷達探測應用中。圖 6 中的流程圖顯示了用于將 I / Q 樣本轉換為檢測的信號處理管道的圖形表示。

    Flowchart depicting the building blocks of a signal processing pipeline for computing detections from a reflected RF waveform in a range-only radar system. Stages are MTI Filtering, Pulse compression with FFR and Inverse FFT, and finally CFAR Detection.
    圖 6 。用于在僅測距雷達系統中從反射 RF 波形計算檢測的信號處理流水線

    MTI 濾波是一種在雷達系統中常用的技術,用于消除反射的 RF 波形中的靜止背景雜波(如地面或建筑物)。這里使用的方法被稱為Three-Pulse Canceler,它是在脈沖維度上的 I / Q 數據與濾波器系數 ‘+1,-2,+1’ 的卷積。

    脈沖壓縮使接收波形相對于目標存在的信噪比( SNR )最大化。它是通過計算接收到的 RF 數據與發射波形的互相關來執行的。

    恒定假 Al Arm 率( CFAR )檢測器計算噪聲的經驗估計,該噪聲被定位于濾波數據的每個范圍倉。然后將每個倉的功率與噪聲進行比較,并在給定噪聲估計和分布的情況下,如果在統計上有可能,則宣布為檢測。

    大小為(#波形) x (#信道) x (# Samples )的 3D 緩沖器用于保持正在接收的組織 RF 數據(注意,在分組接收時應用 MTI 濾波器將脈沖維度的大小減小到 1 )。假設 UDP 數據流沒有排序,只是它大致按照數據包的波形 ID 升序進行流傳輸。每個數據包傳輸大約 500 個復雜樣本,樣本在 3D 緩沖區中的位置取決于波形 ID 、通道 ID 和樣本索引。

    此應用程序持久運行兩個 CUDA 內核和一個 CPU 內核。第一個 CUDA 內核負責使用 DOCA GPUNetIO API 將數據包從 NIC 讀取到 GPU 。第二個 CUDA 內核基于數據包頭部中的元數據將數據包數據放入正確的內存位置,并應用 MTI 過濾器, CPU 內核負責啟動處理脈沖壓縮和 CFAR 的 CUDA 內核。使用 cuFFT 庫進行 FFT 。

    圖 7 顯示了應用程序的圖形表示。

    Figure depicts the GPU-based signal processing pipeline with two CUDA kernels: one using DOCA GPUNetIO to receive packets in GPU memory and a second to analyze packets.
    圖 7 。基于 GPU 的信號處理管道的工作分配的圖形表示

    雷達探測管線的吞吐量> 100 Gbps 。以 100 Gbps 的線路速率運行 100 萬個 16 通道波形,沒有丟棄任何數據包,信號處理從未落后于數據流的吞吐量。從接收到獨立波形 ID 的最后一個數據包開始測量的延遲大約為 3 毫秒。使用 NVIDIA ConnectX-6 Dx SmartNIC 和 NVIDIA A100 80 GB GPU 。數據是通過以太網上的 UDP 數據包發送的。

    未來的工作將評估該架構在具有集成 DPU 的 BlueField DPU 上獨家運行時的性能。

    GPU 上的實時 DSP 服務

    模擬信號無處不在,既有人工信號(例如 Wi-Fi 無線電),也有自然信號(例如太陽輻射和地震)。為了以數字方式捕獲模擬數據,聲波必須使用 D-a 轉換器進行轉換,該轉換器由采樣率和采樣位深度等參數控制。數字音頻和視頻可以使用 FFT 進行處理,使聲音設計師能夠使用均衡器( EQ )等工具來改變信號的一般特性。

    此示例說明了 NVIDIA 產品和 SDK 是如何通過網絡使用 GPU 執行實時音頻 DSP 的。為此,該團隊構建了一個客戶端,該客戶端解析 WAV 文件,將數據幀化成多個以太網數據包,并通過網絡將其發送到服務器應用程序。該應用程序負責接收數據包、應用 FFT 、操縱音頻信號,并最終發回修改后的數據。

    客戶的責任是識別哪個部分應該發送到信號處理鏈的“服務器”,以及在從服務器接收到處理后的樣本時如何處理。這種方法支持多種 DSP 算法,如重疊相加和各種采樣窗口選擇。

    服務器應用程序使用 DOCA CUDANetIO 從 GPU 內核接收 GPU 內存中的數據包。當已經接收到數據包的子集時,CUDA 內核并行地通過cuFFTDx 庫處理每個數據包的有效載荷。同時,對于每個數據包,不同的 CUDA 線程應用頻率濾波器來降低低頻或高頻的幅度。基本上,它采用低通或高通濾波器。

    Diagram depicting the client-server architecture where the client splits a WAV file into multiple Ethernet packets and sends them to the server. On the server, a CUDA kernel in a continuous loop receives those packets, applies frequency filters and then sends back the modified packets.
    圖 8 。客戶端 – 服務器體系結構,用于演示如何通過網絡使用 GPU 進行實時 DSP 服務

    反向 FFT 被應用于每個分組。通過 DOCA GPUNetIO , CUDA 內核將修改后的數據包發送回客戶端。客戶端重新排序數據包并重新構建它們,以重新創建應用了音效的可聽見且可再現的 WAV 音頻文件。

    使用該客戶端,該團隊可以調整參數以優化音頻輸出的性能和質量。可以將流分離并將流復用到它們的處理鏈中,從而將許多復雜的計算卸載到 GPU 中。這只是觸及了該解決方案的潛力,它可能為云 DSP 服務提供商打開新的市場機會。

    總結

    DOCA GPUNetIO 庫促進了一種以 GPU 為中心的通用方法,用于在進行實時流量分析的網絡應用程序中獲取和傳輸數據包。這篇文章展示了如何在不同上下文的廣泛應用程序中采用這個庫,從而在延遲、吞吐量和系統資源利用率方面提供了巨大的改進。

    要了解有關 GPU 數據包處理和 GPU NetIO 的更多信息,請參閱以下資源:

    ?

    +1

    標簽

    人人超碰97caoporen国产