當前位置:
首頁 > 最新 > AI晶元的歷史和現狀

AI晶元的歷史和現狀

AI的歷史發展和概括

人的思維活動是否能用計算機來替代,從圖靈的論文《計算機器與智能》和圖靈測試,到最初級的神經元模擬單元——感知機,到現在多達上百層的深度神經網路,對人工智慧的探索就沒有停止過。在八十年代,多層神經網路和反向傳播演算法的出現給人工智慧行業點燃了新的火花。反向傳播的主要創新在於能將信息輸出和目標輸出之間的誤差通過多層網路往前一級迭代反饋,主要目的是通過逐層的反饋調節系統參數來將最終的輸出收斂到某一個目標範圍內。

1989年貝爾實驗室成功利用反向傳播演算法應用在多層神經網路開發了一個手寫郵編識別器。1998年Yann LeCun和Yoshua Bengio發表了手寫識別神經網路和反向傳播優化相關的論文《Gradient-based learning applied to document recognition》,開創了卷積神經網路的時代。

從最初的概念到最近 AI 的爆髮式增長,人工智慧產業經過了多次的起伏和波折。到1997年 IBM 的深藍戰勝國際象棋大師和2011年 IBM 的沃森智能系統在 Jeopardy 節目中勝出,人工智慧才又一次為人所關注。2016年 Alpha Go 擊敗韓國圍棋九段職業選手,則標誌著人工智慧的又一波高潮。從基礎演算法,底層硬體,工具框架到實際應用場景,目前人工智慧已經全面開花。

基礎演算法:從目標設定及性質上可以分為有監督演算法,無監督演算法和深度學習演算法。從應用領域來說,主要有機器視覺,語音識別,自然語言處理等幾個方面。前幾十年的 AI 探索主要集中在有監督演算法的發展。在機器視覺和語音識別方面,有監督演算法已經被驗證為可行有效。而最近的 AlphaGo 則是運用了無監督演算法和深度學習演算法的精髓。演算法是源頭,晶元和硬體加速器的發展都會根據演算法的走向而變動(AlphaGo 從某種意義上來說加快了 Google TPU 的研發進程)。最近10年的 AI 演算法最大的突破主要在深度神經網路,其表現是模型層數高/更複雜/參數多,數據維度多/樣本量大。

底層硬體:傳統的 CPU 主要有 control, cache/ram, computation 等部分組成,為了保持通用性CPU的計算模塊只佔其中很小一塊。很快人們就發現單純的用CPU計算已經遠遠不能支持人工智慧系統需要的算力需求。在2010年,當時Andrew Ng和Jeff Dean開發的Google Brain在語音識別深度神經網路中(參數量是1.5億左右),光是訓練模型就需要76天。其使用的平台是一個包含16000個CPU單元的並行計算平台。相比之下,GPU沒有cache單元,也沒有複雜的邏輯控制電路和優化電路,計算單元佔到的比例非常大,在單純的浮點數計算能力方面比CPU擁有更多的優勢。目前GPU以其有針對性的高速計算能力被廣泛應用在深度神經網路系統中,Nvidia也憑藉著GPU市場的火爆在AI領域嶄露頭角。除了GPU,市場還有其他各種各樣的XPU晶元,從移動端到雲端,從FPGA到ASIC。後面文中會著重介紹。

工具框架:目前主要流行的有Tensorflow, Caffe, Torch, MXNet等。框架的出現對於深度學習易用性提升了一個量級,使用者可以把更多精力放到模型的參數調節及應用實現上,而不是模型實施的細節。對於初學者來說還有更容易使用的Keras。Keras是以theano/tensorflow為底層的成熟封裝,內置了許多成熟的網路結構如VGG16卷積神經網路。

AI晶元分類

從三個維度看懂AI晶元種類:

技術架構

從技術架構來看,人工智慧晶元分為通用性晶元(GPU)、半定製化晶元(FPGA)、全定製化晶元(ASIC)、類腦晶元四大類。

GPU是單指令、多數據處理,採用數量眾多的計算單元和超長的流水線,主要處理圖像領域的運算加速。但GPU無法單獨工作,必須由CPU進行控制調用才能工作。CPU可單獨作用,處理複雜的邏輯運算和不同的數據類型,但當需要大量的處理類型統一的數據時,則可調用GPU進行並行計算。

FPGA適用於多指令,單數據流的分析,與GPU相反,因此常用於預測階段,如雲端。FPGA是用硬體實現軟體演算法,因此在實現複雜演算法方面有一定的難度,缺點是價格比較高。對比FPGA和GPU可以發現,一是缺少內存和控制所帶來的存儲和讀取部分,速度更快。二是因為缺少讀取的作用,所以功耗低,劣勢是運算量並不是很大。結合CPU和GPU各自的優勢,有一種解決方案就是異構。

ASIC是為實現特定要求而定製的專用AI晶元。除了不能擴展以外,在功耗、可靠性、體積方面都有優勢,尤其在高性能、低功耗的移動端。

類腦晶元架構是一款模擬人腦的新型晶元編程架構,這一系統可以模擬人腦功能進行感知、行為和思考,簡單來講,就是複製人類大腦。

應用場景

從應用場景來看,人工智慧晶元應用於雲端和設備端。

在深度學習的訓練階段需要極大的數據量和大運算量,單一處理器無法獨立完成,因此訓練環節只能在雲端實現。雲AI晶元的特點是性能強大、能夠同時支持大量運算、並且能夠靈活地支持圖片、語音、視頻等不同AI應用。我們現在使用的各種互聯網AI能力(比如在線翻譯、人證比對),背後都有雲AI晶元在發揮作用或提供算力。英特爾、IBM等老牌雲伺服器晶元廠商同樣在積極布局這一市場,各自通過併購、投資、研發等方式不斷切入雲AI晶元市場。

在設備端,智能終端的數量龐大,而且需求差異較大,推理環節無法在雲端完成,要求設備有獨立的推理計算能力。這便需要有嵌入到設備內部的端AI晶元,讓設備不需要聯網就能具備AI能力。它們的特點是體積小、耗電少,而且性能不需要特彆強大,通常只需要支持一兩種AI能力。現在手機里的晶元、攝像頭裡的晶元、甚至你家電飯煲里的晶元都開始陸續AI化。雲端格局應該變化不大,但是在終端方面變數未定,邊緣計算值得關注。雲端市場已被巨頭瓜分殆盡,創業公司生存空間幾乎消失。倒是終端市場群雄割據,機會尚存。

功能

從功能上來說,目前 AI 晶元主要有兩個領域,一個是 AI 系統的 training 訓練模型(主要是對深度神經網路的前期訓練),另外一個是模型訓練部署後,模型對新數據的 inference 推斷。理論上來說 training 和 inference 有類似的特徵,但是以目前的情況來說,在運算量差別大,精度差別大,能耗條件不同和演算法也有差別的情況下,training 和 inference 還是分開的狀態。

training領域,需要將海量的參數進行迭代訓練,所以晶元設計導向基本都是超高性能,高靈活性,高精度這幾個方向。面向 training 的晶元一般都是在雲端或者數據中心進行部署,成本大,能耗高。目前在 training 領域, Nvidia 的GPU在市場上獨佔鰲頭,大部分的深度神經網路及項目實施都是採用 Nvidia 的GPU加速方案。同樣深度學習加速市場的爆發也吸引了競爭者的入局。Google在2015年發布了第一代TPU晶元,在2017年5月發布了基於ASIC的TPU晶元2.0版本,二代版本採用了systolic array脈動陣列技術,每秒峰值運算能力達到45TFlops。並且二代版本完善了初代TPU只能做 inference 無法 training 的問題。根據Google的披露,在自然語言處理深度學習網路中,八分之一的TPU Pod(Google自建的基於64個TPU2.0的處理單元)花費六個小時就能完成32塊頂級GPU一整天的訓練任務。除了Google外,AMD也發布了基於Radeon Instinct的加速器方案,Intel則推出了 Xeon Phi+Nervana方案。在training領域,資金投入量大,研發成本高,目前競爭者主要是Nvidia GPU, Google TPU和新進入的AMD Radeon Instinct(基於GPU)和Intel Xeon Phi+Nervana(基於ASIC)等。目前來看,不管是Google的TPU+tensorfow,還是其他巨頭新的解決方案,想要在training端市場撼動Nvidia的地位非常困難。

相比 training 而言inference在計算量(更小),精度要求(更低)和演算法部署(多種evaluation方法)上都有一定的差別,通常只需要用 training 階段訓練好的模型來對新輸入的數據輸出模型結果,或者在輸出結果的基礎上做一些調整。比如攝像頭拍到的新的人像直接輸出人臉識別模型的結果,就是利用 training 好的模型做一次 inference 操作。相對 training,inference比較適合在終端部署。如iphoneX搭載的新的A11處理器內置了雙核神經網路引擎,還有類似的在自動駕駛,監控攝像頭,機器人等終端設備上的 inference 晶元。從CPU到GPU,再到FPGA和最後的ASIC,計算效率依次遞增,但靈活性也是依次遞減的。在inference方面,除了GPU之外,ASIC和FPGA都有比較大的潛力。目前業界在 inference 方面也越來越多地開始使用專用性更強的FPGA和ASIC平台。FPGA全稱「可編程門陣列」,通過在晶元內集成大量基本的門電路,允許用戶後期燒寫配置文件來更改晶元功能實現可更改半定製化。FPGA在延遲和功耗方面都有顯著優勢,在延遲需求較高比如語音識別和圖像識別方面相比GPU而言是一個更好的選擇。ASIC是專用的定製化集成電路,能在開發階段就針對特定的演算法做優化,效率很高。ASIC雖然初期成本高,但是在大規模量產的情況下有規模經濟效應,反而能在總體成本上佔優。因為設計完成後無法更改,故ASIC的通用性比較差,市場風險高。FPGA因為可以半定製化並且內容可更改,在通用性/兼容性方面佔有優勢,但是在成本,性能,能效上比,ASIC更有優勢。

輕輕一掃 歡迎關注~

如果覺得好,請

轉發

轉發

轉發


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 人人都是極客 的精彩文章:

TAG:人人都是極客 |