GPU高功耗軟肋已成最大危機?「AI 硅腦」迎來戰國時代,GPU十年霸業將遭「圍剿」 | 獨家觀點
隨著 AI 技術的進步與更迭,一批新型科技公司將趁勢崛起,國外比較有代表性的包括 Graphcore、Wave Computing 等,而國內也陸續出現了諸如地平線機器人、寒武紀科技、深鑒科技等初創公司。這些主攻人工智慧晶元及相關解決方案的初創公司也都在 AI 計算領域向傳統巨頭,如 NVIDIA 發起挑戰,欲在市場中分得一杯羹。
但由於 GPU 主導了目前的 AI 計算領域,初創 IC 設計公司要向 GPU 發出挑戰,就要從能效比、規模以及可應用的場景等幾個大方向進行,但現實上還是挑戰重重。首先,GPU 架構雖非絕對完美,但是在 NVIDIA 的持續改進之下,可使用的場景也逐漸增加,傳統 CPU 大廠,如英特爾,也不甘人後地推出架構強化的 CPU 並結合 FPGA 的力量,想要反攻 AI 計算產業。
要挑戰這些巨頭,除了架構上要有高度的針對性,能帶給客戶更高的價值,或者從軟體演算法或開發環境著手創造出差異化,如果單純硬碰硬,在缺乏生態的支持下,很難長久存活下去。
GPU 是目前當紅 AI 計算架構,但業界需要更高能效的方案
自從大型機出現在市場上,不僅帶動了計算架構與計算資源應用的發展,就連軟體也為了要妥善利用這些計算能力而有了明顯的進化。而業界在使用這些軟體時,又會激發出對硬體在設計上的新要求。而自從機器學習成為伺服器主要應用之一後,相關的計算硬體架構也發生了很大的變化,比如說過去雲端伺服器架構清一色都是 CPU 架構,尤其是英特爾的 X86 CPU,憑藉著生態以及成本的優勢,贏得超過九成的伺服器市場。
然而,面對機器學習,CPU 架構本身在大量並行處理能力上的缺點就顯露出來了,除了核心規模過大,核心數量過少,帶寬也限制了整體計算效能的發揮。且大核心雖然可以快速處理完單一線程的複雜工作,但面對少量多樣,且計算內容相對單一的機器學習計算模式,CPU 本身的流水線設計就無法快速處理這類型的大批量工作,結果就是功耗大增,且計算效率低下。
圖丨 CPU 和 GPU 核心特性決定了個別應用的計算效率。
而 GPU 之所以成為當代 AI 主要計算方式,就在於它擁有了數以千計的微小核心,核心的規模雖明顯小於 CPU,只能做相對簡單的計算,亦無法直接啟動操作系統。但簡單正是其最大的武器,這些龐大的核心群可以在一瞬間同步處理完數千到數萬個簡單的計算工作線程,而其具備直連 GPU 晶元的龐大本地端內存,且帶寬也要遠大於 CPU 體系。
並且,像 NVIDIA 這種公司為其 GPU 搭配了 CUDA 環境更是大大降低了相關 AI 計算程序的開發複雜度,也因此 GPU 在 AI 領域的應用一日千里,到目前主要雲端 AI 計算架構都是以 GPU 為主。
但 GPU 也不是沒有缺點,尤其是功耗問題,1 塊 GPU 計算卡動輒數百瓦的功耗,如果規模一大,那麼對整個計算中心的功耗控制就會顯得特別麻煩。舉例來說,卡內基梅隆大學(Carnegie Mellon University)雖是一所領先的人工智慧研究院校,但甚至他們都必須要求研究人員縮短晶元的使用時間,因為這會給學校的電力系統帶來沉重壓力。CMU 教授 Franz Franchetti 說,該大學正在尋找替代能源來緩解這個問題。
尤其在 Google 推出 TPU 架構後,其優秀的能耗比更把 GPU 的能耗問題推至台前。
而在個別應用領域中,比如說自動駕駛,NVIDIA 的 Drive PX 以及 Xavier 性能雖強,但整體功耗仍會對汽車的電力系統造成一定壓力,且除了電動車,一般狀態下的汽油車是只有引擎發動時才能發電帶動功耗較大的設備功能,比如說冷氣,如果自動駕駛的控制核心就必須消耗上百瓦的功耗,雖然理論上可以在怠速時關閉大部分針對自動駕駛的計算功能來節省功耗,但對於燃油汽車的傳統電池仍會造成相當大的壓力。
然而,就算是電動車,如果非馬達部件需要消耗這麼大的電力,那對於行駛里程也將有一定的減損。且如果開啟自動駕駛,這些控制核心為了對外圍環境進行計算、掌握變化,並隨時針對駕駛情境進行反應,理論上都是要不間斷、滿負荷工作,根本也沒有太多機會像手機或平板平台會有機會進入可以降低功耗的休息模式。
彈性和能效難兩全?
GPU 雖具備一定程度的程序化配置能力,可適應大部分的計算環境,但目前多數的 AI 計算卻顯得相當針對性,尤其是在幾大主要應用中,比如說視覺識別使用的 CNN (Convolutional Neural Network) 以及自然語言處理方面常見的 RNN (Recurrent Neural Network),通常在計算模式有固定使用的幾種方式,換言之,如果犧牲了一部份彈性,把這些常用模式以 ASIC 的形式來進行加速,但可換來能效的大大提升,其實多數客戶的接受度不低。
另外,終端具備 AI 計算能力已經逐漸成為趨勢,比如說手機上的 AI 核心,或者是智能音箱中未來也可能會配置 AI 計算單元,這部分 GPU 架構可能就幫不上忙,這主要是功耗問題,尤其是目前在行動平台上 GPU 的功耗幾乎與 CPU 不相上下,有的甚至有過之而無不及,且 GPU 通常還要負責使用介面的繪製,分心去進行 AI 計算的話有可能造成系統的延遲,所以這部分的趨勢將是走專屬 ASIC 的內嵌式計算單元。
面對 FPGA 與 ASIC 的挑戰
前面也提到,GPU 過去是為了繪圖而生,但因為其設計來繪圖的向量計算單元剛好可挪做它用,且因為具備龐大的並行處理能力,因此成就了為計算而生的 GPGPU,並帶動了後來的 AI 產業發展。
而 GPU 本身用來運行 AI 的計算單元大概占晶元面積的 4 成左右,為了維持彈性以及既有的繪圖能力,多數的晶體管並不會用來處理 AI 計算,而 ASIC 除了必要的對外連接以及對內的中控部分,其餘的晶體管都可完全被使用在計算上,所以在整體能效上的落差也是這麼來的。
但 GPU 目前生態布局主要在雲端,終端只有少數幾樣應用正在進行,比如說 NVIDIA 針對自動駕駛領域推出的 Drive PX 和 Xavier 平台。總體來看,雖然性能相當可觀,但功耗仍偏高,且必須使用主動散熱方式,否則難以適應汽車嚴苛的使用環境。
圖丨NVIDIA Drive PX & Xavier
相較之下,包含 Mobileye、Renesas、NXP 等對手幾乎都是採用 ASIC 方式針對圖像或對象識別採用專屬的加速架構,Mobileye 在 ADAS 市場佔了將近 7 成市佔,是最早投入自動駕駛的方案商之一,其最新的自動駕駛方案 EyeQ4 可以在 3W 的功耗限制下提供 2.5TOPS 的性能表現,且是基於 28nm 工藝,相較之下,NVIDIA 最新的 Xavier 雖在 16nm 工藝下提供達 20TFOPS 的性能表現,但功耗達 80W。而 Mobileye 下一代自動駕駛方案性能將提升到 17TOPS,但功耗僅增加至 5W,這是非 ASIC 架構的 NVIDIA 所難以達到的。
雖然 ASIC 從設計、生產,到開發環境的經營,都要花費很大的成本,使得單一晶元的成本可能要更高於 GPU 不少,但如果考慮到高能效帶來的功耗節省以及效率提升所能帶來的總體維持/營運成本的降低,其實長期來看這樣的投資似乎還是划算。
而 FPGA 也開始急起直追,包括英特爾以及 Xilinx 都推出針對 AI 計算環境的方案。以英特爾的 Stratix 10 為例,其計算性能可達 10TFLOPS,且功耗僅 120W,以 NVIDIA 的 Tesla V100 為例,雖然具有略高於 Stratix10 的 14TFLOPS 性能表現,但功耗高達 300W。而英特爾推即將出的下一代 AI 計算卡 Knights Landing 及 Lake Crest 計算架構,在性能表現上預計將能倍數成長,且功耗維持一致。
更多要求高效率的計算架構逐漸捨棄 GPU
而目前越來越熱門的終端 AI 計算趨勢,GPU 已經顯得越來越弱勢,主流的核心方案,比如說蘋果 A11,華為的麒麟 970,甚至未來聯發科的 AI 手機晶元布局,都會走向專屬計算單元,在晶元中內建獨立的 AI 計算單元,這類計算單元會取代大部分過去 AI 計算工作需要 GPU 所強調的 GPGPU 計算功能以及 OpenCL 支持能力。
但像英特爾也結合 FPGA 的力量,配合 CPU 本身體質的改善以及指令集的增加,試圖把 NVIDIA 請出雲端,其強調的重點,也是在能效比。而像中國寒武紀、地平線、深鑒,其推出的方案也都走向高能效比,GPU 架構可以說是四面受敵。
以下我們針對各種能夠威脅到 GPU 在未來 AI 霸業的幾大具有潛力的架構進行簡單分析。
1. Graphcore 的 IPU
Graphcore 認為,AI 計算要被分為訓練和推理本身就不是正確的分類方向,正常的 AI 計算架構本來就應該要能同時處理這二者的工作,且針對未來的持續性學習(Continuous Learning)機制,未來理想的 AI 必須要在模型部署之後還能持續的學習進化。
IPU 是一個標準的神經網路處理晶元,而且規模很大,通常具備數千到數百萬個頂點,除了標準神經網路之外,也適用於貝葉斯網路(也稱為信度網路、因果網路,是指基於概率分析、圖論的一種不確定性知識的表達和推理的模型)和馬爾科夫網路(馬爾可夫網路類似貝葉斯網路用於表示依賴關係。但是,一方面它可以表示貝葉斯網路無法表示的一些依賴關係,如循環依賴;另一方面,它不能表示貝葉斯網路能夠表示的某些關係,如推導關係),而因為架構具備彈性,未來的新模型與演算法理論上也都能夠完美支持。
由於其龐大的頂點數量,遠超出現有最大 GPU 的規模數百倍,這也意味著其在並行工作的處理潛力非常驚人。另外,這些頂點都是稀疏的,絕大多數頂點都只連結到其他一小部分頂點。另外,IPU 也是針對低精度的數據模型優化,也就是具備數據的統計近似值概念,這和過去超算的概念完全不同。另外,IPU 也支持了模型參數的復用。簡單來說,卷積是空間復用,回歸是時間復用。這些復用特性可以獲取數據中的空間或時間不變性,對於訓練與推理的性能會有明顯幫助。
IPU 也具備了大量的片上緩存,以及通過 HBM 連接的片上內存,傳統伺服器架構要連結到 CPU 或 GPU,通常都是通過多層的存取匯流排設計,一層一層傳遞下來,傳遞過程就會產生龐大的延遲,且不同層的內存也需要獨立的控制單元,以及能源供應,整體而言能效就會較差。
圖丨 IPU 的架構圖
但如果大部分的工作都能在片上,甚至晶元內部就處理完,那就可以大幅降低延遲。IPU 的設計理論上最終是要把所有的模型都放到片上內存,並且在晶元內部集成大量緩存,達成 memory-centric 設計,並且針對應用分別調整計算單元的規模,最終達到能耗的最優化。
另外,IPU 也針對很多數據的傳輸與計算進行優化,比如說其計算和通信採用串列處理,理論上可以讓不同工作都可以充分利用最大能量,無論實際工作量如何均衡,該計算工作都能在最短時間內完成。
IPU 預計在標準 300W 的功耗之下,將提供遠超過 NVIDIA 最新的 V100 的性能表現。
Graphcore 在 IPU 設計上用了很多相當極端的想法,而雖然理論上以其規模應該更適合放到雲端,但 Graphcore 認為 IPU 架構擁有很好的伸縮性,邊緣或是終端計算同樣能良好勝任。Graphcore 的 IPU 預計在 2018 年初量產上市。
2. Wave Computing 提出能效超越 FPGA 的 GPU 架構
Wave Computing 是一家成立於 2010 年的公司。原名 Wave Semiconductor,於 2016 年改為 Wave Computing。Wave 的策略方向從最初的提供晶元方案的半導體公司,轉變成一家提供計算技術解決方案的公司。該公司不僅希望他們的系統可以將現在基於 GPU 的神經網路的訓練性能提高 10 倍,而且要在能效方面超過 FPGA。
Wave 開發的晶元命名為 DPU(Dataflow Processor)。其計算方案內有 4 個 DPU 硬體加速板,每個 DPU 板上集成 4 個 DPU 晶元。Wave 號稱其硬體加速方案可以直接用於現有的數據中心的伺服器架構中。
DPU 使用非同步邏輯實現其基本計算單元 PE。沒有集成時鐘信號,PE 只要一收到操作數據,就觸發計算,並得到結果。DPU 內集成了 16,000 個 PE。每個 PE 都可以當作是獨立的處理器,擁有自己的指令存儲器、數據存儲器、寄存器和處理單元,pipeline 的指令緩存可以每 0.1ns 發出一條新指令,相當於 PE 可以達到 10GHz 的峰值頻率。每個 PE 擁有 1KB 的單口數據存儲器,訪問速度可以達到 5GHz。而值得注意的是,DPU 內有 16000 個 PE,也就是說,每個 DPU 內有 8MB 的 IRAM(指令內存) 和 16MB 的 DRAM(動態內存),是非常恐怖的規模。
DPU 因為沒有時鐘樹分布,晶元面積可大幅降低,且計算單元只有在需要的時候才工作,功耗亦可大幅減少。舉例來說,每個 PE 核的大小甚至要比 ARM 的 Cortex-M 還要小,DPU 還內建了 1 個來自台灣晶心科技(Andes)的 32 位 CPU 內核。
而根據公開測試數據,WAVE 的 DPU 可將 AlexNet 的訓練時間降到 12 分鐘,相較之下 NVIDIA 的 GPU(Pascal)需要 120 分鐘。另外針對 Inception 網路的訓練數據顯示,Wave 可以實現達 25 倍的加速。
3. 英特爾用 CPU+FPGA 欲重新拿回 AI 計算話語權
雖說英特爾放到 50 年前才能叫做初創公司,不過在 AI 計算領域,英特爾的確算是挑戰者。
英特爾改進計算競爭力的方式其實相當老套,但相當有效。舉例來說,其針對 CPU 所提出的指令集改進,包含了 AVX 多媒體指令集的寬度增加,以此容納更大的數據流,其次,就是增加了 QFMA 以及 QVNNI 指令集,可加速深度學習的效率,而這是針對其 Xeon Phi 最新世代的 Knights Landing 架構產品。Knights Landing 集成了 72 個 Atom 核心,每個核心可以同時執行 4 個線程,且透過 AVX、QFMA 以及 QVNNI 指令集三者並用,可達到與 GPU 類似規模的並行計算工作,效率是上一代產品的 4 到 8 倍。
英特爾在 2015 年收購了實力最強的 FPGA 設計公司之一 Altera,未來憑藉 FPGA 布局,可針對一般通用計算以及深度學習計算環境提供不同方案,舉例來說,其 Crest 架構產品就提供了與 Graphcore 的 IPU 類似的架構方式,不僅集成龐大的計算元,並增加了大量的晶元內緩存以及片上內存。
另外,英特爾也通過收購 Nervana 為 Intel 帶來更多元的生態支持能力,並支持多種不同 AI 計算架構的基礎,通過 Nervana,客戶可以同時使用 GPGPU、Xeon Phi 以及 FPGA,但只要通過 Nervana,就可以無縫銜接這些計算能力,達成更高效能,或者更多元化的應用方式。
總的來看,英特爾擁有豐富的架構資源,因此是想針對不同計算應用打造不同的平台,而通過 Nervana,英特爾就可統合這些不同架構之間的開發環境,構築強大的生態。
4. 寒武紀、深鑒
寒武紀是近來中國最受矚目的 AI 計算架構之一,最近更拿到政府高達 1 億美元的投資,其針對深度學習的神經網路晶元架構不僅在能效表現上相當出色,最大的優勢在於其支持了幾乎所有平台以及所有 AI 計算標準,使其在應用的廣度上可以和世界一流的平台相提並論。
寒武紀本身是基於神經網路架構的 ASIC 晶元,本身沒有可重定義的能力,但把計算性能集中在深度學習上。
而寒武紀更提供了業界獨有的 IP 授權與晶元銷售方式並重的經營模式,客戶可以根據自己的需要和規模,選擇線程方案,或者是使用 IP 授權,將寒武紀做到自己晶元中,就如華為的麒麟 970,而華為也表示,透過寒武紀的 NPU,其 AI 計算效能要比 GPU 計算快 6 倍。
深鑒科技則是中國另一家炙手可熱的 AI 計算方案廠商,其最大的特點反而不是在晶元設計,而是在演算法上,通過獨家的深度壓縮演算法,可以大幅減少訓練之後的模型大小,讓對於存儲空間預算有限的嵌入式系統可以同樣享受 AI 應用服務。
而壓縮帶來的不只是模型存儲空間減少這個優點而已,如果可以把模型直接壓縮數十倍,權重數量減少 3 倍,那就意味著你可以減輕帶寬負載到數十分之一,並同時把性能提高到 3 倍。以演算法提升方案優勢,目前深鑒可以說是業界做的比較優秀的。
GPU 面臨變革,或許將徹底擺脫繪圖的部分?
前面也提到,GPU 中真正拿來計算的晶體管不過佔全部晶體管的 4 成左右,雖然依靠規模取勝,目前計算效率仍數一數二,但面對未來各家採用 ASIC 或 FPGA 的新架構的挑戰,其實也開始有點捉襟見肘。
NVIDIA 在基於 Volta 架構的 Tesla V100 中就開始針對 AI 計算環境增加了 TensorCore 這個附加的向量加速單元,用來加速特定神經網路模型的計算,藉此甚至整體計算能力可和 TPU 二代相提並論。然而就二者功耗比較,Tesla V100 功耗為 300W,TPU 二代雖稍慢,但功耗僅 130W,其能量效率的落差之大,或許 NVIDIA 該考慮減少些東西,而不是一直把更多的計算功能迭加上去。
至於該減少什麼東西,或許該先被開刀的就是傳統繪圖部分的處理能力,畢竟 NVIDIA 的 GPU 設計已經高度模塊化,繪圖能力保留給消費性 GPU 市場即可。
目前的情況是,針對 AI 計算的新架構概念不斷湧現,但 CUDA 生態在短時間內仍難以動搖。除了前面提到的幾家計算方案廠商,Mythic 及 Cerebras 也是近來相當出名的 AI 計算架構初創公司,這些公司也同樣獲得了投資人的青睞。
但值得注意的是,這些新公司依靠在架構設計上整並多個計算步驟來強化計算效能,或許可贏過 GPU 現階段無法省略太多計算步驟的方式,但前者多半是針對特定應用,後者則是強調通用性。然而初創公司也有風險,如果新產品面向太多市場應用,可能就會犧牲了性能或是原先強調的彈性,這麼一來,恐怕就無法和既有的產業龍頭對抗,最終可能必須面臨被收購,甚或者是關門大吉的命運。
另外,新架構的供應者或許在能耗及性能表現有一定優勢,但 GPU 計算所依恃的 CUDA 開發環境已經是發展超過 10 年的堅實生態,圍繞著這個生態而生的相關應用已經多不勝數,要如何突圍而出,從而建立自己的生態並非易事,但幸好目前已經有 TensorFlow、Caffe、MXNet 等產業標準介面出現,只要遵循這些標準來開發產品,並且提供夠好的能耗表現,要能從 NVIDIA 的手中搶得市佔,並非不可能。
NVIDIA 在 AI 生態獨霸了將近 10 年,下個 10 年是否還能獨領風騷?老將新秀群雄並起,即便其中能有懸念,但可確定的是,AI 計算架構的戰國時代已然到來。
推薦閱讀:
※現代文明為什麼誕生在歐洲?
※我國有直立雙足行走的機器人了嗎?
※除了雙十一,你還了解黑色星期五嗎?多家互聯網公司如洋碼頭和亞馬遜海外直淘?
※計算機能否真正理解人類語言?目前還無法理解語言的原因是什麼?
TAG:科技 |