近日,華為在聯接大會2018釋出了其全棧全場景AI解決方案,涵蓋了從終端到雲端,從AI晶片到深度學習訓練部署框架的多層解決方案,其在AI領域投入的決心可謂巨大。然而,如果仔細分析其具體落地,我們會發現華為的戰略特別實用主義,並沒有去刻意追求技術上的精緻,而是快速做了一個能滿足需求的框架,以求先佔領市場再做迭代。本文將著重對華為的AI晶片戰略做一分析。
多戰場全覆蓋:華為的雄心壯志
華為在本次大會上公佈了其AI戰略,涉及的產品無論是深度還是廣度都是非常驚人的。首先,從深度來說,其AI相關產品生態包含了從應用介面ModelArt(用於客戶的應用直接接入AI功能),中層深度學習軟體框架MindSpore,軟硬體介面層CANN,直到專用硬體Ascend系列,最終可以為終端和雲端的應用賦能。
華為的AI戰線之深可謂是全球一流,僅有Google、百度等技術導向明顯的網際網路公司可以與之匹敵(Google擁有最流行的深度學習框架TensorFlow和晶片TPU,百度則擁有深度學習框架PaddlePaddle和晶片XPU),而諸如微軟、亞馬遜、騰訊等其他雲服務領域廠商的戰線深度,尤其是在硬體領域的投入決心,都遠遠不及華為。
華為的戰線如此之深,究其原因無外乎是“有縱深才能有壁壘”。對於華為這樣的巨頭公司而言,只有把握住了生態鏈上的每一個環節,把開發者和使用者的整個使用迴圈全部保留在自己的生態圈內,才能形成真正的壁壘,否則只要在任何環節存在空白或者弱項,就有被競爭對手或者新興公司單點突破的機會。而這樣的壁壘一旦形成,不僅僅可以完成對於競爭對手的防禦,更可以在整體生態上獲得極高的利潤——由於完整技術棧的不可替代性,從而可以收穫大量利潤。Nvidia就是把自己凡是能接觸到的生態環節都打通並做到極致的公司,從而產生了極高的壁壘:硬體上有GPU,深度學習框架和軟硬體介面層有CuDNN和TensorRT,因此在這幾年深度學習人工智慧高速發展中,Nvidia幾乎佔據了不可替代的地位。然而,Nvidia人工智慧生態中的底層硬體GPU卻存在破綻,由於GPU對於人工智慧演算法的支援並非完美,因此造成了計算效率不高,也引得群雄逐鹿,眾多公司紛紛進入人工智慧晶片的戰場。從這個角度來看華為正在做挑戰Nvidia的事情,藉著Nvdia GPU做人工智慧效率低的弱點,希望構建自主的技術生態來取而代之。
出了縱向深度之外,華為的戰線橫向也鋪得很開。一旦有了一個設計完善的縱向框架,那麼把這個框架在不同算力需求尺度上推廣上將是非常容易的,對於華為這樣以執行力強著稱的公司來說這樣的平推戰術更是得心應手。一旦戰略的深度和廣度上都得到良好的執行,其最終的收益將是乘數效應(即收益正比於深度x廣度),從而帶來驚人的回報。從華為的戰略廣度來看,既包含終端(低功耗,中低算力),也包含邊緣(中等功耗,中等算力)和雲(高功耗,高算力)。在之前,華為的業務領域早已包含了從端(華為/榮耀手機以及智慧家電)到雲(華為雲),因此在之前的業務上再部署推廣人工智慧可謂是水到渠成。
唯快不破:“達芬奇”架構
華為同時注重深度和廣度的人工智慧戰略是以技術為基石的,而其技術棧中最具有挑戰性,同時也是最具有區分度的就是底層晶片。為了滿足華為戰略上的需求,其晶片技術需要滿足以下需求:
-效能好,否則難以撼動Nvidia的位置,這毫無疑問是戰略深度中最重要的一個要素;
-設計可伸縮性好,同一架構可以透過修改設計規模快速部署到不同算力尺度的應用,從而實現戰略廣度快速鋪開的需求;
-通用性好,能相容儘可能多的操作;
-上市速度要快。
以上四點要同時滿足是非常困難的,尤其是一些非常痴迷於技術的公司,往往會選擇去探索新的晶片架構以把前三個需求做到極致,這也就意味著放棄了第四個能快速上市的需求,因為新架構往往意味著較長的研發週期和較大的風險,難以做到快速上市。而華為的選擇則是在傳統架構上做足夠的工程最佳化,並不追求極致效能,但求能滿足使用者需求並快速落地。與之對應的是華為使用在Ascend系列晶片中的達芬奇架構。
從Ascend晶片的架構來看,其實就是傳統的ARM核+AI加速器的模式,而其AI加速器就是達芬奇核心。達芬奇核心從架構上看起來也並沒有使用炫技式的前沿技術,而是簡單直接地把計算用的乘加器(MAC)按照不同的計算組織成不同的方式,並搭配標準的資料快取。當要做人工智慧相關的計算時,可以使用按cube(“三維立方”)模式組織的MAC群,從而支援相關計算。當需要其他常規計算時,則可以使用向量或標量計算MAC。對於不同規模的晶片,可以透過放置不同數量的達芬奇核心來滿足需求,因此同一個達芬奇核心的設計可以靈活地滿足華為戰略橫向上不同應用的需求。
這次的大會上,華為釋出了Ascend 910和Ascend 310,其中Ascend910針對雲端應用,使用7nm工藝在350W的功耗上實現了256 TOPS半精度浮點數算力或512 TOPS 8位整數算力,並且整合了128通道全高畫質影片解碼器;而Ascend 310針對邊緣應用,使用12nm工藝在7W的功耗上實現了8 TOPS半精度浮點數算力或16 TOPS 8位整數算力,並且整合了單通道全高畫質影片解碼器。從中,我們可以看到華為的戰略橫向野心很大,但是第一個落地的市場看來還是機器視覺市場。從公佈的晶片效能上來看,這次Ascend 910以及Ascend 310特意提到了影片解碼器,顯然是與影片應用有關;此外,達芬奇架構中的cube式MAC陣列估計也是為了同時兼顧雲端訓練應用和機器視覺推理應用而做的選擇。從技術上看,cube式MAC陣列非常適合卷積神經網路。卷積神經網路是目前機器視覺應用最流行的模型,而機器視覺應用則可以說是這一波人工智慧應用中落地幅度最大的。在卷積神經網路中,卷積計算的形式(如下圖)可以被達芬奇的cube式MAC陣列高效支援,而決策樹、貝葉斯等其他常見機器學習演算法在cube式MAC陣列上執行卻不見得有什麼優勢,因此可以猜測達芬奇的架構設計首要目的是為了支援卷積神經網路推理,而最佳化卷積神經網路推理就意味著主打機器視覺。換句話說,達芬奇架構是在通用性上有意識地做了折衷以換取較合理的開發時間和成本。另一方面,做雲端訓練的時候由於資料往往是批次到來,因此使用cube式MAC陣列也能一次處理一個批次中的不同並行資料,從而也能較好地支援訓練。然而,如果從從架構上做比較,cube式的MAC陣列的效率相比Nvidia GPU的SIMD架構未必會有本質上的提升,因此從訓練的角度來看達芬奇架構可以說是Nvidia GPU的替代者,但很難說是超越者。
我們不妨將達芬奇架構與目前最熱門的兩種商用人工智慧晶片架構做比較,即Nvidia的GPU和Google的TPU。Nvidia的GPU架構源自經典的GPU多核並行架構,為了最佳化人工智慧計算,加入了對於矩陣運算的最佳化支援(Tensor Core)。但是GPU並非天生為人工智慧而生,因此在卷積神經網路推理等主流應用上,GPU架構的效率並不高,因此華為達芬奇為卷積神經網路最佳化過的架構相比GPU的計算效率要強不少。與Google的TPU相比,達芬奇架構則顯得更加簡單直接。TPU上使用了優美的脈動陣列(systolic array)架構,該架構雖然很久之前就被人們提出,但是遲遲沒有找到合適的應用,因此TPU採用脈動陣列從某種意義上可以說是重新發明了脈動陣列,給了脈動陣列以新生。脈動陣列的優勢是對於記憶體頻寬的需求大大減少,但是問題在於難以做小,一旦做小了效率就會大大下降——在TPU等級的雲端高算力應用脈動陣列是合適的,但是在終端低算力低功耗應用中脈動陣列的效率就不高。因此達芬奇架構相比TPU的脈動陣列來說更靈活,能滿足不同算力需求,也即滿足了華為AI戰略中的橫向部分。
最終比拼的還是生態
從之前的分析中,我們的結論是華為的達芬奇架構是一個出色的架構,與Nvidia的GPU和Google的TPU相比效能並不落下風,但是其可伸縮性卻遠好於GPU和TPU,能快速部署到多個不同算力等級的應用中。為了能充分發揮可伸縮性強的優勢,華為的AI晶片必須能儘快進入多個不同的應用領域,因此最終比拼的還是綜合生態而非一兩個特定應用上的效能對比,正如兩軍交戰最終看的是能否實現戰略意圖而並不比糾結於一兩座城市的得失。那麼,在與Google和Nvidia等生態玩家的比拼中,華為有哪些優勢和挑戰呢?
從公司基因來看,Google是一家技術驅動的網際網路公司,Nvidia是晶片硬體公司,而華為則是裝置提供商。Google一切業務的源頭都是網際網路,因此也希望把一切新擴充套件的業務規劃到網際網路的範疇中。Google屬於第一批看到人工智慧潛力的公司,在自己的業務中早早就用上了人工智慧,並開發了全球最流行的深度學習框架TensorFlow。當人工智慧得到更多認可後, GoogleCloud上開放了深度學習應用介面給使用者使用,並且在發現人工智慧計算需要新一代晶片後著手研發了TPU。對於Google來說,最關鍵的生態環節在於人工智慧入口即TensorFlow,一旦TensorFlow成為人工智慧的絕對主流框架,那麼Google就將成為制訂下一代人工智慧標準化實施方案的主導者,這可以說與當年Google把握了網際網路搜尋入口如出一轍。另一方面TPU其實只是其生態中並不怎麼重要的一環,事實上TPU最早是給Google內部自己使用以節省雲端計算功耗並加速訓練模型用的,Google並沒有強烈的讓所有使用者都用上TPU的決心。Nvidia則是底層晶片硬體公司,最關注的是GPU是否能賣得足夠好,CuDNN和TensroRT可以認為是GPU在人工智慧時代的驅動程式,但卻不是Nvidia的主要盈利點,而Nvidia更不會嘗試去做人工智慧時代入口之類的嘗試,而是會更傾向於把自己定義為“人工智慧計算的賦能者”。相比Google和Nvidia,華為事實上在一個更中間的位置,因為華為是一個解決方案提供商,最終是為了解決客戶的需求,因此其解決方案中既要包含硬體又要包含軟體。華為在底層硬體和上層軟體介面上都有與Nvidia和Google重合競爭的部分,但是其解決方案提供者的地位則是與Nvidia以及Google都沒有任何競爭。舉例來說,如果中國某零售巨頭要做智慧零售解決方案,需要高速邊緣伺服器,這樣的公司將會是華為的目標客戶,卻並非Google或Nvidia的目標客戶,因為這三家公司中只有華為有意願給這樣的客戶提供伺服器軟硬體以及雲端接入的完整解決方案。而此次釋出的Ascend晶片則很明顯是瞄準了安防、智慧零售等新興機器視覺解決方案市場,在這些市場Nvidia和Google的基因決定了它們都不會涉足。
雖然目前華為和Google以及Nvidia在邊緣計算解決方案領域並沒有直接競爭,但是隨著華為在雲端佈局加深,與Nvidia和Google將會有正面競爭。如前所述,Google的TensorFlow是手中的一張王牌,憑著TensorFlow的開放性以及社群建設,目前TensorFlow已經能完美支援多種不同的硬體平臺,另一方面華為的MindSpore配合CANN則更像是面對自家晶片做的定製化解決方案,效能卓越但是開放性卻可能會成為一個挑戰。另一方面,在硬體層面,達芬奇如果想徹底戰勝Nvidia的GPU或許還需要在晶片架構上更進一步,如果無法對GPU有數量級的效能優勢,最終恐怕還是會陷入苦戰。
對AI晶片行業的影響
這次華為大舉進軍AI晶片,是AI晶片領域的一個重要事件。天下之勢,分久必合,合久必分,最初的系統廠商如IBM,SUN等的系統都是包含了自研晶片,直到以Intel為代表的標準化處理器晶片崛起以及計算市場利潤變薄後這些系統公司才逐漸放棄自研晶片而轉而採用Intel的標準化處理器晶片;而AI市場目前看來潛力巨大,不同場景差異化大而且對於晶片效率有很高的需求,這也就為系統廠商重新開始自研晶片提供了足夠的動力。我們認為華為這次自研AI晶片是系統廠商自研晶片趨勢的延續,在華為之前,已經有Google、Facebook、亞馬遜、阿里巴巴、百度等諸多網際網路系統廠商開始了AI晶片研發,而華為作為中國晶片研發能力最強的系統廠商,進入AI晶片領域可謂是理所當然,因為對於系統廠商來說擁有了自研晶片才能擁有真正的核心競爭力。華為這次進軍AI晶片預計將會引發更多系統廠商進入AI晶片領域,估計海康、大華、曠視、商湯、依圖等都有自研晶片(或者與其他晶片公司合作研發自己專屬的定製化晶片)的商業動力,我們在不久的將來預計會看到更多系統廠商釋出自己的晶片,反之缺乏自研晶片能力的系統廠商的生存空間將會受到擠壓,要麼逐漸消失,要麼找到新的商業模式。
另一方面,對於AI晶片初創公司來說,華為的AI晶片目前並沒有對外銷售的打算,因此華為並非直接競爭對手。此外,由於AI晶片細分市場多,差異化大,華為的AI晶片更有可能發揮鯰魚效應,激勵這些AI晶片初創公司去尋找華為無暇顧及的細分市場,例如功耗小於1W的超低功耗市場等等。此外,華為的Ascend系列AI晶片也並非不可戰勝,其架構如前所述並非屬於常人無法想象的黑科技,而更像是一款經過仔細工程最佳化的AI加速器。因此AI晶片公司如果擁有下一代技術,即使與華為在雲端正面競爭也有勝算。最後,我們必須看到不少AI晶片初創公司實際上也是系統廠商,其AI晶片也是主要供自己的系統使用,如Rokid等。對於這類自研AI晶片的初創系統廠商來說,華為施加的競爭壓力會更大,因為華為實際上走了和這些廠商一樣的道路,本來這些初創公司系統中的亮點是自研晶片,但是現在相對於同樣擁有自研晶片的華為來說這個就不再成為亮點了。對於這些廠商,如何找到屬於自己的差異化市場避開華為的鋒芒就成了目前亟待解決的問題。