亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于眾核架構(gòu)的BP神經(jīng)網(wǎng)絡(luò)算法優(yōu)化

        2017-03-01 01:15:41南京航空航天大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院
        電子世界 2017年3期
        關(guān)鍵詞:分塊寄存器處理器

        南京航空航天大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 周 文

        基于眾核架構(gòu)的BP神經(jīng)網(wǎng)絡(luò)算法優(yōu)化

        南京航空航天大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 周 文

        近年來(lái),眾核處理器(Many Integrated Cores,MIC)越來(lái)越多地為人們所關(guān)注,眾核架構(gòu)已經(jīng)成為許多超算的首選。BP神經(jīng)網(wǎng)絡(luò)是采用反向誤差傳播(Back Propagation,BP)算法的人工神經(jīng)網(wǎng)絡(luò),對(duì)于處理器的浮點(diǎn)計(jì)算能力要求比較高。目前最新的Intel Xeon Phi(KNL)眾核處理器可以達(dá)到3TFLOPS的雙精度浮點(diǎn)峰值性能。本文對(duì)BP神經(jīng)網(wǎng)絡(luò)在KNL上進(jìn)行了向量化擴(kuò)展,并使用寄存器分塊和緩存分塊方法優(yōu)化研究。實(shí)驗(yàn)結(jié)果表明在KNL上最快能達(dá)到220img/s的處理速度,其加速比達(dá)到了13.2,為GPU的2.9倍,KNC的2.28倍。

        眾核架構(gòu);BP神經(jīng)網(wǎng)絡(luò);緩存分塊;向量化

        1 研究背景

        1.1 眾核架構(gòu)處理器

        MIC(Many Integrated Core)即為眾核處理器,是由Intel公司研發(fā)的基于x86架構(gòu)的集成眾多核心的高性能處理器。在2010年,Intel公司推出代號(hào)為Knight Ferry(KNF)的實(shí)驗(yàn)性產(chǎn)品。到了2012年正式推出第一代MIC產(chǎn)品,Knight Corner(KNC)。KNC是由50多個(gè)基于Pentium4架構(gòu)的內(nèi)核集成的。每個(gè)核心擁有64KB的一級(jí)緩存,以及512KB的二級(jí)緩存。核之間通過(guò)一條高速雙向環(huán)形總線(xiàn)互聯(lián)。

        2016年6月,Intel公司正式發(fā)布第二代至強(qiáng)融合系列處理器,代號(hào)為Knight Landing(KNL).KNL相比于第一代KNC有非常大的調(diào)整。首先最容易看出的是KNL可以不再僅僅作為協(xié)處理器運(yùn)行了,因?yàn)镵NL具有主處理器和協(xié)處理器兩個(gè)版本,主處理器版本的KNL可以當(dāng)做CPU來(lái)獨(dú)立運(yùn)行,而協(xié)處理器版本的KNL則與KNC相同,即通過(guò)PCIe插槽與主板相連,輔助CPU完成并行計(jì)算任務(wù)。其次,KNL內(nèi)部核心由slivermont架構(gòu)組成,擁有更多的核心,達(dá)到70多個(gè),每個(gè)核心擁有64KB的一級(jí)緩存和兩個(gè)向量處理單元VPU,每?jī)蓚€(gè)核心組成一個(gè)塊(Tile),Tile內(nèi)的兩個(gè)核心共享1M二級(jí)緩存。另外,Tile之間的訪(fǎng)存通道不再是一維結(jié)構(gòu)的環(huán)形總線(xiàn)了,而是改成了二維網(wǎng)格結(jié)構(gòu),Tile間的緩存采用非一致性訪(fǎng)存技術(shù)(NUMA)更好地讀取非規(guī)則數(shù)據(jù),有效地降低緩存丟失延遲。如圖1所示為KNL的內(nèi)部架構(gòu)。

        圖1 KNL內(nèi)部架構(gòu)

        1.2 機(jī)器學(xué)習(xí)

        機(jī)器學(xué)習(xí)是研究如何使用計(jì)算機(jī)來(lái)模仿人類(lèi)學(xué)習(xí)活動(dòng)的一門(mén)學(xué)科。從上世紀(jì)開(kāi)始,計(jì)算機(jī)領(lǐng)域就已經(jīng)對(duì)機(jī)器學(xué)習(xí)展開(kāi)了研究,其中人工神經(jīng)網(wǎng)絡(luò)(Artificial Neutral Network,ANN)尤其受大家關(guān)注。人工神經(jīng)網(wǎng)絡(luò)是模擬人類(lèi)腦部神經(jīng)元的運(yùn)作方式,使用計(jì)算機(jī)語(yǔ)言來(lái)構(gòu)造模擬的神經(jīng)網(wǎng)絡(luò)。在二十世紀(jì)初,人工神經(jīng)網(wǎng)絡(luò)進(jìn)一步發(fā)展出了深度神經(jīng)網(wǎng)絡(luò)(Deep Neutral Network,DNN),即在非監(jiān)督數(shù)據(jù)集上建立多層次的神經(jīng)元。然而由于當(dāng)時(shí)的計(jì)算機(jī)能力無(wú)法滿(mǎn)足DNN網(wǎng)絡(luò)的計(jì)算需求,因此發(fā)展緩慢。近年來(lái),隨著多核、眾核處理器的出現(xiàn),計(jì)算機(jī)能力有了大幅度的提升,目前最新的KNL處理器單片就可以達(dá)到1Tflops的浮點(diǎn)性能,這已經(jīng)達(dá)到了1997超級(jí)計(jì)算機(jī)TOP 1的整體計(jì)算能力。因此可以說(shuō)神經(jīng)網(wǎng)絡(luò)的二次高速發(fā)展離不開(kāi)高性能計(jì)算,特別是眾核處理器的進(jìn)步。

        2 BP神經(jīng)網(wǎng)絡(luò)算法

        2.1 研究背景

        DNN廣泛應(yīng)用于數(shù)據(jù)挖掘、模式識(shí)別等方面,這些領(lǐng)域需要對(duì)大規(guī)模數(shù)據(jù)集進(jìn)行訓(xùn)練和測(cè)試。DNN訓(xùn)練方法可以分為有監(jiān)督的預(yù)訓(xùn)練和區(qū)分性的預(yù)調(diào)整。通常神經(jīng)網(wǎng)絡(luò)預(yù)訓(xùn)練采用受限波茲曼機(jī)(Restricted Boltzmann Machine,RBM)算法來(lái)逐層訓(xùn)練,構(gòu)建深層置信網(wǎng)絡(luò)(Deep Belif Network,DBN)。而區(qū)分性預(yù)調(diào)整常采用誤差反向傳播算法(Back Propagation,BP)。

        反向傳播神經(jīng)網(wǎng)絡(luò)網(wǎng)絡(luò)(Back Propagation Neutral Network,BPNN)由一個(gè)輸入層,一個(gè)輸出層,以及多個(gè)隱藏層構(gòu)成。整個(gè)訓(xùn)練過(guò)程通過(guò)多次迭代獲得每層之間的權(quán)重值。目前有不少關(guān)于BP神經(jīng)網(wǎng)絡(luò)的并行計(jì)算研究,同時(shí)也有許多針對(duì)特定硬件架構(gòu)的并行方法,例如集群情況的并行方法[3],在流處理器上的并行設(shè)計(jì)[4]。

        2.2 算法分析

        BP神經(jīng)網(wǎng)絡(luò)包括了一個(gè)輸入層,一個(gè)輸出層和多個(gè)隱藏層。每一層神經(jīng)網(wǎng)絡(luò)包括神經(jīng)元向量,權(quán)重矩陣,以及激活函數(shù)。BP神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)過(guò)程包括了信號(hào)正向傳播與誤差反向傳播兩個(gè)階段。在正向傳播階段,信號(hào)通過(guò)輸入層進(jìn)入多級(jí)隱藏層,最終在輸出層輸出結(jié)果。正向傳播階段各層間的權(quán)重值不變,如果最終輸出層得到的結(jié)果與期望值誤差較大,那么再次反向傳播誤差信號(hào),逐步調(diào)整權(quán)重值。經(jīng)過(guò)多次正反向傳播調(diào)整權(quán)重,直到輸出期望結(jié)果,此時(shí)訓(xùn)練完畢。

        激活函數(shù)直接關(guān)系到BP神經(jīng)網(wǎng)絡(luò)的最終輸出結(jié)果,影響非線(xiàn)性誤差函數(shù)的收斂能力。公式(1)所示即為本文所使用的S型激活函數(shù):

        神經(jīng)元傳播函數(shù)如下:

        圖2 二維神經(jīng)網(wǎng)絡(luò)

        表1 BP

        圖3 BP網(wǎng)絡(luò)正向傳播激活過(guò)程

        圖4 BP神經(jīng)網(wǎng)絡(luò)反向傳播過(guò)程

        圖5 BP神經(jīng)網(wǎng)絡(luò)權(quán)重更新過(guò)程

        圖3為正向傳播過(guò)程的偽代碼,第7行是神經(jīng)元激活函數(shù)計(jì)算過(guò)程,output[ofm][ofh][ofw]表示輸出神經(jīng)元激活值,由輸入值input乘以權(quán)重weight再加上偏移量bias[ofm]得到。反向傳播過(guò)程和權(quán)重梯度計(jì)算過(guò)程與正向傳播類(lèi)似,如圖4表示。圖5為權(quán)重梯度值更新過(guò)程的偽代碼。這三次循環(huán)計(jì)算過(guò)程占據(jù)了BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練的大部分時(shí)間。因此,優(yōu)化這三個(gè)計(jì)算過(guò)程是降低BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練時(shí)間的關(guān)鍵。

        3 BP算法優(yōu)化

        3.1 緩存分塊優(yōu)化

        (1)計(jì)算訪(fǎng)存比

        1KNL計(jì)算訪(fǎng)存比。對(duì)于64核的KNL(7210P)處理器,其計(jì)算訪(fǎng)存比(F/B)可以由浮點(diǎn)性能比訪(fǎng)存帶寬求得,即如下的計(jì)算公式:

        由公式(3)可知KNL的計(jì)算訪(fǎng)存比為11.7。

        2BP算法計(jì)算訪(fǎng)存比。以本文實(shí)驗(yàn)所用的6層BP神經(jīng)網(wǎng)絡(luò)舉例,取IFM=OFM=1024,OH=OW=12,KH=KW=3,STRIDE=1,其訪(fǎng)存比計(jì)算公式如下:

        此時(shí)由公式(4)算得計(jì)算訪(fǎng)存比為1.85。因此未優(yōu)化的BP算法在KNL上大概獲得15.8%(1.85/11.7)的計(jì)算性能,即6Tflop×15.8%=948Gflops。

        (2)緩存分塊優(yōu)化

        從圖3可以看到,BP神經(jīng)網(wǎng)絡(luò)傳播過(guò)程是一個(gè)6層循環(huán)。一般BP神經(jīng)網(wǎng)絡(luò)的激活數(shù)(input[]和output[])和權(quán)重值(weights)比較大,無(wú)法完全存儲(chǔ)在緩存中,因此需要使用適當(dāng)?shù)木彺娣謮K方法來(lái)優(yōu)化BP算法。

        首先考慮對(duì)正向傳播過(guò)程的第一層循環(huán)進(jìn)行分塊,設(shè)分塊大小為OB,產(chǎn)生如圖6所示的循環(huán)結(jié)構(gòu)。如果OB大?。碠FH*OFW)的輸出特征數(shù)組可以被完全存儲(chǔ)在緩存中,那么其計(jì)算訪(fǎng)存比計(jì)算如下:

        還是以本文實(shí)驗(yàn)的6層BP神經(jīng)網(wǎng)絡(luò)舉例,分塊大小OB根據(jù)KNL的SIMD位寬取16個(gè)單精度浮點(diǎn)。此時(shí)由公式(5)計(jì)算得到BP算法的計(jì)算訪(fǎng)存比為30.3。當(dāng)前BP算法的計(jì)算訪(fǎng)存比大于KNL計(jì)算訪(fǎng)存比,所以BP算法成為計(jì)算密集型算法,其在KNL上可以獲得很好的加速效果。

        接下來(lái)還可以對(duì)第二層循環(huán)進(jìn)行分塊操作,以繼續(xù)提高計(jì)算訪(fǎng)存比。如圖6所示為二次循環(huán)分塊后的BP算法代碼,此時(shí)的計(jì)算訪(fǎng)存比達(dá)到了50。

        反向傳播過(guò)程和權(quán)重值更新過(guò)程的緩存分塊方法與正向傳播過(guò)程類(lèi)似,同樣對(duì)第一、二層進(jìn)行分塊,其中反向傳播過(guò)程的第一、二層與正向傳播過(guò)程恰好相反,但不影響分塊方法。

        圖6 正向傳播過(guò)程緩存優(yōu)化代碼

        3.2 寄存器分塊與向量化

        寄存器分塊常被用于提高寄存器的數(shù)據(jù)重用率,降低L1 cache通信堵塞以及隱藏融合乘加指令運(yùn)算操作的延遲。

        在前面緩存分塊的基礎(chǔ)上,對(duì)正向傳播過(guò)程按寄存器大小進(jìn)一步分割循環(huán)。如圖7所示為正向傳播過(guò)程使用寄存器分塊的偽代碼。設(shè)寄存器分塊大小為RB_SIZE,在第5行對(duì)輸出特征映射寬度OFW按寄存器分塊大小RB_SIZE進(jìn)行分塊,同時(shí)使用vout[]數(shù)組存儲(chǔ)多次權(quán)重累加的中間結(jié)果。另外,在最內(nèi)層循環(huán)部分使用了AVX-512指令集的聚集發(fā)散指令以及FMA指令完成向量化工作。在最內(nèi)層循環(huán)中向量化的FMA指令加載個(gè)數(shù)等于RB_SIZE。

        反向傳播過(guò)程以及權(quán)重更新過(guò)程和正向傳播過(guò)程類(lèi)似。

        圖7 正向傳播過(guò)程向量化代碼

        4 實(shí)驗(yàn)結(jié)果分析

        4.1 實(shí)驗(yàn)平臺(tái)與測(cè)試集

        本文實(shí)驗(yàn)所用硬件配置如表2所示,其中KNL為主處理器版本。實(shí)驗(yàn)所用測(cè)試數(shù)據(jù)集為來(lái)自美國(guó)加州大學(xué)機(jī)器學(xué)習(xí)庫(kù)的地質(zhì)圖像集。關(guān)于KNL測(cè)試中的MCDRAM模式,Cluster模式以及線(xiàn)程配置參數(shù)見(jiàn)表3。

        表2 實(shí)驗(yàn)硬件環(huán)境

        表3 實(shí)驗(yàn)配置參數(shù)

        4.2 優(yōu)化前后性能對(duì)比

        圖8為BP算法在優(yōu)化前后的計(jì)算性能結(jié)果。本文使用的優(yōu)化方法有緩存分塊,寄存器分塊以及向量化。衡量計(jì)算性能的指標(biāo)是每秒處理圖片數(shù)量,即img/s。從圖中可以看到使用緩存分塊,寄存器分塊以及向量化后圖像處理速度達(dá)到未優(yōu)化前的2倍。

        圖8 BP網(wǎng)絡(luò)優(yōu)化性能對(duì)比

        4.3 加速比分析

        對(duì)比CPU,GPU和MIC的加速比可以直觀地發(fā)現(xiàn)KNL的架構(gòu)優(yōu)勢(shì)。圖9為BP神經(jīng)網(wǎng)絡(luò)在不同硬件平臺(tái)上處理圖像的加速比。其中GPU是Tesla K20x,CPU是Intel Xeon 2609。從圖9中可以看到,KNC處理器的計(jì)算性能略高于GPU,而前面的SpMV算法和Stencil算法實(shí)驗(yàn)結(jié)果都不及GPU。KNL的加速達(dá)到了11.2,是其前代處理器KNC的2.28倍,性能提升效果明顯。

        圖9 不同硬件平臺(tái)的加速比

        5 結(jié)束語(yǔ)

        本文實(shí)現(xiàn)了BP神經(jīng)網(wǎng)絡(luò)算法在眾核架構(gòu)平臺(tái)上的移植與優(yōu)化。其優(yōu)化方法是CPU平臺(tái)上常見(jiàn)的緩存分塊和寄存器分塊方法,同時(shí)還使用了AVX512指令集進(jìn)行向量化擴(kuò)展。實(shí)驗(yàn)結(jié)果證明具有一定的加速效果,每秒處理圖像速度是未優(yōu)化代碼的2倍。在KNL平臺(tái)上的計(jì)算性能是GPU(K20x)的2.9倍,是上一代MIC(KNC)的2.28倍。

        [1]王恩東.MIC高性能計(jì)算編程指南[M].中國(guó)水利水電出版社,2012.

        [2]OLCF Ti tan Summi t 2011.http://www.olcf.ornl.gov/ event/titan-summit/.

        [3]Diede T,Hagenmaier C F,Miranker G S,et al.The Titan Graphics Supercomputer Architecture[J].Computer,1988,21(9):13-30.

        [4]Suresh S,Omkar S N,Mani V.Parallel Implementation of Back-Propagation Algorithm in Networks of Workstations[J].IEEE Transactions on Parallel & Distributed Systems,2005,16(1):24-34.

        [5]Furedi L,Szolgay P.CNN model on stream processing platform[C]. European Conference on Circuit Theory and Design. IEEE,2009:843-846.

        [6]Kerr J P,Barlett E B.SPECT reconstruction using a backpropagation neural network implemented on a massively parallel SIMD computer[C].Computer-Based Medical Systems,1992.Proceedings. Fifth IEEE Symposium on.IEEE,1992:616-623.

        [7]Tsaregorodtsev V G.Parallel implementation of backpropagation neural network software on SMP computers[C].Parallel Computing Technologies,International Conference,PACT 2005,Krasnoyarsk,Russia,September 5-9,2005,Proceedings.2005:186-192.

        [8]Enke D,Ratanapan K,Dagli C.Machine-part family formation utilizing an art1 neural network implemented on a parallel neurocomputer[J].Computers & Industrial Engineering,1998,34(1):189-205.

        Optimization of BP neural network algorithm based on many-core architecture

        Zhou Wen
        (College of Computer Science & Technology,Nanjing University of Aeronautics and Astronautics,Nanjing 210016,China)

        In recent years,the MIC(Many Integrated Cores)more and more people's attention,many core architecture has become the first choice for many supercomputing.BP neural network is a kind of artificial neural network based on BP(Back Propagation)algorithm,which requires a high level of floating-point computing capability.The latest Intel Xeon Phi (KNL) core processor can achieve 3TFLOPS double precision floating point peak performance.In this paper,we extend the BP neural network on KNL,and use the method of register block and cache block to optimize the research.The experimental results show that the fastest processing speed of 220img/s can be achieved on the KNL,and the speedup ratio is 13.2,which is times of GPU and KNC is 2.28 times.

        many-core architecture;BP neural network;cache block;vectorizatio

        周文(1991—),男,江蘇南京人,南京航空航天大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院碩士研究生,研究方向:高性能計(jì)算。

        國(guó)家自然科學(xué)基金(Grant No.61571226);江蘇省自然科學(xué)基金(青年科學(xué)基金)(Grant No.BK20140823)資助。

        猜你喜歡
        分塊寄存器處理器
        Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
        分塊矩陣在線(xiàn)性代數(shù)中的應(yīng)用
        分簇結(jié)構(gòu)向量寄存器分配策略研究*
        反三角分塊矩陣Drazin逆新的表示
        基于自適應(yīng)中值濾波的分塊壓縮感知人臉識(shí)別
        基于多分辨率半邊的分塊LOD模型無(wú)縫表達(dá)
        Imagination的ClearCallTM VoIP應(yīng)用現(xiàn)可支持Cavium的OCTEON? Ⅲ多核處理器
        ADI推出新一代SigmaDSP處理器
        呼嚕處理器
        高速數(shù)模轉(zhuǎn)換器AD9779/AD9788的應(yīng)用
        四虎成人精品在永久免费| 在线国产视频精品视频| 日韩极品视频在线观看免费| 亚洲福利二区三区四区| 国产卡一卡二卡3卡4乱码| 116美女极品a级毛片| 国产精品久久久亚洲第一牛牛| 中文字幕日韩精品人妻久久久| 色窝窝无码一区二区三区| 国产精品人妻一码二码尿失禁| 久久国产综合精品欧美| 色婷婷久久综合中文久久一本| 国产成人无码a在线观看不卡| 久久人人妻人人做人人爽| 久9热免费精品视频在线观看| 国产一区二区三区小向美奈子| 亚洲欧美v国产一区二区| 又黄又爽又高潮免费毛片| www久久久888| 国内精品亚洲成av人片| 2018国产精华国产精品| 久草午夜视频| 国产女女精品视频久热视频| 免费国产黄片视频在线观看| 日本办公室三级在线观看| 午夜免费福利小电影| 在线看片无码永久免费aⅴ| 亚洲综合精品在线观看中文字幕 | 精品女同一区二区三区| 热99re久久精品这里都是精品免费| 亚洲av纯肉无码精品动漫| 欧美zozo另类人禽交| 少妇高潮精品在线观看| 黑森林福利视频导航| 青春草国产视频| 国产精品一品二区三区| 色熟妇人妻久久中文字幕| 狠狠色噜噜狠狠狠狠7777米奇| 啪啪视频一区二区三区入囗| 亚洲一区二区三区精品久久av| 无码人妻一区二区三区兔费|