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

基于申威眾核架構的分組卷積計算加速與優化

2023-01-01 00:00:00王鑫張銘
計算機應用研究 2023年6期

摘 要:針對應用普通卷積結構的卷積計算復雜度較高、計算量與參數量較大的問題,提出以國產SW26010P眾核處理器為平臺的并行分組卷積算法。核心思想是利用獨特的數據布局,通過多核映射處理進行并行計算。實驗測試結果表明,與單核串行算法相比,使用該并行分組卷積算法可以獲得79.5的最高加速比及186.7MFLOPS的最大有效算力。通過SIMD指令對并行分組卷積算法進行數據并行優化后,與使用優化前的并行分組卷積算法相比,可以獲得10.2的最高加速比。

關鍵詞:卷積神經網絡; 分組卷積; 并行算法; 數據并行

中圖分類號:TP391 文獻標志碼:A

文章編號:1001-3695(2023)06-023-1745-05

doi:10.19734/j.issn.1001-3695.2022.10.0559

Acceleration and optimization of group convolution calculation

based on SW many-core architecture

Wang Xin, Zhang Ming

(School of Internet of Things Engineering, Jiangnan University, Wuxi Jiangsu 214122, China)

Abstract:In order to solve the problems of high computational complexity, large computational cost and large number of parameters, this paper proposed the parallel group convolution algorithm based on the domestic SW26010P multi-core processor. The core idea was to use the unique data layout, through the multi-core mapping processing, parallel computing. Experimental results show that compared with single-core serial algorithm, the proposed parallel group convolution algorithm can achieve the highest speed-up ratio of 79.5 and the maximum effective computing power of 186.7MFLOPS. After data parallel optimization of the parallel group convolution algorithm by SIMD instruction, the algorithm obtains the highest speed-up ratio of 10.2 compared with the parallel group convolution algorithm before optimization.

Key words:convolutional neural network; group convolution; parallel algorithm; data parallel

近年來,在人工智能領域,深度學習經歷了由小模型[1]到大模型[2,3]、再由大模型到輕量級模型[4~6]的發展。卷積神經網絡(convolutional neural network,CNN)是前沿的深度學習算法之一,被廣泛應用于計算機視覺、圖像識別與處理、自然語言識別等多個領域[7]。許多研究者在這些領域中得到了出色的研究成果。一般情況下,卷積神經網絡由輸入層、卷積層、池化層、全連接層組成。其中,卷積層的計算量、參數量占比最多,故卷積層的卷積計算是卷積神經網絡中至關重要的一部分,極大程度地影響著卷積神經網絡整體的效率。

目前,有很多不同種類的卷積結構應用在卷積神經網絡的卷積層中。例如,傳統卷積、3D卷積、分組卷積、轉置卷積、深度可分離卷積、擴張卷積等。其中,分組卷積在2012年AlexNet模型[8]中被使用,通過分組[8]方式優化卷積結構,以分組計算的方式減少參數量。

目前,卷積計算方法有兩種方向。第一種是將卷積計算的輸入數據以及權重數據重排,轉換成矩陣乘法可以適應的格式,然后通過矩陣乘法完成卷積計算。經典算法之一的Im2col(image to column)算法就是通過張量展開和矩陣乘的方式計算,有效提高卷積計算效率。例如,Suda[9]和Zhang等人[10]基于Im2col算法的思想進一步完善了快速卷積算法。但Im2col算法所需的數據存儲空間成倍增加,同時,內存訪問比矩陣乘法消耗更多的時間,這已經成為進一步優化計算速度的瓶頸[11]。另一種是不通過改變輸入數據以及權重數據的排列方式,通過傳統滑動窗口的形式進行卷積計算。例如,Zhang等人[12]使用傳統滑動窗口卷積算法設計了基于FPGA的深度學習加速器。George等人[13]使用卷積定理降低了卷積層的計算復雜度。雖然實現較為簡單,但是計算效率較低。

盡管上述各種算法存在一定的優點,對于Im2col算法的分組卷積計算速度慢等問題仍然有待解決。綜合考慮卷積計算量、參數量、數據存儲空間、數據搬移時間以及計算效率等因素,基于SW26010P眾核處理器,本文提出新的并行分組卷積算法,該算法將處理器的眾核架構與Im2col算法充分融合,利用并行計算及流水線方式提高分組卷積計算效率,充分利用硬件平臺的運算資源。

本文測試了基于ImageNet數據集訓練的AlexNet模型中卷積層的分組卷積計算,以進行性能的評估,與單從核串行算法相比,并行分組卷積算法可以獲得79.5的最高加速比。通過單指令多數據流(single instruction multiple data,SIMD)優化后,并行分組卷積算法與優化前相比,可以獲得10.2的最高加速比。

1 背景

1.1 SW26010P眾核處理器

多個SW26010P處理器組成了新一代神威超級計算機“神威·太湖之光”,其中每個SW26010P擁有390個處理單元,其中包含六個核組(core group,CG),每個CG包含一個運算控制核心,即主核;一個8×8的運算陣列,即從核陣列,如圖1所示。

每個CG的運算控制核心擁有16 GB的存儲容量和51.2 GBps的帶寬。每個從核擁有256 KB的私有內存(local data memory,LDM)。運算控制核心的主存與運算處理單元的私有內存之間的數據通過直接存儲器訪問(direct memory access,DMA)傳輸。DMA適合大量連續的數據訪問,如果利用DMA訪問需要跨步讀取的數據,會使DMA傳輸效率降低。

另外,SW26010P的從核陣列具有低延遲的特點,在64個從核之間可以高速互傳數據。

1.2 精度格式

為了追求高性能低功耗,在SW26010P處理器從核陣列中支持了半精度(half-precision)浮點數格式。與單、雙精度格式一樣,半精度也包括在IEEE754-2008標準之中。在1982年推出的DSP產品等都使用了這種格式。并且,半精度浮點數只占用2 Byte的存儲空間,對于有大量計算需求的任務方面有著極大的優勢。

單精度浮點數由4 Byte組成,包含23 bit的尾數位,8 bit的指數位,如圖2所示。與其相比,半精度浮點數由2 Byte組成,分別是10 bit的尾數位,5 bit的指數位,以及1 bit的符號位,如圖3所示。

在申威眾核架構中,使用半精度浮點格式的計算結果在寄存器中的保存形式是單精度浮點格式。如果將半精度浮點格式的計算結果送回結果空間,則寄存器中的值會被直接截斷,不會進行數值溢出檢查及處理,但如果使用單精度浮點格式保存計算結果,會使用特殊指令對數值進行檢查,因此使用這種保存形式可以保證計算結果的精度。

1.3 分組卷積

分組卷積主要為了處理涉及計算量和存儲需求的卷積層的卷積計算。目前,分組卷積多被用于小型網絡模型。

分組卷積的具體過程是:將卷積的輸入數據分成組,多個卷積核及每個卷積核內也相應地分成組,在對應的組內進行卷積計算。例如,圖4中分組數groups為2,即前面的一組輸入數據只和前一組卷積核進行卷積計算,后面的一組輸入數據只和后一組卷積核進行卷積計算。每組卷積計算結果都生成一組輸出數據,將兩組輸出數據拼接,得到完整的輸出數據。

通過分組卷積,輸入通道、卷積核個數及輸出通道減少為原來的1/groups,最終分組卷積的參數量為傳統卷積的1/groups。

1.4 SIMD指令

在20世紀90年代中期,各大廠商在處理器中集成了一套專用的多媒體專用加速部件[14]。在部件上的指令集采用SIMD擴展技術,稱為SIMD擴展部件。應用于SIMD擴展部件的系統指令稱為SIMD指令。

隨著時間的推移,SIMD指令功能逐漸完善,SIMD擴展部件從多媒體領域的專用加速部件轉變為通用計算加速部件[15],在科學計算[16]、密碼破譯[17]等其他領域得到廣泛應用。

SIMD指令指的是單指令多數據流的指令,旨在發掘程序中的數據并行,能夠將原來需要多次裝載的內存中地址連續的數據一次性裝載到向量寄存器中,通過一條SIMD指令,實現對SIMD向量寄存器中所有元素的并行處理[18]。SIMD指令的主要應用特點是一個短向量中各個元素是互不相關的,對當前向量元素的操作結果不影響到其他向量元素。一條SIMD指令相當于一個小的循環,所以可以減少指令數,從而可以降低對指令訪問帶寬的要求。

本文使用SIMD指令的擴展數據類型為float16v32,該類型的SIMD變量可以存儲32個半精度浮點類型的數據。

2 并行分組卷積算法設計

2.1 數據重排

由于計算機一次性讀取相近的內存是最快的,使用Im2col算法將輸入數據重新排列,可減少從主存到每個從核的LDM的數據搬移時間。

假設計算機中存儲的輸入數據按照NHWC(N代表輸入圖片數,H代表圖片高,W代表圖片寬,C代表輸入通道數)排列。卷積核按MRSC(M代表輸出通道數,R代表卷積核高,S代表卷積核寬,C代表輸入通道數)排列。輸出數據按照NEFM(N代表輸入圖片數,E代表輸出數據高,F代表輸出數據寬,M代表輸出通道數)排列。

由卷積計算的特點,每一點的輸出數據與多點的輸入數據相關,需要從主存中不斷搬移多點的輸入數據不斷進行乘加計算。以輸入特征圖大小為5×5,卷積核大小為3×3,滑動步長為2,參與卷積計算為例,卷積核窗口共滑動4次。利用Im2col算法將輸入數據重新排列,將每一次需處理的卷積核窗口數據展開成新矩陣的一行(列),如圖5所示。利用Im2col算法重排后,輸入數據大小變成NEF×RSC。

2.2 數據布局

盡管通過Im2col算法重排輸入數據在一定程度上可以減少數據訪存次數,但與此同時,由Im2col算法引起的數據量增加,導致從核LDM空間更加不足以存儲參與卷積計算的數據。因此,通過雙緩沖數據,隱藏通信開銷是一種高效的優化手段。

采用雙緩沖模式,就是當需要多輪次的DMA讀寫操作時,在從核的LDM上申請2倍于通信數據大小的存儲空間,以便存放兩份同樣大小且互為對方緩沖的數據。具體方法是除了第一輪讀入、寫回數據和最后一輪讀入、寫回的通信過程之外,當從核進行本輪數據計算的同時,進行下一輪讀入數據和上一輪寫回數據的通信,如圖6所示。

為了完全發揮流水線的作用,同樣雙緩沖輸出數據,只需保證本輪分塊后的輸入數據與卷積核數據進行分組卷積計算完成后,通過DMA寫回輸出數據時,上一輪已經完成DMA寫回輸出數據。

2.3 多核映射

3 算法并行化操作過程

4 實驗評估

4.1 測試環境

為了測試并行分組卷積算法的加速及優化效果,本文使用基于ImageNet數據集訓練的AlexNet模型中的5個分組卷積層中的卷積計算作為測試樣例。其中使用的卷積計算參數設置如表1所示。

4.2 算法可行性分析

為了檢驗并行分組卷積算法的可行性,采用加速比來衡量算法的加速情況。利用五個卷積層測試樣例,對該算法結果的正確性進行驗證。將并行分組卷積算法產生的計算結果與Nvidia深度學習庫中標準分組卷積計算結果對比,采用平均絕對誤差和最大絕對誤差評估計算精度誤差。如表2所示,五個測試樣例的精度以最大絕對誤差衡量,均不超過0.95,以平均絕對誤差衡量,最大平均絕對誤差為6.74E-06,充分說明產生精度誤差的結果數據點較少,結果具有可靠性。

同時為保證結果的穩定性,取算法運行10次平均運行時間來計算加速比。實驗結果如圖8所示。

從圖8可以看出,隨著分組卷積逐層計算,逐漸縮小特征圖、增深輸入通道,其加速比顯著增加,最高達到了79.5。這是因為并行分組卷積算法設計了適應硬件結構的多核映射策略。通過并行分組卷積算法,將數據塊均勻分配到各個從核并行計算,在減少核間通信、避免數據傳輸損耗的同時,保證了各從核負載均衡,提高了算法的計算效率。隨著卷積層的深入,并行分組卷積算法的加速效果逐漸明顯,實驗表明,并行分組卷積算法適用于卷積神經網絡模型前向推理階段。

4.3 并行分組卷積算法加速效果分析

圖10展示了相對于串行分組卷積計算,使用并行分組卷積算法計算分組卷積的加速效果。在5個卷積計算測試用例中,為了可以對并行分組卷積算法進行后續的數據并行處理工作,本文中輸入通道數均為32的倍數,不足32則用零填充。使用并行分組卷積算法計算分組卷積的最大加速比分別為79.5,最大有效算力為186.7 MFLOPS。在Conv_2和Conv_5中,分組后的M可以按照Mblk=2均勻分配到64個從核中,綜合從核的使用情況及任務量的大小看出,此時可以達到峰值算力,加速效果較好。

4.4 優化并行分組卷積算法及優化效果分析

圖11展示了使用SIMD指令進行數據并行處理后,對并行分組卷積算法的加速情況。本文測試使用SIMD乘法及歸約操作來處理分組卷積計算中的乘加運算。實驗結果表明,在5個卷積計算測試用例中,計算過程中存在不足32而進行填充的操作,產生了一定的時間損耗,因此,加速比尚未達到最高值。但相對于優化前的并行分組卷積算法,最低加速比達到7.0,最高加速比達到10.2。由此可看出,數據間的并行處理是一種可行的并行優化方法。

5 結束語

本文從提高分組卷積計算速度的角度出發,設計了一種并行分組卷積加速算法,通過軟硬件結合的方式,優化了分組卷積計算,在計算性能上,最大有效算力可達到186.7 MFLOPS,以及79.5的最高加速比。實驗結果表明,在資源受限的情況下,本文提出的并行分組卷積算法可以大幅度提高分組卷積計算效率,節省網絡訓練時間。除此之外,本文還利用SIMD指令,對并行分組卷積算法進行初步優化,相對優化前的并行分組卷積算法,使用優化后并行分組卷積算法的計算加速比提高到7.0以上,可以滿足現代大多數卷積神經網絡的分組卷積計算的應用要求。未來并行分組卷積算法還需要繼續優化,下一步筆者將致力于研究如何繼續細化多核映射方法,降低核間通信損耗,以及分析使用SIMD指令達到算法性能最優的條件。

參考文獻:

[1]LeCun Y, Bottou L, Bengio Y, et al. Gradient-based learning applied to document recognition[J].Proceedings of the IEEE,1998,86(11):2278-2324.

[2]Simonyan K, Zisserman A. Very deep convolutional networks for large-scale image recognition[EB/OL].(2015-04-10).http://doi.org/10.48550/arxiv.1409.1556.

[3]Szegedy C, Liu Wei, Jia Yangqing, et al. Going deeper with convolutions[C]//Proc of IEEE Conference on Computer Vision and Pattern Recognition.Piscataway,NJ:IEEE Press,2015:1-9.

[4]Howard A G, Zhu Menglong, Chen Bo, et al. MobileNets: efficient convolutional neural networks for mobile vision applications[EB/OL].(2017-04-17).http://doi.org/10.48550/arxiv.1704.04861.

[5]Sandler M, Howard A, Zhu Menglong, et al. MobileNetV2: inverted residuals and linear bottlenecks[C]//Proc of IEEE Conference on Computer Vision and Pattern Recognition.Piscataway,NJ:IEEE Press,2018:4510-4520.

[6]Howard A, Sandler M, Chu G, et al. Searching for MobileNetV3[C]//Proc of IEEE/CVF International Conference on Computer Vision. Piscataway,NJ:IEEE Press,2019:1314-1324.

[7]劉杰,葛一凡,田明,等.基于ZYNQ的可重構卷積神經網絡加速器[J].電子學報,2021,49(4):729-735.(Liu Jie, Ge Yifan, Tian Ming, et al. Reconfigurable convolutional neural network accelerator based on ZYNQ[J].Chinese Journal of Electronics,2021,49(4):729-735.)

[8]Krizhevsky A, Sutskever I, Hinton G E. ImageNet classification with deep convolutional neural networks[J].Communications of the ACM,2017,60(6):84-90.

[9]Suda N, Chandra V, Dasika G, et al. Throughput-optimized OpenCL-based FPGA accelerator for large-scale convolutional neural networks[C]//Proc of ACM/SIGDA International Symposium on Field-Programmable Gate Arrays.New York:ACM Press,2016:16-25.

[10]Zhang Chen, Sun Guangyu, Fang Zhenman, et al. Caffeine: toward uniformed representation and acceleration for deep convolutional neural networks[J].IEEE Trans on Computer-Aided Design of Integrated Circuits and Systems,2018,38(11):2072-2085.

[11]Wang Haoyu, Ma Chengguang. An optimization of Im2col, an important method of CNNs, based on continuous address access[C]//Proc of IEEE International Conference on Consumer Electronics and Computer Engineering.Piscataway,NJ:IEEE Press,2021:314-320.

[12]Zhang Xiaofan, Wang Junsong, Zhu Chao, et al. AccDNN: an IP-based DNN generator for FPGAs[C]//Proc of the 26th IEEE Annual International Symposium on Field-Programmable Custom Computing Machines.Piscataway,NJ:IEEE Press,2018:210.

[13]George J K, Nejadriahi H, Sorger V J. Towards on-chip optical FFTs for convolutional neural networks[C]//Proc of IEEE International Conference on Rebooting Computing.Piscataway,NJ:IEEE Press,2017:1-4.

[14]Al-Shaykh O, Chen S, Mattqavell M. Introduction to the special issue on multimedia implementation[J].IEEE Trans on Circuits and Systems for Video Technology,2002,12(8):629-632.

[15]Strey A. On the suitability of SIMD extensions for neural network simu-lation[J].Microprocessors and Microsystems,2003,27(7):341-351.

[16]Slingerland N T, Smith A J. Measuring instruction sets for general purpose microprocessors:a survey,CSD-00-1122[R].[S.l.]:University of California at Berkeley,2000.

[17]Fournier J J A, Moore S. A vector approach to cryptography implementation[M]//Digital Rights Management: Technologies, Issues, Challenges and Systems.Berlin:Springer,2005:277-297.

[18]高偉,李穎穎,孫回回,等.一種改進的控制流SIMD向量化方法[J].軟件學報,2017,28(8):2046-2063.(Gao Wei, Li Yingying, Sun Huihui, et al. An improved SIMD vectorization method for control flow[J].Chinese Journal of Electronics,2017,28(8):2046-2063.)

主站蜘蛛池模板: 黄色网在线免费观看| 欧美 国产 人人视频| 亚洲色欲色欲www在线观看| 欧洲欧美人成免费全部视频| 久久婷婷综合色一区二区| 欧美性精品| 亚洲欧洲日韩久久狠狠爱| 国产一级裸网站| A级毛片无码久久精品免费| 国产经典免费播放视频| 国产后式a一视频| 色欲国产一区二区日韩欧美| 亚洲无线一二三四区男男| 99久久精品无码专区免费| 亚洲美女一级毛片| 日韩大乳视频中文字幕 | 国产成年女人特黄特色大片免费| 亚洲天堂日韩在线| 亚洲国产成人麻豆精品| 亚洲欧美日韩另类在线一| 欧美日韩亚洲国产主播第一区| 五月天婷婷网亚洲综合在线| 国产精品人莉莉成在线播放| 亚洲精品国偷自产在线91正片| 99资源在线| 欧美色99| 久久五月天国产自| 欧美日韩在线国产| 欧美高清三区| 国产精品冒白浆免费视频| 91麻豆久久久| 国产真实乱子伦精品视手机观看 | 日韩黄色在线| 亚洲日韩高清在线亚洲专区| 亚洲娇小与黑人巨大交| 成年人久久黄色网站| 精品无码国产一区二区三区AV| 99热精品久久| 国产精品思思热在线| 在线欧美日韩国产| 国产国产人成免费视频77777| 国产全黄a一级毛片| 91小视频在线观看免费版高清| 精品视频一区在线观看| 久久青青草原亚洲av无码| 中文字幕久久亚洲一区| 六月婷婷综合| 女人18毛片久久| 一级爆乳无码av| 亚洲国产日韩在线观看| 国产精品女熟高潮视频| 亚洲欧洲日韩久久狠狠爱| 久热精品免费| 亚洲精品免费网站| 日韩精品免费一线在线观看| 亚洲av综合网| 99九九成人免费视频精品| 国产一区免费在线观看| 国产精品美人久久久久久AV| 亚洲69视频| 免费播放毛片| 国产91在线免费视频| 亚洲激情99| 国产综合欧美| 尤物成AV人片在线观看| 中文字幕永久在线看| 欧美97欧美综合色伦图| 国产视频a| 国产尤物视频在线| 欧美笫一页| 91黄视频在线观看| 日韩无码黄色| 国产一区二区福利| 99中文字幕亚洲一区二区| 99一级毛片| 国产一区在线观看无码| 一级一毛片a级毛片| 欧美成人综合在线| 67194亚洲无码| 免费精品一区二区h| 日韩一区二区在线电影| 亚洲视频影院|