天天看點

深度學習+大規模計算+大資料,誰才是未來的算力之王

作者:Finovy Cloud

縱觀時代演進的脈絡,從農業革命到工業革命再到知識革命,從遠古結繩計數到古代珠算與機械計算再到現在的電子計算,數學一直是人類文明進步的主要力量。當今時代,算力作為新型生産力,資料作為新的生産要素,參與價值創造和配置設定,資訊技術成為了驅動經濟社會發展的基礎動力。

随着5G、人工智能、雲計算、大資料、IoT等技術的推動,萬物互聯的時代即将到來,算力需求将越來越大,有望替代熱力、電力,成為拉動數字經濟向前發展的新動能、新引擎,并成為影響國家綜合實力和國際話語權的關鍵要素,國與國的核心競争力正在聚焦于以計算速度、計算方法、通信能力、存儲能力為代表的算力,未來誰掌握先進的算力,誰就掌握了發展的主動權。

人工智能與深度學習

人工智能(Artificial Intelligence),是研究、開發用于模拟、延伸和擴充人的智能的理論、方法、技術及應用系統的一門新的技術科學。它起源于20世紀五六十年代,經過半個多世紀的演變,經曆了符号主義、連接配接主義和行為主體三次浪潮的互相交織發展,到如今,作為一項新興的通用技術,正在推動着社會生活與各行各業的巨變。現階段人們普遍認為,深度學習+大規模計算+大資料=人工智能。

什麼是深度學習?在人工智能領域,機器學習是其中的一個技術流派,通過從已知樣本中提煉規律來獲得判斷未知樣本的智能;深度學習則是機器學習的一種,它所學習出來的模型是深度神經網絡。

具體來說,機器學習可以了解為機器從已知的經驗資料(樣本)中,通過某種特定的方法(算法),自己去尋找提煉(訓練/學習)出一些規律(模型);提煉出的規律就可以用來判斷一些未知的事情(預測),自2006年以來,機器學習領域深度學習(Deep Learning)取得了突破性的進展。

深度學習是一種特殊的機器學習,在語音和圖像識别方面取得的效果,遠遠超過先前相關技術。它通過學習将世界表示為嵌套的概念層次結構來實作強大的功能和靈活性,每個概念都是根據更簡單的概念進行定義的,而更抽象的表示則用不那麼抽象的概念計算出來。

深度學習算法分「訓練」和「推理」兩個過程。簡單來講,人工智能需要以大資料為基礎,通過「訓練」得到各種參數(也就是模型),然後把模型傳遞給「推理」部分,得到最終結果。

神經網絡分為前向計算(包括矩陣相乘、卷積、循環層)和後向更新(主要是梯度運算)兩類,「訓練」是兩者兼而有之,「推理」主要是前向計算,都包含大量并行運算。一般來說,「訓練+推理」在雲端進行,終端人工智能硬體隻負責「推理」。

深度學習+大規模計算+大資料,誰才是未來的算力之王

算力:人工智能的核心要素

近年來,随着深度學習的推進,AI領域對算力的要求每年增加10倍左右。為了達到這個目标,我們需要處理大量的資料。是以,人工智能三大要素:算法、算力和大資料,缺一不可,都是人工智能能夠實作大規模應用的必備條件。

1、資料。

人類要擷取一定的技能都必須經過不斷的訓練,才能熟能生巧,AI也是如此。人工智能的根基是訓練,隻有經過大量的訓練,神經網絡才能總結出規律,應用到新的樣本上。隻有擁有大量資料,且能覆寫各種可能的場景,才能得到一個表現良好的智能模型。

2、算力。

有了資料之後,需要進行不斷地重複的訓練。深度學習中有三個概念叫Epoch(“一代訓練”),Batch(“一批資料”),Iteration(“一次訓練”)。僅僅将訓練集從頭到尾訓練一遍是不夠的,需要把訓練集翻來覆去訓練很多輪。訓練和推理都需要強大算力的支撐。

3、算法。神經網絡算法和深度學習是目前最主流的人工智能算法。

算力是人工智能的三大要素之一,需要晶片的支撐,這是人工智能進一步發展并實作産業化的關鍵。

晶片:人工智能競争的制高點

AI晶片提供算力,承載算法,是實作人工智能的實體載體,是以是人工智能領域競争的制高點。

什麼是AI晶片?從廣義上GPU與GPGPU的定義說,所有面向AI應用的晶片都可以稱為AI晶片,但目前人們普遍認為,AI晶片是針對AI算法做了特殊加速設計的晶片。AI深度學習需要很高的并行計算、浮點計算以及矩陣運算能力,基于CPU的傳統計算架構無法充分滿足人工智能高性能并行計算(HPC)的需求,是以需要發展适合AI架構的專屬晶片。

對于人工智能計算架構來說,CPU配合加速晶片的模式是典型的AI部署方案:CPU提供算力,加速晶片提升算力并助推算法的産生。常見的AI加速晶片按照技術路線可以分為GPU、FPGA、ASIC三類。其中,應用于圖形、圖像處理領域的GPU 可以并行處理大量資料,非常适合深度學習的高并行、高本地化資料場景,是目前主流的人工智能計算架構。

1、GPU用于大量重複計算,由數以千計的更小、更高效的核心組成大規模并行計算架構,配備GPU的伺服器可取代數百台通用CPU伺服器來處理高性能計算和AI業務。

2、FPGA是一種半定制晶片,靈活性強內建度高,但運算量小,量産成本高,适用于算法更新頻繁或市場規模小的專用領域。

3、ASIC專用性強,适合市場需求量大的專用領域,但開發周期較長且難度極高。

GPU:最适合AI深度學習的異構晶片

GPU與GPGPU的定義

GPU(Graphics Processing Unit,圖形處理器)是進行圖像圖形相關運算工作的微處理器,最初用途是将計算機系統需要顯示的資訊進行轉換驅動,進而控制顯示器的正确顯示。

GPGPU(General-Purpose Computing on Graphics Processing Units,通用計算圖形處理器)用專門處理圖形任務的處理器,運作圖形渲染之外的通用計算任務,這些通用計算常常與圖形處理沒有任何關系。

GPU的特點是并行處理能力強、計算能效比高,并且有很大的存儲帶寬。某些應用,例如人工智能(機器學習)模型訓練與推理、高性能計算等,往往是大資料流應用,這時,用GPGPU解決這類問題,就比CPU效率更高,它對于用傳統語言編寫的、軟體形式的計算有較好的支援,具有高度的靈活性。

目前GPGPU廣泛應用于高性能計算、行業AI應用、安防與政府項目、網際網路及雲資料中心等。其主要應用場景:一是人工智能模型訓練與推理;二是高性能計算機。

GPU的結構

由于CPU在圖像渲染方面能力不足,GPU被發明出來分擔這部分工作,在螢幕上進行多邊形圖像渲染,其本質就是并行處理簡單任務:每個像素點的色彩可以獨立計算,不需要考慮其它像素點。有了這樣上千個簡單的核心,再配合合适的代碼,就能處理超大規模的數學運算,實作逼真的遊戲體驗。

由于CPU有通用性的需求,其單個核心往往會設計得大而全;加上CPU計算的特性,核心中有很大一部分面積用來建構緩存(包含L1和L2兩級緩存)和控制單元(解碼器與分支預測等前端單元),實際用來運算的單元面積可能僅占整個核心的一半甚至不到。

GPU的設計理念就不同,圖形計算本身就是一項簡單而暴力的“粗活”,複雜度遠不如CPU要負責的各種不同類型的工作,想要提高圖形計算速度最簡單的辦法就是擴大處理器中含有的單元數量。是以GPU對于特定的計算任務,因為擁有更大的計算單元,就很容易達到比CPU更高的計算速度,表現出來就是GPU在浮點運算吞吐量上遠超CPU。

GPU是基于資料的并行計算

GPU的關鍵性能在于可以同時運算一些更簡單的問題,然後并行處理,适用于高性能計算領域所涉及的諸如氣象、宇宙模型和DNA序列等問題,以及資料庫查詢、密碼學領域的暴力搜尋、機器學習/深度學習、地理可視化等企業應用。

GPU 并行程式設計的核心在于線程,一個線程就是程式中的一個單一指令流,無數個線程組合在一起就構成了并行計算網格,成為并行程式,下圖展示了多核 CPU 與 GPU 的計算網格:

并行計算有兩種類型:一是基于任務的并行處理,這種模式将計算任務拆分成若幹個小的但不同的任務,如有的運算單元負責取數,有的運算單元負責計算,等等,這樣一個大的任務可以組成一道流水線。二是基于資料的并行處理,這種并行模式将資料分解為多個部分,讓多個運算單元分别去計算這些小塊的資料,最後再将其彙總起來。

一般來說,CPU的多線程程式設計偏向于第一種并行模式,GPU并行程式設計模式則偏向于第二種,其對于資料的計算能力更加強大。

深度學習+大規模計算+大資料,誰才是未來的算力之王

人工智能的研究者選擇了GPU

最初,并不是GPU選擇了人工智能,而是人工智能的研究者選擇了GPU,進而成就了GPU:2012年Alex Krizhevsky(前谷歌計算機科學家)利用深度學習+GPU的方案,一舉赢得Image Net LSVRC-2010 圖像識别大賽,并奇迹般地将識别成功率從74%提升到85%。

NVIDIA敏銳地洞察到了這一趨勢,于是耗費巨大的人力物力優化基于自家GPU的CUDA深度學習生态系統,在三年時間裡将GPU性能提升了65倍,并提供基于其GPU的從後端模型訓練到前端推理應用的全套深度學習解決方案,使得一般的開發人員都可以非常容易地使用GPU進行深度學習開發或高性能運算,進而奠定了其目前的王者之位。

可以說,是人工智能和GPU互相成就了對方:人工智能算法促進GPU的發展,而GPU也讓算法更加簡單。

綜上所述,GPU是AI時代的算力核心,但AI算力的構成不僅僅隻是GPU加速晶片,還需要建構包括網絡互聯、作業系統、深度學習架構及相應 SDK、算法與應用程式等,形成一個完整的計算生态系統。

繼續閱讀