發表文章

目前顯示的是 2025的文章

AI-RAN: DPU (Data Processing Unit) 與他的分類 (2)

圖片
最近實在是太忙碌了, 以致 2 月的第二篇拖到現在才寫, 原本是想說, 也該找時間回補一篇文章, 達成一個月兩篇的自我承諾, 不過看了看自己的行事曆, 還是不要把承諾給得太輕易好了... 回歸正題, 在上一篇文章中, 我們介紹了 DPU 以及 DOCA 的源起, 接著, 我想我們就從 DPU 的架構來說明, 這樣的功能如何實現, 在開始討論以前, 我想先談談兩個我之淺搞混的產品: ConnectX: 本質上還是 NIC, 但具備硬體卸載 (offload) 能力來減少 CPU 負擔 BlueField: 這個才是 DPU, 具備 ARM CPU 獨立晶片, 也是我們討論的目標 針對 Nvidia CuRAN 的功能, 以上兩者皆能支援, 若以實作上的功能簡單化來說, 使用 ConnectX 可能可以少走一些路. 那我們就從 DPU 的架構開始吧: 來自:  https://docs.nvidia.com/networking/display/bluefieldbsp480/bluefield+software+overview 看到這張圖, 就代表我們要先對其中專有名詞說文解字一下: Rhsim 是 BlueField DPU 的模擬環境,允許在同一台 BlueField DPU 上同時運行 Host 和 DPU 環境,以測試 DPU 處理流量的能力 (這個我們之後再介紹) ConnectX Port 指的是 NVIDIA ConnectX 系列網路介面卡 (NIC) 的網路埠 (Port),這些埠可用於各種高速網路通訊, 例如: Ethernet、InfiniBand、RDMA RDMA (Remote Direct Memory Access) 允許伺服器之間直接存取彼此的記憶體,而不經過 CPU 處理 在上圖中, 我們可以看到 DPU 基本上就是 ConnectX 網卡和 ARM CPU 的組合, 這裡增加的 ARM CPU 一方面提供一個簡單的作業系統 (BlueField OS), 另一方面, 也可以透過此作業系統上的 OpneVSwith 提供 SDN (Software Define Network) 功能. 來自: https://www.servethehome.com/nvidia-bluefield-3-dpu-archite...

AI-RAN: DPU (Data Processing Unit) 與他的分類 (1)

圖片
由於近日工作有所插斷, 所以就來改看一些 DPU 的文章, DPU (Data Processing Unit) 是 Nvidia 生態圈中比較不亮眼的一支, 但卻也是一個建構新型態運算的重要角色. 在 Nvidia 的新型態運算框架中,  主要的目標就是要從以 CPU 為主的計算架構, 改成以 GPU 為主的架構,  這其中有一個困難處, 就是計算透過網路平行化的效能, 為了處理大量的資料, 資料中心必須考慮多個節點的資料平行化, 這些平行運算的資料, 就需要透過網路在各節點中透過 CPU 處理並交換, 因此, 整體運算的瓶頸仍是在 CPU 的運算上. 為了打破這樣的架構, Nvidia 在 2019 年收購了 Mellanox, 並開始開發 DPU 的產品, 用意在直接串連 GPU 的運算算力,  提供資料中心以 GPU 為基礎的計算架構. 來自: https://docs.oracle.com/zh-tw/learn/gpudirect-rdma-ib-write-bw/index.html#introduction 為了達成以 GPU 為核心的平行計算架構,  Nvidia 使用 RDMA (R emote Direct Memory Access, RDMA ) 技術來串聯 GPU, 並透過 DPU 與 GPU 之間的 PCIe 匯流技術 ( Direct Memory Access, DMA ), 繞開 CPU 端到端間的存取, 讓不同節點上的 GPU 可以進行資料交換, 進而提供跨節點的 GPU 平行化計算框架.  來自:  https://developer.nvidia.com/blog/demystifying-doca/ 和發展 CUDA 的策略類似, Nvidia 也希望發展 DPU 的環境形成業界標準. 相對於 CUDA 主要為 CPU 的核心平行化, DPU 這邊的環境稱為: DOCA (Data-Center-Infrastructure-On-A-Chip Architecture), 我們以上圖作為參考的實作框架, 左邊為 GPU 右邊為 DPU, 兩者透過 CUDA 協作,  在 DPU 的框架中, 我們看到有一個 DOCA Runtime, 運作在 D...

AI-RAN: Nvidia Areial RAN - Sionna (2)

圖片
我們就從 Sionna 的安裝開始吧! Sionna 可以簡單的用 Google Co-lab 開啟, 但我們還是開立一個新的 linux 環境來進行安裝. 主要的操作, 請參考:  https://nvlabs.github.io/sionna/installation.html 首先, 先建立一個 conda 環境, 並進入: conda create -n sionna conda activate sionna 接著, 透過 pip 安裝 Sionna 相關套件, Sionna 的相依套件已封裝至 sionna 這個軟體安裝組合中, 除了 sionna 之外, 為了進行圖形化顯示, 我們還需要安裝 jupyter notebook, 提供圖形的顯示, 安裝指令如下: (sionna) ov2@ov2:~$ pip install sionna Defaulting to user installation because normal site-packages is not writeable  Collecting sionna [...] (sionna) ov2@ov2:~$ pip install --upgrade ipykernel jupyterlab jupyter 這邊 jupyter notebook 還需要一些額外的設置, 使外部的編輯需求可以連入, 考慮到此處的設定和伺服器相關, 便不再詳述, 主要步驟即是設定對外 IP 並對 port 進行 NAT 轉換. 安裝完成後, 我們先透過 python 的介面檢查 Sionna 是否可以正確引入, 其對應的指令如下: (sionna) ov2@ov2:~$ python3 Python 3.10.12 (main, Jan 17 2025, 14:35:34) [GCC 11.4.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import sionna >>> print(sionna.__version__) 0.19.1 這邊我們可以看到可以正...

AI-RAN: Nvidia Areial RAN - Sionna (1)

圖片
在一系列文章的最後, 我們進入 Sionna 的介紹, 考慮到 Sionna 只有少數的硬體需求, 我們在此系列文章中, 將介紹 Sionna 的安裝, 環境建立, 以及模擬. 在整體 Sionna 的介紹中, 我們也將側重兩個部分: 光跡追蹤 (Ray-tracing) 通道模型 通道參數對於 5G/6G 通訊應用的轉換 在開啟一系列文章之前, 我們還是先看看 Sionna 如何介紹自己: 來自: https://nvlabs.github.io/sionna/ Sionna 是用以發展 5G 與 6G 相關的研究套件, 支持: MIMO link-level 模擬, LDPC/Polar 編碼解碼, OFDM 通道估測與分配 Sionna 基於 Tensor-flow 開發, 可以使用 GPU 加速, 但也可以單獨使用 CPU 可以使用 Google Co-lab 與 Jupyter 環境編譯操作  來自:  https://developer.nvidia.com/blog/jumpstarting-link-level-simulations-with-sionna/ 事實上, Sionna 的整體實作核心是光跡追蹤的通道模型, 對於此部分的通道模擬機制, Sionna 有單獨的文件介紹:  https://nvlabs.github.io/sionna/em_primer.html 透過此通道模型, Sionna 可以進行 CIR (Channel Impluse Response) 的計算, 並據此取得 5G/6G 通訊環境中, OFDM symbol 的強度響應, 進行後續的資源分配與網速的分析. 基於光跡追蹤模型, Sionna 也提供了 RIS (Reconfigurable Intelligent Surfaces) 的模擬套件, 用以提供 6G 架構下, ISAC (Integrated Sensing and Communications) 的演算法開發, 針對通訊演算法部分,  Sionna 側重通道估測, 以及編碼-解碼設計, 希望透過以 GPU 加速的 5G/6G 通道模擬系統, 加速 5G/6G AI RAN (Radio Access Network) 的發展.