發表文章

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

圖片
我們先來介紹一下 cuRAN 所需要的安裝環境, 在現有的架構中, Nvidia 一共有在 三個硬體框架 下進行實作: SMC-GH: Supermicro Server ARS-11GL-NHR (Config 2) Dell PowerEdge R750 Server + A100X Gigabyte Edge E251-U70 Server 其中, 3. 是在 Intel CPU 與 GPU (GA100) 協作的架構下完成, 而 1. 則是透過 ARM-based CPU (NVIDIA Grace) 與 GPU (GH200) 協作, 2. 的架構則把計算都整合至 A100X GPU 加速卡. 來自:  https://docs.nvidia.com/aerial/aerial-ran-colab-ota/current/text/installation_guide/procure_the_hardware.html   在 Nvidia 提出的架構中, 為了最大化其 CUDA 平台的計算, 我們可以看到其計算的重心一路從: CPU 架構下的 GPU 運算協作 (架構 3),  變成以 GPU 架構為主的計算 (架構 2), 整合 ARM-based CPU 提供整體運算平台 (架構 1). 這樣計算框架的演進, 也展示了近幾年運算框架的改變, 與 Nvidia 的雄心. 不過, 相對的, 為了讓我們更快的了解 cuRAN 需求, 我們從架構 3 進行說明. 在架構 3 的應用中, 我們需要的元件包含: Intel CPU (Intel Xeon Gold 6240R) RAM (96GB DDR4) GPU (Nvidia GA100) NIC (MLX CX6-DX MCX623106AE-CDAT) 其中, 最特別的是網路卡的需求, 我們來看一下這張網卡的細節, 根據官網敘述, 這張網卡的功能如下: ConnectX-6 Dx EN adapter card, 100GbE, Dual-port QSFP56, PCIe 4.0 x16, Crypto, No Secure Boot, Tall Bracket 來自:  https://www.gotodirect.com/mcx623106ae-cdat-mellanox-connectx-6-

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

圖片
雖然, AODT 還有很多可以介紹的, 不過, 我想我們就先暫時停在這邊, 先進入下一個章節: cuRAN, cuRAN 全稱為: Aerial CUDA-Accelerated RAN,  顧名思義, 即是透過 Nvidia CUDA 計算平台加速的行動網路, 對於 Nvidia 而言, 縱使 AODT, 或是其對應的數位雙生概念, 才是主要的發想, cuRAN 也是其在電信產業的敲門磚, 證實其有能力進行實作, 並透過 CUDA 加速, 甚至是優化現有的電信網路. 考慮到這樣的面向, 我們不針對 cuRAN 中的單元一對一介紹, 相反的, 我們直接從其 E2E (End-to-End) 的展示開始, 對於 Nvidia 如何串接 CUDA 平台, 並展示其實體通訊能力進行介紹, 相關的內容在:  1) 影片介紹:  https://www.nvidia.com/en-us/on-demand/session/other2023-arc/ 2) ARC-OTA 文件: https://docs.nvidia.com/aerial/aerial-ran-colab-ota/current/index.html 3) blog 介紹:  https://developer.nvidia.com/blog/introducing-aerial-research-cloud-for-innovations-in-5g-and-6g/ 在這邊先解釋一下, 我們主要的參考文件來自於 ARC-OTA, 而不是來自於之前介紹的 cuBB 文件, 兩者使用的版本些落差, 在 ARC-OTA 中, 使用 24-1 的 cuBB 版本, 同時並未實作 cuMAC:  https://docs.nvidia.com/aerial/aerial-ran-colab-ota/current/text/getting_started/index.html 在 CU/DU 層, 則使用 OAI 的解決方案. 來自: Nvidia Technical Blog 在 Nvidia 2024 年的 DEMO 架構中, 我們可以看到可以分成 5 個部分: 5GC: OAI - 2024.w21 CU/DU-high: OAI - 2024.w21 DU-low: cuPHY (Layer1)/ Data

AI-RAN: Nvidia Areial RAN - AODT (4)

圖片
在 AODT 中, 另一個重要的特色即在於對 AI/ML 演算法的支援, 在 Nvidia 的初始想法中, 數位雙生的主要目標即在於產生訓練模型用的訓練資料, 也因此, AODT 也提供了一個 AI/ML 的範例, 展示如何透過 AODT 所產生的訓練資料, 進行模型的訓練. 關於這一部分的內容, 相關的文件內容可以參考: https://docs.nvidia.com/aerial/aerial-dt/text/ran_digital_twin.html#simulation-mode-3-ml-examples 在此範例中, 強調的是如何透過 AODT 平台鑲嵌 AI/ML 演算法, 在 AODT 1.1 中, 提供兩個範例, 第一個是 CFR 的預測, 如下圖所示: 在此範例中, 輸入是 EM engine 產生的通道數值, 以 CFR 的方式進行呈現, 其基本想法即是透過收集加入雜訊後的 CFR 數值, 作為輸入, 以神經網路回估原始未加雜訊的 CFR 變化, 不過在此範例中, 通道的估計器 (Channel Predictor, 上圖橘框) 並不是一個泛化的估計器, 而是針對每一組傳送-接收端, 都有一個獨立實作模型, 因此, 期能夠預測的也只有時間上的變化 (N=5 slots 後的通道效應), 考慮在 AODT 環境中, 使用者移動模型為在開放場域中直線移動, 應可以透過數個連續的 CFR 數值, 預估短時間內的通道變化, 也就是有效反射路徑的連續變化. 另一個範例的應用也是通到估計, 不過, 其設計則是用以展示 AODT 進行模型優化的能力, 在此範例中, 先以 Sionna 的統計通道模型對模型預訓練 (ML Channel Estimator, 下圖橘框), 在以 AODT 實際的通道輸入 (解調完的 DMRS) 作為即時估計輸入, DMRS 全名為: DeModulated Reference Symbols, 存在於 PUSCH (上行排程的通道), 然而, 對於單一的使用者而言, DMRS 只佔有部分的通訊資源 (Resource Block), 因此, 若我們要利用 DMRS 訊號幫助下行的排程 (scheduling), 我們必須利用少量的通道響應, 內差與外插出整體頻寬的通道變化, 也就是 CFR 數值, 這也就是此範例提供的目標,

AI-RAN: Nvidia Areial RAN - AODT (3)

圖片
在這篇文章中, 我們介紹一下 AODT 可以取得那些模擬參數, 考慮到在 AODT 框架下, 計算 (backend) 與顯示 (frontend) 是分離的,  中間資料交換部分, 則是透過 ClickHouse Database 進行, 因此, 所有可以透過 AODT 介面顯示 (frontend) 的模擬資訊,  都可以透過 ClickHouse 的資料庫讀取來取得.  關於 ClickHouse 資料庫內部的欄位可以參考 AODT 的官方文件: https://docs.nvidia.com/aerial/aerial-dt/text/additional_info.html#database-tables 其中, 我們先大致整理一下表格內容, 並分類資訊類別: AODT 系統模擬參數:  db_info, time_info 環境參數: scenario, materials 通道模擬結果: raypaths, cirs, cfrs RAN 設定: panels, patterns, rus, dus 使用者與移動性: ues,  RAN Simulation: telemetry,  ML Training 結果: training_result 其中, 多數的內容應該直接查看網頁中的定義就可以理解, 因此, 我們就專注在 raypaths 與 telemetry 這兩個跟模擬結果直接相關的部分, 針對 raypaths 部分, 資料庫列出了每一條互動路徑的數值, ru_id, ue_id 代表了傳輸路徑的兩端, points 則代表了中間產生互動 (interaction) 的位置, 互動分成 5 類: 發送 (emission), 反射 (reflection), diffraction (繞射), diffuse (散射), reception (接收), 透過記錄下每一次互動的時間, 位置, 以及對應的訊號強度變化, 便可以完整表示出電磁波在環境中的互動狀況. 值得注意的是, 目前 AODT 並沒有模擬電磁波的穿透效應 (折射, 衰減), 因此, 能夠應用的範圍仍侷限在室外的場域中,  另外, 這些路徑的接收強度疊加就會表示為 CIR (cirs) 與 CFR (cfrs). 在 AODT 中並沒有計算 RSRP 的數值, 可能須自行累計. te

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

圖片
在一開始的介紹中, 我們貼了一張 AODT 的架構圖, 可以清楚地分成三個部分: 使用者介面: 進行模擬情境的定義 通道模擬器: EM solver 以光跡追蹤模型模擬 CIR 和 CFR RAN 模擬器: cuMAC 和 cuPHY 進行網速模擬 這樣的架構, 清楚的切分出 AI-RAN 模擬的挑戰, 以及所需要的計算套件. 不幸的是, 在系統實作上, 有更多其他的限制需要考慮, 有些時候, 還必須受限於既有系統的框架. 來自:  https://docs.nvidia.com/aerial/aerial-dt/text/overview.html 上圖是實際 AODT 的實作框架, 原本 3 分的計算架構, 改成 2 分式, 對應於前台 (front-end) 與後台 (back-end), 中間資料交換的部分, 透過 Nvidia 的 Nucleus Server 以及對應的 Neculeus Connector, 以 Server-Client 的架構進行實作, 也或許因此改成二階段框架, 減少中間資料交換, 中間資料交換的部分是以 ClickHouse 進行實作, 提供 SQL-like 的資料存取. 在介紹完資料交換的元件之後, 接著我們透過 AODT 執行流程來說明各元件功能: Scene Important 根據 CityGML* 格式的檔案, 產生對應的 3D USD* 模型 AODT front-end 進行模擬的設定, 可以分成三種模式: (a) Channel Simulation, (b) Channel + RAN Simulation, (3) Channel Simulation + ML training 將計算設定透過 Nucleus Server 傳送給後端, 進行計算 後端將計算完後的結果, 傳到 ClickHouse 儲存 前端的 AODT 介面撥放後端計算完的結果 Note 1: CityGML 為針對城市定義的 3D 模型 ( https://www.citygmlwiki.org/index.php ) Note 2: USD 為一種開放的 3D 場景 (Scene) 描述語言, 為 Nvidia 所採用, ( https://www.nvidia.com/zh-tw/omniverse/usd/ )  在目前 AOD

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

圖片
就讓我們從 Aerial Omniverse Digital Twin 談起吧!  為了減少打字的麻煩, 在後續文章中簡寫為 AODT, 以 AODT 作為介紹的起點, 一方面是因為他有完整的使用者介面, 可以視覺化的呈現 AI RAN 的應用與概念, 另一方面, AODT 也有善用到 CUDA 的平行運算能力, 我們可以介紹 Nvidia 對於 AI RAN 的投入. 我們先從 AODT 的是範例出發, 可以參考以下影片: 來自:  https://www.youtube.com/watch?v=J5-rkgL2dFA 在影片中, AODT 展示了兩個主要的能力: 透過 3D 城市建模, 模擬電磁波實際和場景互動 模擬使用者的移動行為, 即時計算傳送端到接收端的訊號變化 透過以上兩個能力, 在布建基地台前, 我們就可以評估是否有訊號死角, 不必像傳統的行動網路業者, 還需要開車去做事後評估與補強, 同時, 這些模擬不只是訊號強度, 還包含了通道的時域 (CIR) 與頻域 (CFR) 特徵, 可以直接匯入 cuMAC 和 cuPHY 的模組中, 進行網速的評估. 因此, AODT 可以提供一個大型通訊網路在一個城市中的數位雙生 (Digital Twin), 這些收集來的通道資訊, 更可以作為 AI/ML 模型的訓練資料, 透過大量的訓練資料, 賦予通訊網路引入 AI/ML 能力的潛力. 看起來非常厲害, 簡直就是無線通訊的未來對吧? 一方面, 是的. Nvidia 憑藉著其對 GPU 平行運算能力的掌握, 將原有無線通道模擬的速度從小時, 推進到分鐘. (依據我們的經驗) 這樣的模擬速度與尺度, 的確讓大量訓練資料產生變成可能, 同時, 考量到 AI/ML 模型的訓練需要大量的資料,  AODT 也的確解決了 AI-RAN 訓練資料從何而來的問題. 另一方面, AODT 1.0 版的發布時間為 2024 年 4 月. 作為一個年輕的專案, 其本身一定會有許多限制 (以及 bugs ...) 我們將在後續文章中, 先介紹其實作框架, 以及各元件功能, 接著, 我們將繼續介紹他們的限制,  給予 AODT 目前的狀態一個較全面的評估.

AI-RAN: Nvidia Areial RAN -介紹

圖片
隨著 AI 在近年的興起,  Nvidia 憑藉著其 CUDA 平台的平行計算能力, 在 AI 領域取得了大量的成功, 為了推展 CUDA 的應用, Nvidia 推出了一系列 Omniverse 的服務, 其基本的想法是: 隨著平行化運算晶片的發展, 算力將更加便宜, 此時, 對於 AI 模型的問題將不是算力限制, 而是訓練資料不足, 因此, Nvidia 希望透過 Omniverse 的數位雙生技術 (Digital Twins), 來提供訓練模型的大量訓練資料.   *Note: 可以參考黃仁勳於 Computex 的演說: https://www.nvidia.com/en-us/events/computex/ 在 Nvidia 為了通訊系統 (稱為 Aerial RAN) 的生態系中, 又可以分成三個不同的專案: Sionna:  https://nvlabs.github.io/sionna/examples/Discover_Sionna.html Aerial Omniverse Digital Twin:  https://docs.nvidia.com/aerial/aerial-dt/index.html Aerial CUDA-Accelerated RAN:  https://docs.nvidia.com/aerial/cuda-accelerated-ran/index.html 在整體 AI-RAN 的架構中, 可以用下面這張圖來表示各分項的功能: 來自:  https://developer.nvidia.com/blog/boosting-ai-driven-innovation-in-6g-with-the-ai-ran-alliance-3gpp-and-o-ran/  在 Nvidia 的 AI-RAN 架構中, 區分成三個層級: Link-level: 模擬通道特性, 並分析網路的效能, 對應於 Sionna System-level: 包含 cuMAC, cuPHY 的模擬, 對應於 AODT End-to-End: 介接其他設備 (CU/DU/RU), 提供真實 5G 連線, 對應於 Aerial RAN   在實作上, 其中的差異在於所含有的套件,  我們借用 Aerial Omniverse Digital Tw