Nvidia 2021 GTC 在說什麼呢?
以工程師的角度去看:硬體、軟體以及應用趨勢
6:57 pm PT, 12/31/2021 @ Mountain View
Nvidia 2021 GTC
https://www.youtube.com/watch?v=jhDiaUL_RaM&ab_channel=NVIDIA
動機
Nvidia 在今年的聲勢非常好,股價也表現得很不錯,讓人有了好奇心想要多瞭解這家公司,而在看完 Nvidia GTC 發表會後,發現這間公司跨足的點實在太多了,就想了解一間硬體公司究竟如何能接觸到這麼多不統產業面向,提供完整的解決方案給客戶。
對於工程的我們來說,看完 GTC 會覺得:我怎麼沒辦法把他說的東西跟我會的東西對上。有鑑於此,我們需要跟各方產業工程師聊聊 (軟體、硬體、Infra) 、反覆聽,才能將他們說的硬體平台架構跟我們正在使用的東西做連結。
同時也有一位就讀 CMU CS 鑽研 ML 的學生 Pierre Sue,他說:
你要不要寫一篇 Nvidia keynote 講解,有些內容跟架構也太難懂
更催促這篇文的誕生,但多多少少還是會遺漏很多東西,因為真的太廣了,因此如果有少什麼也請見諒,至少重要的大東西不會錯過!
除了 Next-gen 硬體之外,新的 SoC、平台及軟體架構是本次發表會的重點。
# 硬體
Nvidia 是一間硬體公司起家,但做到最後其實已經不再是硬體公司了。
“We started with the amazing chips, but for each field of science, industry, and application we create a full stack,” quoted from Jensen.
他們有硬體,有伺服器平台,有軟體架構 (Framework),有 Library,而這些東西可以服務世界上很多很多產業,這也是為何 GTC 這麼錯綜複雜。
因此先介紹他們這次亮點的晶片,因為很多後面的服務、軟體都是從這些基層硬體建立起來的
晶片裝置 — The Building Blocks
- Quantum-2 (Switch)
Nvidia 研發最新一代的 networking switch。64 ports,每個 port 400 Gbps,因此可以有高達 25.6 Tbps 的極大頻寬。再搭配 Nvidia 自行設計的軟硬體科技 (Remote DMA、Scalable Hierarchical Aggregation and Reduction Protocol… so on)。
利用這樣的 switch,Nvidia 可以有高速、低延遲以及更 scalable 的方式來連結高達 1 million 個節點 (nodes, clusters),成為 High-Performance Cloud Computing 的基礎。
- Connectx-7 (SmartNIC)
Nvidia 其中一種 Smart NIC (Smart Network Interface Controller),用來專門將大量資料做處理後傳送出去的一種加速器,旨在幫助 Host CPU 處理網路傳輸所需要的計算 (e.g. crypto acceleration — 網路資料很多都要加密, packet processing …等等)。擁有 Programmable Hardware 以及 Large Storage 是他的亮點。
Connectx-7 的效能為前一代 Connex-6 的下一代的兩倍,擁有 400 Gbps 的頻寬,與 Traditional NIC 相比,大大地拓展 (Extend but not yet standalone) CPU 的功能。
- Bluefield-3 (DPU)
Connectx-7 是 Smart NIC,依附在 Host CPU 上,適時 offload 一些工作,那 Bluefield-3 就是更強大的 Smart NIC — 進階成 DPU (Data Processing Unit),可以獨立運作 (now it is standalone!)。首先從電晶體數量就可以看到差別 Bluefield-3 有 22 Biliions 個電晶體,然而 Connectx-7 只有 8 Billions。
再來,Bluefield-3 擁有自己的 CPU (16 cores Arm) 因此在上面可以跑 OS,執行跟一般 CPU 一樣的事情了,更強調自己的獨立運作,成為 Server 間溝通的 Infrastructure Endpoint。主要的亮點為 :
- Programmable Datapath Accelerator — 可以透過 Nvidia DOCA Platform Program Bluefield-3 來加速 Network processing (e.g. crypto acceleration)。
- Arm CPU Cores — 運行 OS,讓此晶片從 Server Stack 獨立出來,更強大的自主性,更大的 Storage,提供 secure data channel 給整個 server infrastructure。
more of general-purpose endpoints to deliver compute, network, and storage securely to and from the overall infrastructure
- Orin
Orin 是一塊 AI SOC,提供強大的計算能力給如:圖像辨識、語音辨識、影像融合…等等人工智慧相關的應用程式。他整合 Arm CPU、Nvidia GPU、Deep Learning Accelerator 和 Vision Accelerator 在一個 SoC 上面,擁有 200 TOPS (trillion operations per second) 的 Inference Performance 以及 200 Gbs 的 GPU 頻寬。其中他使用 Arm Cortex-A78AE CPU,可以增加 Orin 安全性及處理複雜狀況的能力,同時也擁有低功耗的特色 (60~70W)。
Nvidia 前一代自駕晶片 Xaviers 擁有 30 TOPS/30W 的效能,因此 Orin 的能量效率 (performance per watt) 為 Xaviers 的 3 倍,雖然功耗增加,但提供的算力增加更多。而 Tesla 目前 Autopilot Hardware Version 3 (HW3) 的 FSD 晶片效能為 144 TOPS/72W,比 Orin 弱些,但 HW3 是在 2019 推出,而且 HW4 已經在開發了,因此可以期待兩邊的性能比較。
硬體平台 —The Platform
Nvidia Quantum-2 — Cloud-Native Supercomputing
Quantum-2 擁有 Quantum-2 Switch、Bluefield-3 DPU 搭載在它們的 DGX Server System。
- Quantum-2 Switch 提供大量的網路頻寬,提升 Data Throughput
- Bluefield-3 DPU 幫助 Host CPU offload 30% 的計算量,提供 Data Protection、High-Performance Computation
- DGX Server 由 NVIDIA A100 Tensor Core GPU 組成,計算量的主要來源
與前一代比, Nvidia Quantum-2 擁有 2 倍的 Data Throughput (400 Gbps)、5 倍 Nvidia的 資料 Switching 的能力,總共可以處理現今 1.5 倍所有網路資料的流量。
有這樣的硬體, Nvidia Quantum-2 是一個 Container-based 的 Server — 也就是 Cloud-Native。Container 讓軟體在伺服器的部署更容易,可處理的資料因為額外的頻寬及計算量增加許多,同時又能確保這樣大量的資料能安全,讓 AI Application 的 Scalability 在 Quantum-2 上安全地提升 6.5 倍。
小結
新的硬體可以提供更大的頻寬,支援現今需要處理大量資料的伺服器。同時也不落人後有新一代的 AI SoC 加強 edge device 端 (e.g. 自駕車、智慧醫療)的處理效能需求。
# 軟體
函式庫 (Library)
- cuQUANTUM
利用 State Vector (儲存一連串 quantum state 的 vector) 和 Tensor Network 來模擬 qubits 運算,而 GPU 剛好也能在這個領域幫忙做加速,而這套 Library 就是為了 Quantum Algorithm 去做設計的。搭配 Nvidia DGX Superpod 系統 (Nvidia A100 80GB GPU * 8 — 總共 640 GB memory),可以模擬高達 36 個 qubits (現今利用最強的 Computer 只能模擬 50 個 Qubits)。
- cuNUMERIC
Nvidia cuNUMERIC library 直接改進 Python 的 numpy 函式庫,可以讓程式碼的 GPU scalability 無痛升級,意思是你不用重寫程式碼就可以讓程式跑在 multi-GPUs 的伺服器平台上。 因為 numpy 函式庫被廣泛運用在當今的科學運算 (e.g. 資料科學、人工智慧、數值計算),cuNUMERIC 可以造福很多社群,使計算速度改進 100 倍。
- Deep Graph Library (DGL) Containers
加速 Graph Neural Network (GNN) 的計算速度。GNN 是使用在例如推薦系統、社交連結、電商買賣家連結…等等這些可以藉由 Edges+ Nodes 構成一個 Graph 的應用,而這些 Graph 的技術可說是廣泛存在我們的生活之中。
Nvidia 與 DGL 持續合作並改善效能,如提供 GPU Memory 當作 caching 的一部分,或是重疊 ML 運算中傳送 forward, backward passes 的時間,提升 GPU 使用率。Nvidia 提供 GPU accelerated DGL containers 讓 Developer 可以快速部署 DGL Package 提升 GNN 的效能 (process billions of nodes in seconds)
- TensorRT Integrated with Pytorch and Tensorflow
Nvidia TensorRT Compiler 已經被整合進去 PyTorch 跟 TesnsorFlow。 TensorRT Compiler 主要使用的技術有
- Reduced Precision — 使用比較 light-weight 的資料型態如: FP16 來使 model 變得更輕量,同時維持準確率
- Layer and Tensor Fusion—將類似神經節點 (nodes) 結合在一起,減少 GPU 記憶體的使用率 (memory footprint)。
- Dynamic Tensor Memory — 減少 Tensor Vector 的 memory ootprint (減少移動的次數),也讓記憶體的使用率大大提升。
當然還有很多技術,我只挑其中幾個比較容易懂的來講解。
“With one line of code, machine learning developers can get a three-times boost without lifting a finger. Just one line of code,” said by Jensen in GTC 2021
軟體套件 (SDK)
Nvidia 將硬體跟自家軟體垂直整合,提供客戶一種 end-to-end 的 Solution,也就是他們的軟體套件,開發者可以在 Nvidia 的硬體上,使用這些軟體套件來達到更好的結果。
- Nvidia DOCA—基礎就是使用 Bluefield-3 DPU,處理資料的進出。擁有 Programmability 以及獨立於 Host CPU 運作的能力 (isolation),開發者可以創造 Software-Defined、原生於各個雲端 (Cloud-Native) 的 microservices,輕鬆強化不同雲端網路的效能跟安全性,達到所謂的 — Security-as-a-Service。
- Nvidia Triton—分散式 Inference 引擎 (minutes to second),整合更多 GPUs 來提升 Inference 速度。開發者可以利用 Nvidia Triton (Github Here) 部署數個 Inference server 在 Single/Multi-GPU System 上,最大化使用 GPU 來改善任何一種 AI 架構的性能。
- Nvidia Clara Holoscan — 整合 Nvidia 硬體及軟體,讓開發者開發醫療影像相關的應用。這個 SDK 提供 API 給開發者使用 GPU 加速醫學影像處理所需要的演算法。
- Nvidia ISAAC ROS — 與 ROS 系統 (Robot OS) 整合,提供硬體加速的軟體套件,讓機器人開發者可以利用 Nvidia 的 GPU 加速,進行實時物理模擬及運行人工智慧模型。
- Nvidia RIVA Speech AI — 提供 Pre-trained AI model 給語音相關的應用,如語音文字間的轉換 (text-to-speech) 或者語音辨識。Riva 為一種虛擬環境容器化服務 (containerized service),開發者可以使用 docker 在任何伺服器部署,加入他們需要語音辨識的應用當中,讓產品能說起話來、理解文字。
應用框架 (Application Framework)
這邊主要介紹的都是 Nvidia 自己開發的 AI 框架,幫助開發者解決問題。
- Nvidia Modulus — 從 Simnet 發展過來的,利用 multi-GPUs 系統來模擬物理世界的 AI 模型,提供更好的 GPU Scalability。可以使用在 Omniverse 上面。
- Nvidia Morpheus — 監測整個網絡裡包含敏感資訊的 traffic (e.g. credit card credential, account credential … and so on),利用 Nvidia Triton 強大的 Inference 能力,可以找出網路中未加密卻被傳遞的敏感資訊,追蹤流向來避免金融詐騙,提供網路安全。
- Nvidia Nemo Megatron — 利用 Nemo 架構大規模訓練 Megratron GPT-3 models (語言 AI 模型)。這種 AI 模型通常擁有很大量的參數 (billions of parameters),而 Nemo Megatron 讓我們得以有效使用很多 GPUs/Nodes 來訓練。
- Nvidia Metropolis — 運行 AI 模型在 Nvidia EGX 硬體平台來做影像分析。可以使用的產業從工廠製造、物流、零售等都有,從這些邊緣裝置 (攝像頭、監視器) 去抓取影像資料傳送到雲端,Metropolis 實現了 “from the edge to the cloud”,賦予 Intelligence 給那些裝置 。
開發平台 (Development Platform)
Nvidia Drive Hyperion
Nvidia 開發的自駕車平台,同時從發表會上可知道他目前使用 Benz 的車輛平台,值得期待 Benz 在自駕領域的發展 (Benz launches level-3 driving)。
此平台提供硬體、感測器 (Camera, Radar, Lidar …) 及軟體給車廠使用,是一套 end-to-end 的解決辦法。核心是 Orin SoC 和 DRIVE AGX Xavier (主機板),並在此之上開發出一套 Software Development Kit,滿足自駕車的軟硬體需求 (200 TOPS/70W according to Orin SoC)。
小結
Nvidia 自己做 GPU,又做了 CUDA 這套極為關鍵語言,讓這些函式庫的開發能更對症下藥,直接針對自己的硬體去找出解決辦法。
- Nvidia 開發軟體函式庫,可讓大多數的軟體 Nvidia 硬體上進行優化
- 再更聚焦些,開發 SDK,發展出自家軟體套件與自家硬體整合,可以更精準的針對不同應用優化。
- 而應用框架則是針對不同的應用開發出來的 AI 模型,可以利用以上開發的軟硬體工具來優化性能。
- 最後提供開發平台,直接提供 end-to-end 的解決辦法 :將所有應用框架、軟體及硬體包裹在一起,完全的垂直整合。
這些軟硬體整合套件,由 Nvidia 內部的軟硬體工程師一起開發,讓他們能輕鬆達到 10x、100x,甚至 1000x 的效能改進,造就他們完整的生態系統。
# 應用趨勢
從自研新的晶片 (GPU、DPU、Switch、SoC),然後在利用新的晶片拼湊成伺服器平台,最後根據自研硬體平台做優化來開發函式庫、SDK (Software Development Kit) 以及應用框架,Nvidia 從這些基礎延伸很多不同的應用,基於人工智慧的架構來開發,不斷的改善軟硬體來 “加速” 這些產業的發展。
至於有什麼產業呢?
1. Cloud Computing
這應該算是現今網路的基礎建設。Nvidia 致力於開發更進階的 GPU、DPU 在提升計算資源的同時也提供極高的資料安全性,來滿足現今人工智慧所需要的計算資源及網路頻寬,上述的 Nvidia Quantum-2 這樣的 Supercomputer Server 就是一個很好的例子。
2. Climate Science
有 Nvidia Quantum-2 這樣的大型超級電腦,再加上框架如 Nvidia Modulus 就可以很輕鬆的模擬複雜的物理模型,如預測氣候、太空探索等等需要考慮很多物理變數的應用。
3. Autonomous
- Autonomous Vehicle 可說是現在最火紅的產業之一,Nvidia 深厚的影像處理技術也不落人後,推出 Nvidia Drive Hyperion 以及 Orin,讓其他傳統車廠能迅速的達到 L2/L3 的自動駕駛位階。
- 除此之外自動化機器人產業可以運用 Nvidia ISSAC ROS 以及 Nvidia Clara Holoscan 的影像技術,創造醫療用機械手臂、生產線自動化機器人。
4. Cyber Security
網路流量日益增加,企業管理使用者敏感的資料也愈來愈多,Nvidia 開發更新一代的 NIC、DPU 提供算力及資料空間給網路加密使用。除此之外還有軟體跟 AI 框架 — Nvidia DOCA 和 Nvidia Morpheus,讓企業在伺服器部署軟體時,達到 Zero-trust Security
5. Omniverse
將各種不同產業的 3D 設計師統整在一個共同空間裡,今天不管你用 Solidworks, AutoDesk, Adobe 或者什麼,最後到 Omniverse 大家可以共同編輯、存在在同一個空間,讓整個 3D design 的產業變得更加有生產力。例如汽車生產工廠的模擬,生產線部門把他們的模型放上去 (可能某家 3D 軟體,專門設計 assembly line 的),汽車模型部門把車子的模型放上去 (可能又是另一家 3D 軟體,畫汽車的),Nvidia Omniverse 就可以使用新定義的 Software Stack — Universal Scene Description (USD) 將他們共存在同個 3D 空間,搭配他們的硬體實力 (AI、圖像方面),Nvidia 期望創造一個跟現實世界很像的 "Digital Twin"
“Virtual world will crop up like websites today”
6. Others
礙於篇幅,就大概挑幾個我覺得比較容易說明的產業,當然還有其他在 GTC 有提到的如:
- Quantum Computing —利用 GPU 模擬 Quantum Computer
- Medial Industry — 使用 AI 架構從事研究如藥物發現、疾病模擬
- Project Maxine — 使用 Nvidia RIVA 來實現語音助理
這些都是很尖端、有展望的應用,需要 AI 的幫助來彌補人類不足的部分,開發新事物。
結語
展望
從硬體,到 CUDA 語言,到現在 Nvidia 被使用在如此廣泛的應用領域,可以看到他們從硬體公司慢慢成為了軟體服務公司。他們以硬體當成盾牌,成為 Nvidia 厚實的防禦力,站穩硬優勢; 軟體變成武器,有了硬體的防護力,Nvidia 可以無後顧之憂的開發相關軟體套件; 平台則是勇猛的戰士,揮舞著劍盾。
Nvidia 適性培育每位戰士,鍛造冶煉適合他們的武器,在用不同的方法訓練他們,創造所謂的獨一無二的解決方案提供各個企業。有了軟硬體的“硬優勢”,他們能從根部改善所有產品的效能,一路往上,創造正循環,他們的前景令人期待!
挑戰
而他們當然也面臨著挑戰。目前世界兩大重點產業: 自駕車和 Omniverse,Nvidia 雖然提供很吸引人的解決方案,但以自駕車來說,Tesla 已經有幾百萬輛車在世界上累積里程數,Nvidia 必須思考該如何增加 Hyperion 平台被使用的速度,迅速地讓車廠使用它。但我認為他們提供的算力及功耗以通用規模來說是非常吸引人的,有機會獨樹一格。
而 Omniverse 這樣的議題還有待討論,目前 Nvidia 提供的雲端計算以及 GPU 的解決辦法,來處理 3D 虛擬世界所需要的繪圖能力。但功耗問題、器材體積問題,網路傳輸速度是 3 個決定 Omniverse 使用者體驗的問題。目前看來 Nvidia 並沒有推出很亮眼的晶片“專門”處理 Omniverse 的問題,我認為 Killer Chip 還沒出現 (小而能變成攜帶裝置、功耗低而能持久運行、且有相當的頻寬算力),必須要針對 Omniverse 某個應用來做優化,殺出機會。
以上就是我對於 Nvidia 2021 GTC 發表會的分析及心得感想,篇幅雖長,希望各位能帶走點什麼,更暸解這家公司。
References
- Nvidia Quantum 2 Switch Learn More
- Nvidia Bluefield-3 Datasheet
- What is Cloud-Native Supercomputing
- What is a DPU
- DPU vs SmartNIC and the STH NIC Continuum Framework
- Tesla FSD Chip Wikipedia
- HPC Wire — Nvidia Quantum-2 Networking Platform
- Nvidia — Nvidia Quantum-2
- Nvidia Developer — cuQuantum
- Nvidia DGX Spuerpod
- Nvidia Developer Blog — cuNumeric
- Nvidia Developer — DGL Containers
- Deep Graph Library
- Nvidia — Nvidia ISSAC ROS
- SIMNET: AN AI-ACCELERATED MULTI-PHYSICS SIMULATION FRAMEWORK
- Nvidia — Nvidia Modulus
- Nvidia — Nvidia Morpheus
- Nvidia Drive Hyperion