亚洲免费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)鍵詞:優(yōu)化

        南京航空航天大學(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)形總線互聯(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之間的訪存通道不再是一維結(jié)構(gòu)的環(huán)形總線了,而是改成了二維網(wǎng)格結(jié)構(gòu),Tile間的緩存采用非一致性訪存技術(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)模仿人類學(xué)習(xí)活動(dòng)的一門學(xué)科。從上世紀(jì)開始,計(jì)算機(jī)領(lǐng)域就已經(jīng)對(duì)機(jī)器學(xué)習(xí)展開了研究,其中人工神經(jīng)網(wǎng)絡(luò)(Artificial Neutral Network,ANN)尤其受大家關(guān)注。人工神經(jīng)網(wǎng)絡(luò)是模擬人類腦部神經(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ú)法滿足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ā)展離不開高性能計(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é)果,影響非線性誤差函數(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ò)程與正向傳播類似,如圖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ì)算訪存比

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

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

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

        此時(shí)由公式(4)算得計(jì)算訪存比為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大小(即OFH*OFW)的輸出特征數(shù)組可以被完全存儲(chǔ)在緩存中,那么其計(jì)算訪存比計(jì)算如下:

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

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

        反向傳播過(guò)程和權(quán)重值更新過(guò)程的緩存分塊方法與正向傳播過(guò)程類似,同樣對(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ò)程類似。

        圖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模式以及線程配置參數(shù)見表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)上常見的緩存分塊和寄存器分塊方法,同時(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)資助。

        猜你喜歡
        優(yōu)化
        超限高層建筑結(jié)構(gòu)設(shè)計(jì)與優(yōu)化思考
        PEMFC流道的多目標(biāo)優(yōu)化
        能源工程(2022年1期)2022-03-29 01:06:28
        民用建筑防煙排煙設(shè)計(jì)優(yōu)化探討
        關(guān)于優(yōu)化消防安全告知承諾的一些思考
        一道優(yōu)化題的幾何解法
        由“形”啟“數(shù)”優(yōu)化運(yùn)算——以2021年解析幾何高考題為例
        圍繞“地、業(yè)、人”優(yōu)化產(chǎn)業(yè)扶貧
        事業(yè)單位中固定資產(chǎn)會(huì)計(jì)處理的優(yōu)化
        4K HDR性能大幅度優(yōu)化 JVC DLA-X8 18 BC
        幾種常見的負(fù)載均衡算法的優(yōu)化
        電子制作(2017年20期)2017-04-26 06:57:45
        国产精品黑丝高跟在线粉嫩 | 久久久久人妻一区精品| 无码a∨高潮抽搐流白浆| 精品少妇爆乳无码aⅴ区| 中文字幕人妻少妇精品| 日本国产亚洲一区二区| 久久久久人妻一区精品色欧美| 国产91网址| 精品国产亚洲人成在线观看| 国产一区二区三区亚洲avv| 久久精品欧美日韩精品| 日韩www视频| 国产一区二区三区视频了| 成人大片免费观看视频| 人人妻人人澡人人爽欧美一区九九| 国产一区二区波多野结衣| 久久婷婷国产五月综合色| 国产91色综合久久免费| 午夜福利试看120秒体验区| 國产AV天堂| 淫秽在线中国国产视频| 欧美成人精品第一区| 久久精品人人爽人人爽| 久9热免费精品视频在线观看| 字幕网中文字幕精品一区| 人妻丰满av无码中文字幕| 女人夜夜春高潮爽a∨片传媒 | 久久久久久自慰出白浆| 亚洲精品无码不卡av| 青青草视频在线视频播放| 日本视频在线观看二区| 成人无码α片在线观看不卡| 亚洲av日韩aⅴ无码电影| 色综合中文字幕综合网| 在线观看av片永久免费| 人妻av一区二区三区精品| 男女在线免费视频网站| 亚洲高清在线天堂精品| 品色永久免费| 毛片一级精油按摩无码| 青青青免费在线视频亚洲视频|