999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于眾核架構的BP神經網絡算法優化

2017-03-01 01:15:41南京航空航天大學計算機科學與技術學院
電子世界 2017年3期
關鍵詞:優化

南京航空航天大學計算機科學與技術學院 周 文

基于眾核架構的BP神經網絡算法優化

南京航空航天大學計算機科學與技術學院 周 文

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

眾核架構;BP神經網絡;緩存分塊;向量化

1 研究背景

1.1 眾核架構處理器

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

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

圖1 KNL內部架構

1.2 機器學習

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

2 BP神經網絡算法

2.1 研究背景

DNN廣泛應用于數據挖掘、模式識別等方面,這些領域需要對大規模數據集進行訓練和測試。DNN訓練方法可以分為有監督的預訓練和區分性的預調整。通常神經網絡預訓練采用受限波茲曼機(Restricted Boltzmann Machine,RBM)算法來逐層訓練,構建深層置信網絡(Deep Belif Network,DBN)。而區分性預調整常采用誤差反向傳播算法(Back Propagation,BP)。

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

2.2 算法分析

BP神經網絡包括了一個輸入層,一個輸出層和多個隱藏層。每一層神經網絡包括神經元向量,權重矩陣,以及激活函數。BP神經網絡的學習過程包括了信號正向傳播與誤差反向傳播兩個階段。在正向傳播階段,信號通過輸入層進入多級隱藏層,最終在輸出層輸出結果。正向傳播階段各層間的權重值不變,如果最終輸出層得到的結果與期望值誤差較大,那么再次反向傳播誤差信號,逐步調整權重值。經過多次正反向傳播調整權重,直到輸出期望結果,此時訓練完畢。

激活函數直接關系到BP神經網絡的最終輸出結果,影響非線性誤差函數的收斂能力。公式(1)所示即為本文所使用的S型激活函數:

神經元傳播函數如下:

圖2 二維神經網絡

表1 BP

圖3 BP網絡正向傳播激活過程

圖4 BP神經網絡反向傳播過程

圖5 BP神經網絡權重更新過程

圖3為正向傳播過程的偽代碼,第7行是神經元激活函數計算過程,output[ofm][ofh][ofw]表示輸出神經元激活值,由輸入值input乘以權重weight再加上偏移量bias[ofm]得到。反向傳播過程和權重梯度計算過程與正向傳播類似,如圖4表示。圖5為權重梯度值更新過程的偽代碼。這三次循環計算過程占據了BP神經網絡訓練的大部分時間。因此,優化這三個計算過程是降低BP神經網絡訓練時間的關鍵。

3 BP算法優化

3.1 緩存分塊優化

(1)計算訪存比

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

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

2BP算法計算訪存比。以本文實驗所用的6層BP神經網絡舉例,取IFM=OFM=1024,OH=OW=12,KH=KW=3,STRIDE=1,其訪存比計算公式如下:

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

(2)緩存分塊優化

從圖3可以看到,BP神經網絡傳播過程是一個6層循環。一般BP神經網絡的激活數(input[]和output[])和權重值(weights)比較大,無法完全存儲在緩存中,因此需要使用適當的緩存分塊方法來優化BP算法。

首先考慮對正向傳播過程的第一層循環進行分塊,設分塊大小為OB,產生如圖6所示的循環結構。如果OB大小(即OFH*OFW)的輸出特征數組可以被完全存儲在緩存中,那么其計算訪存比計算如下:

還是以本文實驗的6層BP神經網絡舉例,分塊大小OB根據KNL的SIMD位寬取16個單精度浮點。此時由公式(5)計算得到BP算法的計算訪存比為30.3。當前BP算法的計算訪存比大于KNL計算訪存比,所以BP算法成為計算密集型算法,其在KNL上可以獲得很好的加速效果。

接下來還可以對第二層循環進行分塊操作,以繼續提高計算訪存比。如圖6所示為二次循環分塊后的BP算法代碼,此時的計算訪存比達到了50。

反向傳播過程和權重值更新過程的緩存分塊方法與正向傳播過程類似,同樣對第一、二層進行分塊,其中反向傳播過程的第一、二層與正向傳播過程恰好相反,但不影響分塊方法。

圖6 正向傳播過程緩存優化代碼

3.2 寄存器分塊與向量化

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

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

反向傳播過程以及權重更新過程和正向傳播過程類似。

圖7 正向傳播過程向量化代碼

4 實驗結果分析

4.1 實驗平臺與測試集

本文實驗所用硬件配置如表2所示,其中KNL為主處理器版本。實驗所用測試數據集為來自美國加州大學機器學習庫的地質圖像集。關于KNL測試中的MCDRAM模式,Cluster模式以及線程配置參數見表3。

表2 實驗硬件環境

表3 實驗配置參數

4.2 優化前后性能對比

圖8為BP算法在優化前后的計算性能結果。本文使用的優化方法有緩存分塊,寄存器分塊以及向量化。衡量計算性能的指標是每秒處理圖片數量,即img/s。從圖中可以看到使用緩存分塊,寄存器分塊以及向量化后圖像處理速度達到未優化前的2倍。

圖8 BP網絡優化性能對比

4.3 加速比分析

對比CPU,GPU和MIC的加速比可以直觀地發現KNL的架構優勢。圖9為BP神經網絡在不同硬件平臺上處理圖像的加速比。其中GPU是Tesla K20x,CPU是Intel Xeon 2609。從圖9中可以看到,KNC處理器的計算性能略高于GPU,而前面的SpMV算法和Stencil算法實驗結果都不及GPU。KNL的加速達到了11.2,是其前代處理器KNC的2.28倍,性能提升效果明顯。

圖9 不同硬件平臺的加速比

5 結束語

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

[1]王恩東.MIC高性能計算編程指南[M].中國水利水電出版社,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—),男,江蘇南京人,南京航空航天大學計算機科學與技術學院碩士研究生,研究方向:高性能計算。

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

猜你喜歡
優化
超限高層建筑結構設計與優化思考
房地產導刊(2022年5期)2022-06-01 06:20:14
PEMFC流道的多目標優化
能源工程(2022年1期)2022-03-29 01:06:28
民用建筑防煙排煙設計優化探討
關于優化消防安全告知承諾的一些思考
一道優化題的幾何解法
由“形”啟“數”優化運算——以2021年解析幾何高考題為例
圍繞“地、業、人”優化產業扶貧
今日農業(2020年16期)2020-12-14 15:04:59
事業單位中固定資產會計處理的優化
消費導刊(2018年8期)2018-05-25 13:20:08
4K HDR性能大幅度優化 JVC DLA-X8 18 BC
幾種常見的負載均衡算法的優化
電子制作(2017年20期)2017-04-26 06:57:45
主站蜘蛛池模板: 日韩人妻精品一区| 国产永久在线观看| 天天做天天爱天天爽综合区| 久久精品人人做人人| 国产玖玖玖精品视频| 尤物在线观看乱码| 黄色网址手机国内免费在线观看| 欧美国产综合视频| 中文无码影院| 制服丝袜无码每日更新| 天天摸夜夜操| 亚洲首页在线观看| 最新国产午夜精品视频成人| 国产乱肥老妇精品视频| 色婷婷丁香| 久热这里只有精品6| 精品自拍视频在线观看| 99久久性生片| 亚洲婷婷丁香| 国产精品免费久久久久影院无码| 色哟哟国产精品一区二区| 国产成人精品一区二区三在线观看| 在线中文字幕网| 天天做天天爱夜夜爽毛片毛片| 91尤物国产尤物福利在线| 第一区免费在线观看| 青草免费在线观看| 亚洲色中色| 男人天堂亚洲天堂| 中文字幕精品一区二区三区视频| 欧美午夜一区| A级毛片无码久久精品免费| 黄色网页在线观看| 国产精品毛片在线直播完整版| 2021天堂在线亚洲精品专区| 久久久黄色片| 亚洲中文在线看视频一区| 亚洲无码电影| 亚洲成人高清在线观看| 欧美自拍另类欧美综合图区| 一级福利视频| 欧美激情视频一区| 国产欧美日韩专区发布| 特级aaaaaaaaa毛片免费视频 | 久久久久久尹人网香蕉| 欧美精品啪啪| 麻豆国产精品视频| 女人18毛片久久| 中文字幕 日韩 欧美| 国产手机在线观看| 久爱午夜精品免费视频| 日本色综合网| lhav亚洲精品| 日本日韩欧美| 亚洲精品动漫| 亚洲VA中文字幕| 亚洲综合色吧| 欧美三级不卡在线观看视频| 九色综合伊人久久富二代| 日韩在线观看网站| 国产99久久亚洲综合精品西瓜tv| 日韩高清成人| 欧美在线黄| 国产h视频免费观看| 久久这里只有精品66| 国产拍揄自揄精品视频网站| 91美女视频在线| 精品一区二区三区自慰喷水| 国产精品香蕉在线| www.精品国产| 亚洲欧美人成电影在线观看| 亚洲区第一页| 欧美午夜在线播放| 无码精品国产dvd在线观看9久| 91po国产在线精品免费观看| 在线观看国产黄色| 亚洲中文字幕在线观看| 婷婷伊人久久| 亚卅精品无码久久毛片乌克兰| 国产精品99久久久| 亚洲乱码在线视频| 亚洲成a人片7777|