Nvidia 2021 GTC 在說什麼呢?

Eric
Insights the Chips World | 洞悉晶片的世界
21 min readJan 1, 2022

--

以工程師的角度去看:硬體、軟體以及應用趨勢

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 發表會後,發現這間公司跨足的點實在太多了,就想了解一間硬體公司究竟如何能接觸到這麼多不統產業面向,提供完整的解決方案給客戶。

一張概括 Nvidia 所提到的所有東西,但還是很難把東西串再一起。硬體、Library、架構平台以及應用錯綜複雜在一起,Nvidia 真的是一個層面很廣的公司 (not only a hardware company)

對於工程的我們來說,看完 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)。

Nvidia Quantum-2 Switch 參考圖

利用這樣的 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 的功能。

Nvidia Connectx-7 參考圖
  • 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。

Nvidia Bluefield-3 DPU 參考圖

再來,Bluefield-3 擁有自己的 CPU (16 cores Arm) 因此在上面可以跑 OS,執行跟一般 CPU 一樣的事情了,更強調自己的獨立運作,成為 Server 間溝通的 Infrastructure Endpoint。主要的亮點為 :

  1. Programmable Datapath Accelerator — 可以透過 Nvidia DOCA Platform Program Bluefield-3 來加速 Network processing (e.g. crypto acceleration)。
  2. 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 已經在開發了,因此可以期待兩邊的性能比較。

Orin Chip

硬體平台 —The Platform

Nvidia Quantum-2 — Cloud-Native Supercomputing

Quantum-2 擁有 Quantum-2 Switch、Bluefield-3 DPU 搭載在它們的 DGX Server System。

  1. Quantum-2 Switch 提供大量的網路頻寬,提升 Data Throughput
  2. Bluefield-3 DPU 幫助 Host CPU offload 30% 的計算量,提供 Data Protection、High-Performance Computation
  3. 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-NativeContainer 讓軟體在伺服器的部署更容易,可處理的資料因為額外的頻寬及計算量增加許多,同時又能確保這樣大量的資料能安全,讓 AI Application 的 Scalability 在 Quantum-2 上安全地提升 6.5 倍。

Nvidia Quantum-2 Server Platform Improvement Specs: 不論在頻寬、計算量都成長了兩倍以上。

小結

新的硬體可以提供更大的頻寬,支援現今需要處理大量資料的伺服器。同時也不落人後有新一代的 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 倍。

擷取自 Nvidia Developer Blog — cuNumeric,cuNUMERIC 可以很輕易的讓程式碼跑在上千個 GPUs 上面,讓 throughput 有顯著的成長。
  • Deep Graph Library (DGL) Containers
DGL 提供 API 給 developers 使用利用 PyTorch, MXNet, or TensorFlow 建立 GNN

加速 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 主要使用的技術有

  1. Reduced Precision — 使用比較 light-weight 的資料型態如: FP16 來使 model 變得更輕量,同時維持準確率
  2. Layer and Tensor Fusion—將類似神經節點 (nodes) 結合在一起,減少 GPU 記憶體的使用率 (memory footprint)。
  3. 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

只要一行程式碼就可以利用 TensorRT Compiler 優化所有 AI Model 加快 Inference 速度。

軟體套件 (SDK)

Nvidia 將硬體跟自家軟體垂直整合,提供客戶一種 end-to-end 的 Solution,也就是他們的軟體套件,開發者可以在 Nvidia 的硬體上,使用這些軟體套件來達到更好的結果。

  1. Nvidia DOCA—基礎就是使用 Bluefield-3 DPU,處理資料的進出。擁有 Programmability 以及獨立於 Host CPU 運作的能力 (isolation),開發者可以創造 Software-Defined、原生於各個雲端 (Cloud-Native) 的 microservices,輕鬆強化不同雲端網路的效能跟安全性,達到所謂的 — Security-as-a-Service。
  2. Nvidia Triton—分散式 Inference 引擎 (minutes to second),整合更多 GPUs 來提升 Inference 速度。開發者可以利用 Nvidia Triton (Github Here) 部署數個 Inference server 在 Single/Multi-GPU System 上,最大化使用 GPU 來改善任何一種 AI 架構的性能。
  3. Nvidia Clara Holoscan — 整合 Nvidia 硬體及軟體,讓開發者開發醫療影像相關的應用。這個 SDK 提供 API 給開發者使用 GPU 加速醫學影像處理所需要的演算法。
  4. Nvidia ISAAC ROS — 與 ROS 系統 (Robot OS) 整合,提供硬體加速的軟體套件,讓機器人開發者可以利用 Nvidia 的 GPU 加速,進行實時物理模擬及運行人工智慧模型。
  5. Nvidia RIVA Speech AI — 提供 Pre-trained AI model 給語音相關的應用,如語音文字間的轉換 (text-to-speech) 或者語音辨識。Riva 為一種虛擬環境容器化服務 (containerized service),開發者可以使用 docker 在任何伺服器部署,加入他們需要語音辨識的應用當中,讓產品能說起話來、理解文字。

應用框架 (Application Framework)

這邊主要介紹的都是 Nvidia 自己開發的 AI 框架,幫助開發者解決問題。

  1. Nvidia Modulus — 從 Simnet 發展過來的,利用 multi-GPUs 系統來模擬物理世界的 AI 模型,提供更好的 GPU Scalability。可以使用在 Omniverse 上面。
  2. Nvidia Morpheus — 監測整個網絡裡包含敏感資訊的 traffic (e.g. credit card credential, account credential … and so on),利用 Nvidia Triton 強大的 Inference 能力,可以找出網路中未加密卻被傳遞的敏感資訊,追蹤流向來避免金融詐騙,提供網路安全。
  3. Nvidia Nemo Megatron — 利用 Nemo 架構大規模訓練 Megratron GPT-3 models (語言 AI 模型)。這種 AI 模型通常擁有很大量的參數 (billions of parameters),而 Nemo Megatron 讓我們得以有效使用很多 GPUs/Nodes 來訓練。
  4. 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 官網:可看到 DRIVE AGX Xavier 這塊主板 (靠近左前車輪部分的圖示,核心為 Orin SoC) 與各式的 Sensors 連結在一起。

小結

Nvidia 自己做 GPU,又做了 CUDA 這套極為關鍵語言,讓這些函式庫的開發能更對症下藥,直接針對自己的硬體去找出解決辦法。

  1. Nvidia 開發軟體函式庫,可讓大多數的軟體 Nvidia 硬體上進行優化
  2. 再更聚焦些,開發 SDK,發展出自家軟體套件與自家硬體整合,可以更精準的針對不同應用優化。
  3. 而應用框架則是針對不同的應用開發出來的 AI 模型,可以利用以上開發的軟硬體工具來優化性能。
  4. 最後提供開發平台,直接提供 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 的影像技術,創造醫療用機械手臂、生產線自動化機器人。
Reference

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 有提到的如:

  1. Quantum Computing —利用 GPU 模擬 Quantum Computer
  2. Medial Industry — 使用 AI 架構從事研究如藥物發現、疾病模擬
  3. 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

  1. Nvidia Quantum 2 Switch Learn More
  2. Nvidia Bluefield-3 Datasheet
  3. What is Cloud-Native Supercomputing
  4. What is a DPU
  5. DPU vs SmartNIC and the STH NIC Continuum Framework
  6. Tesla FSD Chip Wikipedia
  7. HPC Wire — Nvidia Quantum-2 Networking Platform
  8. Nvidia — Nvidia Quantum-2
  9. Nvidia Developer — cuQuantum
  10. Nvidia DGX Spuerpod
  11. Nvidia Developer Blog — cuNumeric
  12. Nvidia Developer — DGL Containers
  13. Deep Graph Library
  14. Nvidia — Nvidia ISSAC ROS
  15. SIMNET: AN AI-ACCELERATED MULTI-PHYSICS SIMULATION FRAMEWORK
  16. Nvidia — Nvidia Modulus
  17. Nvidia — Nvidia Morpheus
  18. Nvidia Drive Hyperion

--

--

Eric
Insights the Chips World | 洞悉晶片的世界

Senior Software Engineer at Tesla | 2021 UC Berkeley EECS | 2019 NTUEE.