你的位置:首頁 > 測(cè)試測(cè)量 > 正文

基于深度學(xué)習(xí)所需的硬件架構(gòu)解析

發(fā)布時(shí)間:2016-11-22 責(zé)任編輯:sherry

【導(dǎo)讀】深度學(xué)習(xí)在這十年,甚至是未來幾十年內(nèi)都有可能是最熱門的話題。雖然深度學(xué)習(xí)已是廣為人知了,但它并不僅僅包含數(shù)學(xué)、建模、學(xué)習(xí)和優(yōu)化。算法必須在優(yōu)化后的硬件上運(yùn)行,因?yàn)閷W(xué)習(xí)成千上萬的數(shù)據(jù)可能需要長達(dá)幾周的時(shí)間。因此,深度學(xué)習(xí)網(wǎng)絡(luò)亟需更快、更高效的硬件。

眾所周知,并非所有進(jìn)程都能在CPU上高效運(yùn)行。游戲和視頻處理需要專門的硬件——圖形處理器(GPU),信號(hào)處理則需要像數(shù)字信號(hào)處理器(DSP)等其它獨(dú)立的架構(gòu)。人們一直在設(shè)計(jì)用于學(xué)習(xí)(learning)的專用硬件,例如,2016年3月與李世石對(duì)陣的AlphaGo計(jì)算機(jī)使用了由1920個(gè)CPU和280個(gè)GPU組成的分布式計(jì)算模塊。而隨著英偉達(dá)發(fā)布新一代的Pascal GPU,人們也開始對(duì)深度學(xué)習(xí)的軟件和硬件有了同等的關(guān)注。接下來,讓我們重點(diǎn)來看深度學(xué)習(xí)的硬件架構(gòu)。

對(duì)深度學(xué)習(xí)硬件平臺(tái)的要求

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

矩陣相乘(Matrix MulTIplicaTIon)——幾乎所有的深度學(xué)習(xí)模型都包含這一運(yùn)算,它的計(jì)算十分密集。

卷積(ConvoluTIon)——這是另一個(gè)常用的運(yùn)算,占用了模型中大部分的每秒浮點(diǎn)運(yùn)算(浮點(diǎn)/秒)。

循環(huán)層(Recurrent Layers )——模型中的反饋層,并且基本上是前兩個(gè)運(yùn)算的組合。

All Reduce——這是一個(gè)在優(yōu)化前對(duì)學(xué)習(xí)到的參數(shù)進(jìn)行傳遞或解析的運(yùn)算序列。在跨硬件分布的深度學(xué)習(xí)網(wǎng)絡(luò)上執(zhí)行同步優(yōu)化時(shí)(如AlphaGo的例子),這一操作尤其有效。

除此之外,深度學(xué)習(xí)的硬件加速器需要具備數(shù)據(jù)級(jí)別和流程化的并行性、多線程和高內(nèi)存帶寬等特性。 另外,由于數(shù)據(jù)的訓(xùn)練時(shí)間很長,所以硬件架構(gòu)必須低功耗。 因此,效能功耗比(Performance per Watt)是硬件架構(gòu)的評(píng)估標(biāo)準(zhǔn)之一。

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

英偉達(dá)以其大規(guī)模的并行GPU和專用GPU編程框架CUDA主導(dǎo)著當(dāng)前的深度學(xué)習(xí)市場(chǎng)。但是越來越多的公司開發(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)場(chǎng)可編程門陣列),因?yàn)樗鼈兊哪苄П菺PU的高出10倍。 FPGA更靈活、可擴(kuò)展、并且效能功耗比更高。 但是對(duì)FPGA編程需要特定的硬件知識(shí),因此近來也有對(duì)軟件層面的FPGA編程模型的開發(fā)。

此外,一直以來廣為人所接受的理念是,適合所有模型的統(tǒng)一架構(gòu)是不存在的,因?yàn)椴煌哪P托枰煌挠布幚砑軜?gòu)。 而研究人員正在努力,希望FPGA的廣泛使用能夠推翻這一說法。

大多數(shù)深度學(xué)習(xí)軟件框架(如TensorFlow、Torch、Theano、CNTK)是開源的,而Facebook最近也開放其 Big Sur 深度學(xué)習(xí)硬件平臺(tái),因此在不久的將來,我們應(yīng)該會(huì)看到更多深度學(xué)習(xí)的開源硬件架構(gòu) 。
特別推薦
技術(shù)文章更多>>
技術(shù)白皮書下載更多>>
熱門搜索
?

關(guān)閉

?

關(guān)閉