【導(dǎo)讀】深度學(xué)習(xí)在這十年,甚至是未來幾十年內(nèi)都有可能是最熱門的話題。雖然深度學(xué)習(xí)已是廣為人知了,但它并不僅僅包含數(shù)學(xué)、建模、學(xué)習(xí)和優(yōu)化。算法必須在優(yōu)化后的硬件上運行,因為學(xué)習(xí)成千上萬的數(shù)據(jù)可能需要長達(dá)幾周的時間。因此,深度學(xué)習(xí)網(wǎng)絡(luò)亟需更快、更高效的硬件。
眾所周知,并非所有進(jìn)程都能在CPU上高效運行。游戲和視頻處理需要專門的硬件——圖形處理器(GPU),信號處理則需要像數(shù)字信號處理器(DSP)等其它獨立的架構(gòu)。人們一直在設(shè)計用于學(xué)習(xí)(learning)的專用硬件,例如,2016年3月與李世石對陣的AlphaGo計算機使用了由1920個CPU和280個GPU組成的分布式計算模塊。而隨著英偉達(dá)發(fā)布新一代的Pascal GPU,人們也開始對深度學(xué)習(xí)的軟件和硬件有了同等的關(guān)注。接下來,讓我們重點來看深度學(xué)習(xí)的硬件架構(gòu)。
對深度學(xué)習(xí)硬件平臺的要求
要想明白我們需要怎樣的硬件,必須了解深度學(xué)習(xí)的工作原理。首先在表層上,我們有一個巨大的數(shù)據(jù)集,并選定了一種深度學(xué)習(xí)模型。每個模型都有一些內(nèi)部參數(shù)需要調(diào)整,以便學(xué)習(xí)數(shù)據(jù)。而這種參數(shù)調(diào)整實際上可以歸結(jié)為優(yōu)化問題,在調(diào)整這些參數(shù)時,就相當(dāng)于在優(yōu)化特定的約束條件。 百度的硅谷人工智能實驗室(SVAIL)已經(jīng)為深度學(xué)習(xí)硬件提出了DeepBench基準(zhǔn),這一基準(zhǔn)著重衡量的是基本計算的硬件性能,而不是學(xué)習(xí)模型的表現(xiàn)。這種方法旨在找到使計算變慢或低效的瓶頸。 因此,重點在于設(shè)計一個對于深層神經(jīng)網(wǎng)絡(luò)訓(xùn)練的基本操作執(zhí)行效果最佳的架構(gòu)。那么基本操作有哪些呢?現(xiàn)在的深度學(xué)習(xí)算法主要包括卷積神經(jīng)網(wǎng)絡(luò)(CNN)和循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)。基于這些算法,DeepBench提出以下四種基本運算:
矩陣相乘(Matrix MulTIplicaTIon)——幾乎所有的深度學(xué)習(xí)模型都包含這一運算,它的計算十分密集。
卷積(ConvoluTIon)——這是另一個常用的運算,占用了模型中大部分的每秒浮點運算(浮點/秒)。
循環(huán)層(Recurrent Layers )——模型中的反饋層,并且基本上是前兩個運算的組合。
All Reduce——這是一個在優(yōu)化前對學(xué)習(xí)到的參數(shù)進(jìn)行傳遞或解析的運算序列。在跨硬件分布的深度學(xué)習(xí)網(wǎng)絡(luò)上執(zhí)行同步優(yōu)化時(如AlphaGo的例子),這一操作尤其有效。
除此之外,深度學(xué)習(xí)的硬件加速器需要具備數(shù)據(jù)級別和流程化的并行性、多線程和高內(nèi)存帶寬等特性。 另外,由于數(shù)據(jù)的訓(xùn)練時間很長,所以硬件架構(gòu)必須低功耗。 因此,效能功耗比(Performance per Watt)是硬件架構(gòu)的評估標(biāo)準(zhǔn)之一。
當(dāng)前趨勢與未來走向 英偉達(dá)的GPU在深度學(xué)習(xí)硬件市場上一直處于領(lǐng)先地位。圖片:英偉達(dá)
英偉達(dá)以其大規(guī)模的并行GPU和專用GPU編程框架CUDA主導(dǎo)著當(dāng)前的深度學(xué)習(xí)市場。但是越來越多的公司開發(fā)出了用于深度學(xué)習(xí)的加速硬件,比如谷歌的張量處理單元(TPU/Tensor Processing Unit)、英特爾的Xeon Phi Knight‘s Landing,以及高通的神經(jīng)網(wǎng)絡(luò)處理器(NNU/Neural Network Processor)。像Teradeep這樣的公司現(xiàn)在開始使用FPGA(現(xiàn)場可編程門陣列),因為它們的能效比GPU的高出10倍。 FPGA更靈活、可擴展、并且效能功耗比更高。 但是對FPGA編程需要特定的硬件知識,因此近來也有對軟件層面的FPGA編程模型的開發(fā)。
此外,一直以來廣為人所接受的理念是,適合所有模型的統(tǒng)一架構(gòu)是不存在的,因為不同的模型需要不同的硬件處理架構(gòu)。 而研究人員正在努力,希望FPGA的廣泛使用能夠推翻這一說法。
大多數(shù)深度學(xué)習(xí)軟件框架(如TensorFlow、Torch、Theano、CNTK)是開源的,而Facebook最近也開放其 Big Sur 深度學(xué)習(xí)硬件平臺,因此在不久的將來,我們應(yīng)該會看到更多深度學(xué)習(xí)的開源硬件架構(gòu) 。