• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    面向低精度神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)流體系結(jié)構(gòu)優(yōu)化

    2023-01-30 10:23:38范志華吳欣欣李文明曹華偉安學(xué)軍葉笑春范東睿

    范志華 吳欣欣 李文明 曹華偉 安學(xué)軍 葉笑春 范東睿

    1 (處理器芯片全國重點(diǎn)實(shí)驗(yàn)室(中國科學(xué)院計(jì)算技術(shù)研究所) 北京 100190)

    2 (中國科學(xué)院大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 北京 100049) (fanzhihua@ict.ac.cn)

    深度神經(jīng)網(wǎng)絡(luò)(deep neural network,DNN)模型規(guī)模變得越來越大,例如AlexNet[1]和VGG16[2]網(wǎng)絡(luò)中分別包含6 000萬和1.38億個(gè)參數(shù),大規(guī)模的數(shù)據(jù)以及復(fù)雜的計(jì)算過程對(duì)硬件計(jì)算、存儲(chǔ)資源的需求也隨之加大,神經(jīng)網(wǎng)絡(luò)壓縮技術(shù)能有效緩解對(duì)計(jì)算和存儲(chǔ)的壓力.量化是一種廣泛使用的壓縮技術(shù),利用神經(jīng)網(wǎng)絡(luò)中數(shù)據(jù)的冗余性,將高精度浮點(diǎn)數(shù)據(jù)映射到使用更少位的低精度整型數(shù)據(jù)(INT8,INT4或者更低),以此降低神經(jīng)網(wǎng)絡(luò)推理的硬件開銷.

    為充分體現(xiàn)低精度神經(jīng)網(wǎng)絡(luò)的性能和能效優(yōu)勢(shì),許多面向低精度神經(jīng)網(wǎng)絡(luò)的加速器被提出.DRQ架構(gòu)[3]提出了一種基于區(qū)域的動(dòng)態(tài)量化方法,該方法可以根據(jù)激活值中的敏感區(qū)域動(dòng)態(tài)改變DNN模型的精度,并針對(duì)所提出的敏感區(qū)域算法設(shè)計(jì)了一種混合精度卷積陣列加速器.AQSS[4]基于隨機(jī)計(jì)算方法實(shí)現(xiàn)了固定精度的7 b加速器結(jié)構(gòu),該加速器通過移位器代替乘加器,提高了加速器的性能.算法與硬件架構(gòu)的配合使得此類加速器在模型準(zhǔn)確率與性能等方面可以取得良好表現(xiàn),但是此類架構(gòu)與軟件方法之間緊耦合且僅支持單一精度,使得很難適用于其他的量化算法和神經(jīng)網(wǎng)絡(luò)模型.

    由于量化算法和神經(jīng)網(wǎng)絡(luò)模型的不同,一些架構(gòu)通過支持多種精度運(yùn)算來增加靈活性.OLAccel[5]基于4 b的乘加單元對(duì)權(quán)重和激活值進(jìn)行低精度計(jì)算,同時(shí)考慮了少量高精度的離群值的存在,增加了一個(gè)額外的高精度乘加單元,用于離群值的計(jì)算.BitFusion[6]設(shè)計(jì)了精度可變的乘加單元,能夠支持精度為2的任意指數(shù)的乘加運(yùn)算.由于可以支持多精度數(shù)據(jù)的運(yùn)算,相比于前一類加速器,此類加速器能支持更多的量化方法和低精度網(wǎng)絡(luò).但是,此類加速器采用細(xì)粒度的配置方式,給編譯造成比較大的困難,并且對(duì)于計(jì)算部件的重構(gòu)會(huì)帶來額外的開銷.另外,此類架構(gòu)的時(shí)鐘頻率都受限于計(jì)算部件的設(shè)計(jì).

    數(shù)據(jù)流架構(gòu)的執(zhí)行方式與神經(jīng)網(wǎng)絡(luò)算法具有高度匹配性,并且在靈活性、性能之間具有良好權(quán)衡.Eyeriss[7]是一款典型的數(shù)據(jù)流神經(jīng)網(wǎng)絡(luò)加速器,通過減少數(shù)據(jù)移動(dòng)、實(shí)現(xiàn)本地?cái)?shù)據(jù)復(fù)用等方式最小化模型中數(shù)據(jù)移動(dòng)距離,從而降低神經(jīng)網(wǎng)絡(luò)加速器的能耗.DPU[8]面向神經(jīng)網(wǎng)絡(luò)的稀疏性對(duì)數(shù)據(jù)流架構(gòu)進(jìn)行了優(yōu)化,通過去掉與0相關(guān)的無效操作提升了數(shù)據(jù)流芯片的性能與能效.然而,現(xiàn)有數(shù)據(jù)流加速器沒有面向低精度神經(jīng)網(wǎng)絡(luò)展開研究,而且都關(guān)注計(jì)算部件的設(shè)計(jì),忽略了數(shù)據(jù)在片上存儲(chǔ)和片外存儲(chǔ)之間的傳輸問題.此外,傳統(tǒng)數(shù)據(jù)流架構(gòu)通過雙緩沖機(jī)制掩蓋數(shù)據(jù)傳輸?shù)难舆t,但是當(dāng)部署低精度(INT8,INT4)神經(jīng)網(wǎng)絡(luò)時(shí),傳輸帶寬的利用率顯著降低.這導(dǎo)致計(jì)算執(zhí)行時(shí)間無法掩蓋數(shù)據(jù)傳輸延遲,使得計(jì)算陣列完成此次計(jì)算之后不能馬上開始下一次計(jì)算,需要等待數(shù)據(jù)傳輸完成,從而降低了數(shù)據(jù)流架構(gòu)的性能和能效.

    基于以上問題,本文面向低精度神經(jīng)網(wǎng)絡(luò),對(duì)數(shù)據(jù)流架構(gòu)進(jìn)行了優(yōu)化,設(shè)計(jì)了軟硬件協(xié)同的低精度神經(jīng)網(wǎng)絡(luò)加速器DPU_Q.本文的貢獻(xiàn)有4個(gè)方面:

    1)為充分挖掘低精度卷積計(jì)算過程中的數(shù)據(jù)并行性,本文設(shè)計(jì)了靈活可重構(gòu)的計(jì)算單元,根據(jù)指令的精度標(biāo)志位動(dòng)態(tài)重構(gòu)數(shù)據(jù)通路,能高效靈活得支持多種低精度數(shù)據(jù)運(yùn)算,并實(shí)現(xiàn)計(jì)算部件的高利用率和高峰值性能;

    2)為支持低精度神經(jīng)網(wǎng)絡(luò)中復(fù)雜的訪存模式,本文設(shè)計(jì)了Scatter引擎,能對(duì)低精度數(shù)據(jù)進(jìn)行拼接、預(yù)處理,以滿足高層次/片上存儲(chǔ)對(duì)數(shù)據(jù)排列的格式要求,能有效應(yīng)對(duì)復(fù)雜的訪存模式并解決低精度數(shù)據(jù)傳輸帶寬利用率低的問題;

    3)為充分發(fā)揮數(shù)據(jù)流架構(gòu)的性能優(yōu)勢(shì),本文提出了一種數(shù)據(jù)流圖映射算法,兼顧負(fù)載均衡的同時(shí)減少了訪存和數(shù)據(jù)流圖節(jié)點(diǎn)之間的數(shù)據(jù)傳輸帶來的開銷;

    4)通過實(shí)驗(yàn)評(píng)估,相比于同精度的 Titan Xp GPU,DPU_Q可以獲得最高3.18倍的性能提升和4.49倍的能效提升.相比于同精度的Eyeriss加速器,DPU_Q可以最大獲得6.05倍性能提升和1.6倍能效提升,相比于BitFusion加速器,可以最大獲得1.52倍性能提升和1.13倍能效提升.

    1 相關(guān)研究

    量化是一種神經(jīng)網(wǎng)絡(luò)壓縮技術(shù),通過將神經(jīng)網(wǎng)絡(luò)模型中的數(shù)據(jù)映射到使用更少位的數(shù)據(jù)域,減小神經(jīng)網(wǎng)絡(luò)存儲(chǔ)規(guī)模、簡化計(jì)算過程從而加快神經(jīng)網(wǎng)絡(luò)訓(xùn)練和推理的速度.量化的對(duì)象常為神經(jīng)網(wǎng)絡(luò)中的權(quán)值[9]、激活值[10]和反向傳播中的梯度[11].常見的低精度有 16 b,8 b,4 b.這些低精度神經(jīng)網(wǎng)絡(luò)經(jīng)過量化、重訓(xùn)練過程之后,能夠保證模型準(zhǔn)確率損失在可接受的范圍內(nèi),因此,面向低精度神經(jīng)網(wǎng)絡(luò)的量化算法和體系結(jié)構(gòu)研究成為計(jì)算機(jī)領(lǐng)域的研究熱點(diǎn).表1展示了具有代表性的低精度神經(jīng)網(wǎng)絡(luò)加速器.

    為充分體現(xiàn)低精度神網(wǎng)絡(luò)的性能和能效優(yōu)勢(shì),許多面向低精度神經(jīng)網(wǎng)絡(luò)的加速器被提出[3-7].DRQ[3]架構(gòu)根據(jù)激活值矩陣中敏感區(qū)域的特征,動(dòng)態(tài)改變神經(jīng)網(wǎng)絡(luò)網(wǎng)絡(luò)的精度,并且從硬件架構(gòu)層面動(dòng)態(tài)適配模型精度,設(shè)計(jì)了支持多種混合精度的卷積計(jì)算陣列.AQSS[7]架構(gòu)則是基于隨機(jī)計(jì)算的計(jì)算模式,設(shè)計(jì)了7 b精度的加速器微架構(gòu),并且使用移位器實(shí)現(xiàn)乘加計(jì)算,顯著提升了計(jì)算性能和效率.然而,基于隨機(jī)計(jì)算的架構(gòu)需要額外的資源開銷,例如隨機(jī)數(shù)據(jù)生成、預(yù)處理等.以上述DRQ和AQSS為代表的、與軟件算法緊耦合的架構(gòu)的缺點(diǎn)是靈活性較差,很難適用于其他的量化算法、不同的神經(jīng)網(wǎng)絡(luò)模型以及模型精度.

    由于量化算法和神經(jīng)網(wǎng)絡(luò)模型的不同,單一精度使加速器的靈活性受限,因此,一些架構(gòu)通過支持多種精度運(yùn)算來增加靈活性.OLAccel[5]基于4 b的乘加單元對(duì)權(quán)重和激活值進(jìn)行低精度計(jì)算,同時(shí)考慮了少量高精度的離群值的情況.增加了一個(gè)高精度乘加單元,用于計(jì)算離群值,避免高精度與低精度計(jì)算單元的更新帶來的一致性問題.BitFusion[6]引入了動(dòng)態(tài)比特級(jí)融合/分解思想,是一種可變精度的比特級(jí)加速器,它由一組可組合的比特級(jí)乘加單元組成,動(dòng)態(tài)融合以匹配單個(gè)DNN層的精度.該加速器的缺點(diǎn)在于細(xì)粒度的可重構(gòu)運(yùn)算部件使編程和算法移植變得困難,而且此類架構(gòu)的時(shí)鐘頻率都受限于計(jì)算部件的設(shè)計(jì).通過此類加速器的設(shè)計(jì)思想我們得到啟發(fā),低精度神經(jīng)網(wǎng)絡(luò)加速器的設(shè)計(jì)是需要同時(shí)支持低精度運(yùn)算與部分高精度運(yùn)算,一方面能在性能與模型準(zhǔn)確率的權(quán)衡中獲得最大收益,另一方面還可以支持更多的量化方法和網(wǎng)絡(luò)模型,增加架構(gòu)的靈活性.

    數(shù)據(jù)流架構(gòu)的執(zhí)行方式與神經(jīng)網(wǎng)絡(luò)算法具有高度匹配性,并且在靈活性、粗粒度可重構(gòu)性、性能之間具有良好權(quán)衡.Eyeriss[7]在整個(gè)模型中使用16 b的量化數(shù)據(jù)進(jìn)行推理,并且通過減少某些數(shù)據(jù)移動(dòng)、實(shí)現(xiàn)本地?cái)?shù)據(jù)復(fù)用等方式最小化神經(jīng)網(wǎng)絡(luò)模型中數(shù)據(jù)移動(dòng)距離,從而降低神經(jīng)網(wǎng)絡(luò)加速器的能耗,但Eyeriss由于精度較大,使其加速效果并不顯著.DPU[8]面向稀疏神經(jīng)網(wǎng)絡(luò)對(duì)數(shù)據(jù)流處理器進(jìn)行了優(yōu)化.然而,現(xiàn)有數(shù)據(jù)流加速器沒有面向低精度神經(jīng)網(wǎng)絡(luò)展開研究,更重要的,現(xiàn)有數(shù)據(jù)流架構(gòu)側(cè)重關(guān)注數(shù)據(jù)流計(jì)算單元和數(shù)據(jù)流圖映射方面的研究,并未關(guān)注數(shù)據(jù)在片上存儲(chǔ)和片外存儲(chǔ)之間的傳輸.

    2 背 景

    2.1 深度神經(jīng)網(wǎng)絡(luò)

    DNN主要由多個(gè)卷積層組成,它們占據(jù)整個(gè)網(wǎng)絡(luò)處理約85%的計(jì)算時(shí)間[12],這些卷積層執(zhí)行高維的卷積計(jì)算.卷積層在輸入特征圖 (input feature map,Ifmap)上應(yīng)用卷積核(kernel)以生成輸出特征圖(output feature map,Ofmap).卷積層的輸入數(shù)據(jù)由 1 組2維輸入特征圖組成,每個(gè)特征圖稱為1個(gè)通道,多個(gè)通道的輸入組成1個(gè)輸入圖像,每個(gè)通道的特征值都與1個(gè)不同的2維濾波器(filter)進(jìn)行卷積運(yùn)算,通道上的每個(gè)點(diǎn)的卷積結(jié)果相加得到1個(gè)通道的輸出特征圖.卷積層的計(jì)算為

    2.2 低精度神經(jīng)網(wǎng)絡(luò)

    低精度神經(jīng)網(wǎng)絡(luò)是經(jīng)過量化操作之后得到的神經(jīng)網(wǎng)絡(luò)模型,量化能夠減少神經(jīng)網(wǎng)絡(luò)模型中數(shù)據(jù)的精度,縮小神經(jīng)網(wǎng)絡(luò)的規(guī)模,簡化計(jì)算來加速神經(jīng)網(wǎng)絡(luò)的訓(xùn)練或推理過程.

    量化的過程可以描述為將網(wǎng)絡(luò)中的參數(shù)分成不同的簇,同一簇中的參數(shù)共享相同的量化值,量化之后對(duì)參數(shù)進(jìn)行編碼,將量化后的參數(shù)轉(zhuǎn)換為二進(jìn)制編碼來存儲(chǔ).常見的量化算法有線性映射、k-means聚類;常見的編碼方式有固定長度的二進(jìn)制編碼和變長的霍夫曼編碼.

    表2展示了具有代表性的低精度神經(jīng)網(wǎng)絡(luò)及其數(shù)據(jù)精度.Q_CNN[13]是將卷積神經(jīng)網(wǎng)絡(luò)中的權(quán)值量化,對(duì)于圖像識(shí)別應(yīng)用能顯著提升神經(jīng)網(wǎng)絡(luò)的性能并減少存儲(chǔ)開銷.EIA[14]將權(quán)值和激活值都量化成8 b定點(diǎn)數(shù)據(jù),DFP[15]和LSQ[16]將網(wǎng)絡(luò)中的權(quán)重和激活值等數(shù)據(jù)量化成多個(gè)不同的數(shù)據(jù)精度,而QIL[17]將權(quán)值和激活值量化成4 b數(shù)據(jù).

    Table 2 Representative Low-Precision Neural Networks表2 代表性低精度神經(jīng)網(wǎng)絡(luò)

    參考文獻(xiàn)[18]中的方法,分別對(duì)AlexNet和 VGG16網(wǎng)絡(luò)進(jìn)行量化、微調(diào),不同數(shù)據(jù)位寬與網(wǎng)絡(luò)模型精度損失的關(guān)系如圖1所示.對(duì)于VGG16網(wǎng)絡(luò),數(shù)據(jù)位寬少于8 b時(shí),模型的準(zhǔn)確率就會(huì)出現(xiàn)明顯下降.而對(duì)于AlexNet網(wǎng)絡(luò),數(shù)據(jù)位寬至少為4 b時(shí),可以保證模型的準(zhǔn)確率.

    Fig.1 Relationship between the accuracy loss of the neural network model and the quantization of bit-width圖1 神經(jīng)網(wǎng)絡(luò)模型準(zhǔn)確率損失與數(shù)據(jù)位寬的關(guān)系

    2.3 數(shù)據(jù)流架構(gòu)

    DPU[8]是一款典型的粗粒度數(shù)據(jù)流架構(gòu),采用數(shù)據(jù)流程序執(zhí)行模型.計(jì)算機(jī)程序通過數(shù)據(jù)流圖表示,數(shù)據(jù)流圖由節(jié)點(diǎn)和連接節(jié)點(diǎn)的有向邊構(gòu)成.節(jié)點(diǎn)表示計(jì)算過程,節(jié)點(diǎn)之間的有向邊表示數(shù)據(jù)依賴關(guān)系.計(jì)算節(jié)點(diǎn)是一個(gè)指令集合,各節(jié)點(diǎn)之間的調(diào)度與執(zhí)行采用非搶占機(jī)制.借助于這種特殊的計(jì)算方式,DPU在功能靈活性方面與控制流驅(qū)動(dòng)處理器相似,在能效上接近專用處理器芯片.

    圖2展示了DPU的整體架構(gòu),該架構(gòu)由2維PE(process element)陣 列 、 微 控 制 器 和 DMA(direct memory access)組成.DPU作為協(xié)處理器,通過接口與主機(jī)端進(jìn)行交互.由于DMA傳輸不占用計(jì)算資源且控制簡單,所以,DPU使用DMA作為片上與片外存儲(chǔ)之間數(shù)據(jù)傳輸?shù)牟考?

    Fig.2 Overall architecture of DPU圖2 DPU 架構(gòu)

    PE陣列由多個(gè)同構(gòu)PE、片上網(wǎng)絡(luò)和片上存儲(chǔ)SPM(scratchpad memory)組成.片上存儲(chǔ) SPM 負(fù)責(zé)存儲(chǔ)指令和數(shù)據(jù),并由2塊相同大小的SPM塊組成,目的是通過雙緩沖機(jī)制掩蓋數(shù)據(jù)傳輸?shù)难舆t.片上網(wǎng)絡(luò)將PE陣列組織為2維mesh拓?fù)浣Y(jié)構(gòu),并負(fù)責(zé)在PE之間傳輸配置信息和數(shù)據(jù).

    在每個(gè)PE內(nèi)部,由路由、控制單元、寄存器堆、流水線執(zhí)行單元組成.為充分利用數(shù)據(jù)并行性,流水線執(zhí)行單元使用單指令多數(shù)據(jù)(single instruction multiple data,SIMD)技術(shù),進(jìn)入流水線執(zhí)行單元的矢量寄存器中都包含多個(gè)數(shù)據(jù).為了提高PE計(jì)算部件的利用率,DPU采用解耦合的流水線設(shè)計(jì),將訪存、計(jì)算部件解耦合,訪存部件采用傳統(tǒng)5級(jí)流水,計(jì)算部件采用4級(jí)流水,減少了訪存階段.

    微控制器負(fù)責(zé)控制PE陣列的執(zhí)行,還負(fù)責(zé)與主機(jī)端進(jìn)行通信.主機(jī)端向微控制器發(fā)送啟動(dòng)信號(hào)以及數(shù)據(jù)流圖映射等配置信息,微控制器啟動(dòng)并配置DMA,DMA將片外存儲(chǔ)中的數(shù)據(jù)加載至PE陣列的SPM中.微控制器配置并啟動(dòng)PE陣列,每個(gè)PE獲得映射的數(shù)據(jù)流節(jié)點(diǎn),根據(jù)節(jié)點(diǎn)中的指令,從SPM中加載數(shù)據(jù),進(jìn)入流水線單元執(zhí)行.當(dāng)PE陣列執(zhí)行結(jié)束后,微控制器向主機(jī)端發(fā)送結(jié)束信息.DMA負(fù)責(zé)片上SPM中的結(jié)果傳回片外存儲(chǔ).在此過程中,片上網(wǎng)絡(luò)負(fù)責(zé)PE之間傳遞配置信息與數(shù)據(jù).

    3 研究動(dòng)機(jī)

    3.1 計(jì)算單元精度不匹配

    在傳統(tǒng)數(shù)據(jù)流架構(gòu)中,計(jì)算單元的數(shù)據(jù)通路寬度為32 b,與低精度神經(jīng)網(wǎng)絡(luò)中的數(shù)據(jù)寬度不匹配,不能充分利用低精度數(shù)據(jù)的性能、能耗優(yōu)勢(shì).圖3展示了數(shù)據(jù)流架構(gòu)DPU中卷積運(yùn)算的數(shù)據(jù)通路,數(shù)據(jù)通路中的數(shù)據(jù)位寬、計(jì)算部件、單個(gè)寄存器規(guī)模都是32 b,當(dāng)計(jì)算低精度數(shù)據(jù)時(shí),比如 8 b數(shù)據(jù),雖然能夠完成計(jì)算,但在數(shù)據(jù)通路中傳輸、計(jì)算的數(shù)據(jù)的高24位全為0,造成計(jì)算資源的浪費(fèi).

    3.2 訪存模式復(fù)雜

    SIMD是一種利用數(shù)據(jù)并行性提升性能的技術(shù).SIMD指令中的操作數(shù)都是一個(gè)向量,指令可以對(duì)向量中的每個(gè)操作數(shù)執(zhí)行相同的操作和控制.SIMD的維度以8為例,即每條計(jì)算和訪存指令同時(shí)對(duì)8個(gè)數(shù)據(jù)進(jìn)行計(jì)算和讀取/寫回,每條Load指令就可以將8個(gè)分量從片上存儲(chǔ)SPM加載到PE中的矢量寄存器中.在神經(jīng)網(wǎng)絡(luò)推理過程中,8個(gè)SIMD可以并行計(jì)算不同圖像或者不同通道中相同位置的數(shù)據(jù),但是這些數(shù)據(jù)需要在SPM中順序排列.然而,在片外存儲(chǔ)中,圖像數(shù)據(jù)按照?qǐng)D像順序依次排列存儲(chǔ)在每張圖像內(nèi)部,不同通道的數(shù)據(jù)依次排列存儲(chǔ).所以在SPM中順序排列的SIMD數(shù)據(jù)在片外存儲(chǔ)中是地址離散、分散排列的,并非按照其在SPM中的順序排列.面對(duì)片外存儲(chǔ)中非連續(xù)數(shù)據(jù)的訪問,DPU對(duì)DMA進(jìn)行了優(yōu)化,不同通道之間或者不同圖像之間(SIMD之間的數(shù)據(jù)偏移)的地址偏移可以通過輸入圖像規(guī)模得到,所以根據(jù)訪存首地址以及該偏移值,即可得到8個(gè)SIMD數(shù)據(jù)在片外存儲(chǔ)的地址,DMA并行需要從片外存儲(chǔ)中讀取8個(gè)數(shù)據(jù)并依次寫回SPM即可.

    Fig.3 The data path of convolution圖3 卷積運(yùn)算的數(shù)據(jù)通路

    在低精度神經(jīng)網(wǎng)絡(luò)推理過程中,存儲(chǔ)的訪問模式變得更加復(fù)雜.圖4以8 b精度為例,展示了數(shù)據(jù)在片上和片外存儲(chǔ)中的排列格式.為了充分利用存儲(chǔ)資源和數(shù)據(jù)并行性,SPM中每個(gè)存儲(chǔ)單元存儲(chǔ)同一圖像中4個(gè)不同通道相同位置的數(shù)據(jù),每個(gè)SIMD分量對(duì)4個(gè)通道數(shù)據(jù)進(jìn)行卷積計(jì)算,而SIMD維度可以并行處理8個(gè)圖像的數(shù)據(jù),這樣能充分挖掘數(shù)據(jù)的并行性,從而提升芯片的性能.但是,在每個(gè)圖像中,相同位置不同通道的數(shù)據(jù)在片外存儲(chǔ)中也并非連續(xù)存儲(chǔ),意味著在SPM中每個(gè)地址的32 b數(shù)據(jù)在片外存儲(chǔ)中是分散排列的,因此,不同通道和不同圖像之間數(shù)據(jù)在片外存儲(chǔ)的偏移計(jì)算變得復(fù)雜.同時(shí),使用優(yōu)化后的DMA進(jìn)行數(shù)據(jù)傳輸,每次只能并行讀取8個(gè)SIMD的數(shù)據(jù),即8個(gè)圖像中單個(gè)通道的數(shù)據(jù),所以對(duì)于8 b精度,DMA需要啟動(dòng)4次,才能完成1次計(jì)算所需的4個(gè)通道數(shù)據(jù)的傳輸.

    Fig.4 Memory access patterns in low precision data圖4 低精度數(shù)據(jù)的存儲(chǔ)訪問模式

    3.3 傳輸帶寬利用率降低

    在數(shù)據(jù)流架構(gòu)DPU中,DMA負(fù)責(zé)片上SPM與片外存儲(chǔ)之間的數(shù)據(jù)搬運(yùn).與傳統(tǒng)數(shù)據(jù)流架構(gòu)一致,DPU的片上存儲(chǔ)采用雙緩沖機(jī)制,目的是用計(jì)算時(shí)間掩蓋DMA的配置和數(shù)據(jù)傳輸時(shí)間.圖5(a)展示了AlexNet網(wǎng)絡(luò)5個(gè)卷積層進(jìn)行1次DMA傳輸與1次計(jì)算的時(shí)間對(duì)比,對(duì)于32 b高精度數(shù)據(jù),每一次啟動(dòng)DPU的執(zhí)行時(shí)間遠(yuǎn)大于傳輸時(shí)間,傳輸時(shí)間完全可以通過雙緩沖機(jī)制掩蓋.然而,在數(shù)據(jù)流架構(gòu)部署低精度神經(jīng)網(wǎng)絡(luò)時(shí),基于3.2節(jié)的分析,需要多次啟動(dòng)DMA傳輸,導(dǎo)致數(shù)據(jù)傳輸時(shí)間變長,計(jì)算時(shí)間無法掩蓋傳輸延遲,使得雙緩沖機(jī)制失效.圖5展示了AlexNet網(wǎng)絡(luò)進(jìn)行INT4和INT8的傳輸時(shí)間和執(zhí)行時(shí)間.當(dāng)精度為INT8時(shí),conv3到conv5的數(shù)據(jù)傳輸時(shí)間超過了該層的執(zhí)行時(shí)間,傳輸?shù)钠骄鶐捓寐蕛H為20.05%;當(dāng)精度為INT4時(shí),AlexNet每一層都無法通過雙緩沖機(jī)制掩蓋傳輸延遲,傳輸帶寬的利用進(jìn)一步降低.如圖5(b)所示的是雙緩存機(jī)制失效,可以看出,當(dāng)?shù)趇?1層卷積運(yùn)算結(jié)束后,第i層卷積的數(shù)據(jù)還未完成從片外存儲(chǔ)到片上SPM的傳輸,導(dǎo)致第i層的計(jì)算無法在上一層結(jié)束之后立馬開始,PE陣列需要長時(shí)間處于等待數(shù)據(jù)傳輸狀態(tài),雙緩沖機(jī)制因此失去效果,使得計(jì)算單元的利用率下降,這會(huì)降低芯片的性能.

    Fig.5 Calculation and transmission overhead of different precisions in AlexNet圖5 AlexNet網(wǎng)絡(luò)不同精度的計(jì)算和傳輸開銷

    4 DPU_Q架構(gòu)

    基于對(duì)低精度神經(jīng)網(wǎng)絡(luò)和數(shù)據(jù)流架構(gòu)的分析,本文設(shè)計(jì)了面向低精度神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)流架構(gòu)DPU_Q,總體架構(gòu)如圖6所示.DPU_Q核心部件包含微控制器、Scatter引擎、雙緩沖SPM、PE計(jì)算陣列和片外存儲(chǔ).Scatter引擎負(fù)責(zé)片上SPM和片外存儲(chǔ)之間的低精度數(shù)據(jù)訪問和傳輸;PE陣列負(fù)責(zé)計(jì)算,其具有靈活可重構(gòu)的低精度卷積計(jì)算部件RPU(reconfigurableprocess unit);雙緩沖 SPM既負(fù)責(zé)數(shù)據(jù)存儲(chǔ),又掩蓋數(shù)據(jù)傳輸?shù)难舆t;微控制器負(fù)責(zé)控制各部分的功能.

    Fig.6 The overall architecture of DPU_Q圖6 DPU_Q總體架構(gòu)

    與眾多神經(jīng)網(wǎng)絡(luò)硬件加速器一樣,DPU_Q是由PE 陣列組成的空間架構(gòu)(spatial architecture).PE 之間通過片上網(wǎng)絡(luò)進(jìn)行互聯(lián),每個(gè)PE內(nèi)包含本地存儲(chǔ)和共享的片上存儲(chǔ),PE其內(nèi)包含簡單的計(jì)算單元.由于神經(jīng)網(wǎng)絡(luò)中的計(jì)算是相對(duì)簡單且規(guī)則的操作,如張量的乘加運(yùn)算,所以可以利用PE陣列的結(jié)構(gòu)計(jì)算得到有效的處理.利用PE的本地和片上共享存儲(chǔ)可以實(shí)現(xiàn)數(shù)據(jù)的時(shí)間復(fù)用,并且數(shù)據(jù)流程序執(zhí)行模型提高了程序指令級(jí)并行性的同時(shí),數(shù)據(jù)流圖節(jié)點(diǎn)之間的數(shù)據(jù)傳輸實(shí)現(xiàn)數(shù)據(jù)的空間復(fù)用,從而減少存儲(chǔ)訪問.

    DPU_Q架構(gòu)的設(shè)計(jì)特點(diǎn)主要體現(xiàn)在3個(gè)方面:

    1)在計(jì)算部件設(shè)計(jì)方面.以提升吞吐量和性能為目標(biāo),設(shè)計(jì)了靈活可重構(gòu)的計(jì)算單元RPU,根據(jù)指令的精度標(biāo)志位動(dòng)態(tài)重構(gòu)數(shù)據(jù)通路,能高效靈活地支持多種低精度數(shù)據(jù)運(yùn)算,并且RPU內(nèi)MAC簇可以進(jìn)行通道維度并行,結(jié)合SIMD維度進(jìn)行圖像(batch)維度并行,以此充分挖掘低精度神經(jīng)網(wǎng)絡(luò)中的數(shù)據(jù)并行性.

    2)在訪存部件設(shè)計(jì)方面.以提升低精度數(shù)據(jù)傳輸帶寬利用率為目標(biāo),設(shè)計(jì)了Scatter引擎,通過在數(shù)據(jù)傳輸過程中對(duì)數(shù)據(jù)進(jìn)行重組、預(yù)處理,解決低精度數(shù)據(jù)訪存模式復(fù)雜的問題.

    3)在調(diào)度方面.以提高計(jì)算部件的利用率為目標(biāo),設(shè)計(jì)了兼顧負(fù)載均衡和數(shù)據(jù)重用的dR(data reuse)數(shù)據(jù)流圖映射算法.

    4.1 低精度卷積計(jì)算單元

    圖7展示了DPU_Q中低精度卷積計(jì)算單元的數(shù)據(jù)通路,該數(shù)據(jù)通路能夠根據(jù)指令中的精度標(biāo)志位動(dòng)態(tài)選擇可重構(gòu)計(jì)算單元中的計(jì)算部件.該數(shù)據(jù)通路由4個(gè)流水線階段組成.

    第 1 階段為取指(instruction fetch,IF).此階段根據(jù)指令寄存器(program counter,PC)的值,從指令存儲(chǔ)中獲得指令.

    第 2 階段為譯碼(instruction decode,ID).指令譯碼器對(duì)指令進(jìn)行譯碼,將指令碼(opcode)、源/目的寄存器地址、精度標(biāo)識(shí)位(precision flag)和加法樹使能信號(hào)(adder tree enable)等信息分別發(fā)送到相應(yīng)的狀態(tài)寄存器和寄存器文件中.

    第 3階段為指令執(zhí)行(execution, EX).RPU 根據(jù)精度標(biāo)識(shí)位動(dòng)態(tài)選擇執(zhí)行部件(MAC簇).然后,根據(jù)ID階段解析的源寄存器地址獲取源操作數(shù),進(jìn)行計(jì)算.加法樹從流水線寄存器(EX stage)中獲取使能信號(hào),根據(jù)精度標(biāo)識(shí)位將RPU計(jì)算的結(jié)果進(jìn)行求和.另外,該階段還包含了可選的量化部件,目的是為上層軟件算法提供支持.

    第 4 階段為寫回(write back, WB).在該階段,計(jì)算結(jié)果被寫回目的寄存器或者數(shù)據(jù)存儲(chǔ)中.

    在DPU_Q的實(shí)現(xiàn)中,精度標(biāo)志位設(shè)計(jì)為2 b寬度,用于表示 INT4,INT8,INT16,INT32 這 4 種精度.對(duì)應(yīng)地,RPU中包含了8個(gè)INT4的MAC簇、4個(gè)INT8的MAC簇、2個(gè)INT16的MAC簇以及1個(gè)INT32的MAC.RPU根據(jù)精度標(biāo)志位選取MAC簇,并建立MAC簇與寄存器堆、加法樹之間的線路鏈接.RPU和寄存器堆、加法樹之間的線路連接寬度都為32 b,在RPU內(nèi)部,不同精度的MAC簇的計(jì)算總的數(shù)據(jù)寬度也為32 b,目的是可以充分利用部件之間線路鏈接和寄存器文件.另一方面,結(jié)合卷積的算法特點(diǎn),同一MAC簇的MAC可以并行計(jì)算同一圖像不同通道的數(shù)據(jù),充分利用低精度神經(jīng)網(wǎng)絡(luò)通道間的并行性.在DPU_Q中,向量SIMD不同維度用于不同圖像之間的并行,單個(gè)SIMD內(nèi)對(duì)相同圖像的不同通道數(shù)據(jù)進(jìn)行并行,以此進(jìn)一步提高計(jì)算并行性和吞吐量.

    Fig.7 The data path of low-precision convolution in DPU_Q圖7 DPU_Q中低精度卷積的數(shù)據(jù)通路

    4.2 Scatter引擎

    Scatter引擎主要包括調(diào)度單元、Aggregator和Translator這3部分,如圖8所示.調(diào)度單元由地址計(jì)算單元和控制模塊組成.調(diào)度單元一方面負(fù)責(zé)計(jì)算多個(gè)圖像和通道數(shù)據(jù)在片外存儲(chǔ)中的地址;另一方面負(fù)責(zé)控制Aggregator和Translator的執(zhí)行.Aggregator完成低精度數(shù)據(jù)的拼接,由多個(gè)插槽和用于同步的計(jì)數(shù)器組成.Translator負(fù)責(zé)SIMD數(shù)據(jù)格式轉(zhuǎn)換,由8個(gè)SIMD數(shù)據(jù)隊(duì)列、分發(fā)單元和同步單元組成.

    調(diào)度單元根據(jù)圖像特征(map_feature)、訪存地址(mem_addr)和精度(precision)可以得到參與計(jì)算的每張圖像和每個(gè)通道的首地址.圖像特征是個(gè)3元組(x_slice,y_slice,z_slice),分別表示圖像的寬、高和通道規(guī)模.根據(jù)圖像特征三元組和精度可得到每個(gè)圖像在片外存儲(chǔ)中的偏移,根據(jù)x_slice、y_slice和精度便可得到圖像內(nèi)每個(gè)通道的偏移,地址計(jì)算單元根據(jù)上述輸入信息得到訪存地址表,表中記錄需要訪問的片外存儲(chǔ)地址.控制模塊根據(jù)精度信息,首先生成Aggregator和Translator的控制信息.如果精度為32 b數(shù)據(jù),Aggregator處于閑置狀態(tài),數(shù)據(jù)不會(huì)通過Aggregator,直接從片外存儲(chǔ)進(jìn)入Translator.如果是低精度數(shù)據(jù),控制模塊負(fù)責(zé)提供Aggregator同步所需的s_counter信號(hào).最后,控制模塊負(fù)責(zé)給Translator提供寫地址信息spm_addr.

    Aggregator負(fù)責(zé)同一張圖像不同通道低精度數(shù)據(jù)的拼接,由多個(gè)插槽和同步計(jì)數(shù)器組成.Scatter引擎根據(jù)調(diào)度單元生成的訪存地址表讀取數(shù)據(jù),每張圖像中相同點(diǎn)不同通道的數(shù)據(jù)依次寫進(jìn)對(duì)應(yīng)插槽中.每次在插槽中寫入1個(gè)數(shù)據(jù),對(duì)應(yīng)的同步計(jì)數(shù)器值減1,插槽是一個(gè)32 b的存儲(chǔ)單元,插槽的同步計(jì)數(shù)器歸零意味著插槽中已經(jīng)完成多個(gè)低精度通道數(shù)據(jù)的拼接,然后,Aggregator將該32 b數(shù)據(jù)單元傳輸至Translator.其中,同步計(jì)數(shù)器的初始值由調(diào)度單元生成s_counter信號(hào)提供.

    Fig.8 The structure of the Scatter engine圖8 Scatter引擎結(jié)構(gòu)圖

    Translator負(fù)責(zé)SIMD數(shù)據(jù)格式轉(zhuǎn)換,由分發(fā)器、SIMD數(shù)據(jù)隊(duì)列和同步單元組成.分發(fā)單元接受來自Aggregator或者片外存儲(chǔ)的數(shù)據(jù),將不同圖像的數(shù)據(jù)送入不同的SIMD數(shù)據(jù)隊(duì)列中,SIMD數(shù)據(jù)隊(duì)列由先入先出(first in first out,F(xiàn)IFO)隊(duì)列組成,同步單元使用bitmap進(jìn)行同步操作,bitmap中紀(jì)錄每個(gè)數(shù)據(jù)隊(duì)列中隊(duì)首數(shù)據(jù)是否就緒,一旦8個(gè)數(shù)據(jù)隊(duì)列的隊(duì)首數(shù)據(jù)就緒,則根據(jù)調(diào)度單元提供的spm_addr地址,將8個(gè)數(shù)據(jù)寫入SPM對(duì)應(yīng)地址中.

    4.3 調(diào) 度

    在數(shù)據(jù)流架構(gòu)中,程序使用數(shù)據(jù)流圖表示,數(shù)據(jù)流圖(dataflow graph,DFG)記為GDFG,由一組節(jié)點(diǎn)(vertices)和連接節(jié)點(diǎn)的有向邊(edge)組成,GDFG=(V,E).在粗粒度數(shù)據(jù)流架構(gòu)中,數(shù)據(jù)流圖每個(gè)節(jié)點(diǎn)由一段代碼組成,代碼段作為基本的調(diào)度和執(zhí)行單元.

    負(fù)載均衡有利于提升數(shù)據(jù)流架構(gòu)的部件利用率從而保證數(shù)據(jù)流架構(gòu)性能的發(fā)揮,而數(shù)據(jù)流圖節(jié)點(diǎn)間的數(shù)據(jù)共享及復(fù)用能減少存儲(chǔ)訪問帶來的開銷,所以本文提出了兼顧負(fù)載均衡和數(shù)據(jù)復(fù)用的dR數(shù)據(jù)流圖映射算法.具體的算法如算法1所示.

    算法1.dR數(shù)據(jù)流圖映射算法.

    輸入:特征矩陣規(guī)模IFmap、權(quán)值矩陣規(guī)模kernel、數(shù)據(jù)精度precision、計(jì)算陣列拓?fù)銹EA、計(jì)算陣列規(guī)模PEvol、片上存儲(chǔ)容量volume;

    輸出:數(shù)據(jù)流圖GDFG=(V,E)、數(shù)據(jù)流圖節(jié)點(diǎn)V與計(jì)算陣列拓?fù)銹EA的映射關(guān)系map(V,PEA).

    ①d_volume←calculate(IFmap,kernel,precision);/*計(jì)算每層參與運(yùn)算的數(shù)據(jù)量*/

    ②instance←calculate(d_volume,volume); /*由 于某些神經(jīng)網(wǎng)絡(luò)每層數(shù)據(jù)規(guī)模較大,需要多次計(jì)算*/

    ③vertices_work←calculate(d_volume,instance,PEvol);/*保證每個(gè)PE的負(fù)載均衡*/

    ④generate(vertices_work,V); /*根據(jù)每個(gè)節(jié)點(diǎn)的工作負(fù)載,編譯生成數(shù)據(jù)流圖節(jié)點(diǎn)集合V*/

    ⑤reduce_MA(V,GDFG);/*遍歷節(jié)點(diǎn)集合V,消除相同地址的訪問指令,將具有相同訪存指令的節(jié)點(diǎn)定義為節(jié)點(diǎn)之間的數(shù)據(jù)流動(dòng)關(guān)系,實(shí)現(xiàn)數(shù)據(jù)復(fù)用*/

    ⑥SD←BreadthFirstSort(GDFG);

    ⑦ for each nodeninSDdo

    ⑧ for each PEpinPEAdo

    ⑨curruentcost←Cost(n,p);/*代價(jià)函數(shù) */

    ⑩ ifcurruentcost

    ?bestcost←curruentcost;

    ?map(n,p);

    ? endif

    ? endfor

    ?SD←SD?{n};

    ?PEA←PEA?{p};

    ? endfor

    算法1首先根據(jù)特征矩陣、權(quán)值矩陣規(guī)模和精度計(jì)算神經(jīng)網(wǎng)絡(luò)每層參與運(yùn)算的數(shù)據(jù)規(guī)模;然后根據(jù)片上存儲(chǔ)的容量計(jì)算迭代次數(shù),受限于片上存儲(chǔ)容量,某些神經(jīng)網(wǎng)絡(luò)層需要多次迭代才能完成計(jì)算.由于每次迭代計(jì)算的數(shù)據(jù)規(guī)??梢蕴崆坝?jì)算得到,所以可以根據(jù)數(shù)據(jù)規(guī)模以及PE陣列的計(jì)算規(guī)模,為每個(gè)計(jì)算單元分配均衡數(shù)據(jù)量,達(dá)到負(fù)載均衡的目的.

    根據(jù)每個(gè)PE的工作負(fù)載,編譯器生成每個(gè)數(shù)據(jù)流圖節(jié)點(diǎn)的指令,包括取數(shù)指令、計(jì)算指令等,生成了數(shù)據(jù)流圖的節(jié)點(diǎn)集合V.在reduce_MA操作中,遍歷節(jié)點(diǎn)集合V,如果節(jié)點(diǎn)之間包含了對(duì)相同地址的取數(shù)指令,意味著這些訪存指令是冗余的,只保留一個(gè)節(jié)點(diǎn)內(nèi)的訪存指令,該節(jié)點(diǎn)作為訪存節(jié)點(diǎn),去除其他節(jié)點(diǎn)的該條訪存指令.訪存節(jié)點(diǎn)作為上游節(jié)點(diǎn),其他節(jié)點(diǎn)作為該訪存節(jié)點(diǎn)的下游節(jié)點(diǎn),通過節(jié)點(diǎn)之間的數(shù)據(jù)流動(dòng)代替冗余的訪存操作,實(shí)現(xiàn)數(shù)據(jù)的復(fù)用.

    算法的下一步是程序的數(shù)據(jù)流圖GDFG到計(jì)算陣列PEA的映射.首先對(duì)數(shù)據(jù)流圖進(jìn)行寬度優(yōu)先遍歷,然后根據(jù)代價(jià)函數(shù)Cost評(píng)估每個(gè)數(shù)據(jù)流圖節(jié)點(diǎn)與不同PE映射方法的代價(jià),選取最小代價(jià)的方案進(jìn)行映射.由于數(shù)據(jù)流圖節(jié)點(diǎn)之間的依賴關(guān)系表示數(shù)據(jù)的流動(dòng),所以上下游節(jié)點(diǎn)應(yīng)該盡可能映射到相鄰的PE,這樣一方面可以減少下游節(jié)點(diǎn)的等待時(shí)間,另一方面還可以減少對(duì)片上網(wǎng)絡(luò)的壓力.所以在算法1中將每個(gè)數(shù)據(jù)流圖節(jié)點(diǎn)映射到與其所有上游節(jié)點(diǎn)歐氏距離之和最小的PE上.其中,代價(jià)函數(shù)如式(2)所示,式(2)計(jì)算待映射數(shù)據(jù)流圖節(jié)點(diǎn)為n且映射到序號(hào)為p的PE時(shí),節(jié)點(diǎn)n與其所有上游節(jié)點(diǎn)(已映射)的歐氏距離之和.

    5 實(shí)驗(yàn)設(shè)置

    5.1 實(shí)驗(yàn)平臺(tái)

    為驗(yàn)證第4節(jié)中所提方法的有效性以及評(píng)估DPU_Q處理低精度神經(jīng)網(wǎng)絡(luò)的能力,本文使用中科院計(jì)算所研發(fā)的大規(guī)模并行模擬框架SimICT[19]實(shí)現(xiàn)了時(shí)鐘精確的模擬器,模擬器配置信息如表3所示.同時(shí),實(shí)驗(yàn)中使用Verilog語言實(shí)現(xiàn)了對(duì)DPU_Q的RTL 級(jí)仿真,并且利用 Synopsys Design Compiler工具進(jìn)行綜合,使用Synopsys ICC編譯器進(jìn)行布局布線,使用Synopsys VCS進(jìn)行驗(yàn)證設(shè)計(jì).

    Table 3 Configuration Information of DPU_Q表3 DPU_Q的配置信息

    在本實(shí)驗(yàn)中,微控制器用于執(zhí)行控制程序,采用ARM架構(gòu)處理器.DPU_Q由8×8的PE陣列組成, PE中配置了8 KB的指令緩存和32 KB的數(shù)據(jù)緩存.PE中數(shù)據(jù)通路的關(guān)鍵路徑為DECODE_REG→MUX→MAC_REG,時(shí)延為 0.8 ns,最高頻率可以達(dá)到 1.25 GHz.實(shí)驗(yàn)中PE時(shí)鐘頻率設(shè)置為1 GHz.PE之間通過2維的mesh網(wǎng)絡(luò)連接,完成數(shù)據(jù)、控制信息在PE陣列的傳輸.SPM的大小配置為6 MB,用于保存數(shù)據(jù)和指令.

    在啟動(dòng)階段,主機(jī)端將DPU_Q所需要的指令和數(shù)據(jù)通過Scatter引擎從內(nèi)存拷貝到SPM中,然后配置處理器陣列控制部件來啟動(dòng)加速器的執(zhí)行.計(jì)算任務(wù)完成之后,結(jié)果數(shù)據(jù)通過Scatter從加速器的SPM中拷回片外存儲(chǔ)當(dāng)中.

    5.2 測(cè)試程序

    DPU_Q主要對(duì)低精度卷積運(yùn)算進(jìn)行優(yōu)化加速,為評(píng)估性能,實(shí)驗(yàn)選取AlexNet,VGG16網(wǎng)絡(luò)模型中的卷積層作為實(shí)驗(yàn)的測(cè)試程序,各層規(guī)模如表4所示.實(shí)驗(yàn)中使用文獻(xiàn)[18]提出的方法對(duì)AlexNet,VGG16卷積層的激活值和參數(shù)進(jìn)行量化,計(jì)算過程中保留全精度的部分和.使用基于LLVM平臺(tái)設(shè)計(jì)的編譯器,編譯器將每個(gè)卷積層編譯為數(shù)據(jù)流圖并映射到PE陣列.

    5.3 對(duì)比平臺(tái)

    為評(píng)估DPU_Q性能,實(shí)驗(yàn)中選擇GPU(NVIDIA Titan Xp)、低精度神經(jīng)網(wǎng)絡(luò)加速器Eyeriss和BitFusion作為對(duì)比平臺(tái).需要說明的是,由于cuDNN暫無法支持INT4,所以GPU平臺(tái)僅使用cuDNN實(shí)現(xiàn)INT8神經(jīng)網(wǎng)絡(luò);參考文獻(xiàn)[4]中的方法,實(shí)現(xiàn)了INT8的Eyeriss加速器.實(shí)驗(yàn)中使用部件利用率評(píng)估映射算法的有效性,部件利用率計(jì)算為

    Table 4 Benchmark Information表4 測(cè)試程序信息

    6 結(jié)果分析

    6.1 Scatter引擎收益

    圖9展示了DPU_Q在執(zhí)行不同精度的AlexNet和VGG16網(wǎng)絡(luò)時(shí)數(shù)據(jù)傳輸和執(zhí)行的時(shí)間對(duì)比,其中傳輸時(shí)間指Scatter引擎進(jìn)行數(shù)據(jù)傳輸?shù)臅r(shí)間,執(zhí)行時(shí)間指PE陣列計(jì)算時(shí)間.圖9(a)中AlexNet和VGG16網(wǎng)絡(luò)沒有經(jīng)過量化,對(duì)于每一層計(jì)算執(zhí)行時(shí)間都超過該層數(shù)據(jù)在片上SPM和片外存儲(chǔ)之間的傳輸延遲,DPU_Q可以通過雙緩沖機(jī)制掩蓋數(shù)據(jù)的傳輸延遲,對(duì)性能不會(huì)造成影響.

    圖9(b)(c)分別為 INT8 和 INT4精度下,DPU_Q部署AlexNet和VGG16網(wǎng)絡(luò)時(shí)計(jì)算執(zhí)行時(shí)間和傳輸時(shí)間的對(duì)比.得益于Scatter引擎,低精度數(shù)據(jù)的數(shù)據(jù)傳輸延遲不會(huì)超過計(jì)算部件的執(zhí)行時(shí)間,雙緩沖機(jī)制完全可以發(fā)揮作用.AlexNet和VGG16網(wǎng)絡(luò)在不同精度下的傳輸帶寬平均利用率為80.01%.

    Fig.9 Data transmission and execution time proportion of each layer of AlexNet and VGG16圖9 AlexNet和VGG16各層的數(shù)據(jù)傳輸和執(zhí)行時(shí)間占比

    因此,實(shí)驗(yàn)證明了Scatter引擎可以有效解決低精度神經(jīng)網(wǎng)絡(luò)復(fù)雜的訪存模式和帶寬利用率降低的問題,解決了低精度神經(jīng)網(wǎng)絡(luò)執(zhí)行過程中雙緩沖機(jī)制面臨失效的問題.

    6.2 性能對(duì)比

    圖10展示了不同精度下DPU_Q相對(duì)于DPU的性能提升.對(duì)于AlexNet和VGG16網(wǎng)絡(luò),INT4精度下,DPU_Q的性能達(dá)到了最佳,分別是DPU的7.9倍和7.7倍.當(dāng)精度為INT8和INT16時(shí),DPU_Q相對(duì)于DPU性能分別平均提升了3.80倍和1.89倍.DPU_Q的性能提升得益于RPU的設(shè)計(jì),RPU可以根據(jù)精度動(dòng)態(tài)重構(gòu)數(shù)據(jù)通路,RPU內(nèi)的MAC簇可以并行計(jì)算多個(gè)通道,這使得DPU_Q具有高吞吐量并以此獲得性能的提升.當(dāng)然,當(dāng)精度縮小為1/n之后,性能并未達(dá)到理想的n倍加速,例如精度為8 b時(shí)的性能未到達(dá)32 b精度時(shí)的4倍,而是3.8倍.這是因?yàn)閿?shù)據(jù)流架構(gòu)的執(zhí)行時(shí)間包括了配置初始化時(shí)間和計(jì)算時(shí)間,配置初始化的時(shí)間并未縮短.

    Fig.10 Speedup promotion of DPU_Q over DPU圖10 DPU_Q相對(duì)于DPU的加速比提升

    圖11展示了以Eyeriss為基準(zhǔn),DPU_Q執(zhí)行AlexNet和VGG16網(wǎng)絡(luò)各層的加速比.DPU_Q執(zhí)行各層的性能都優(yōu)于Eyeriss.這是由于Eyeriss在進(jìn)行神經(jīng)網(wǎng)絡(luò)部署時(shí),僅考慮減少數(shù)據(jù)在片上的移動(dòng)距離,減少數(shù)據(jù)搬運(yùn)帶來的功耗,并未挖掘神經(jīng)網(wǎng)絡(luò)計(jì)算中的并行性.對(duì)于AlexNet,加速比最高的是conv1,其加速比是2.85,這是因?yàn)榈?層的權(quán)重矩陣規(guī)模較大、通道數(shù)較少,RPU中利用通道并行性以及SIMD間利用通道并行性的優(yōu)勢(shì)能顯著減少數(shù)據(jù)的平均執(zhí)行時(shí)間.另外得益于本文提出的映射算法能對(duì)數(shù)據(jù)進(jìn)行充分復(fù)用,使得計(jì)算部件利用率提高,加速效果更明顯.conv4和conv5的加速比較低,原因在于這2層的權(quán)重矩陣的規(guī)模很小,意味著可復(fù)用的數(shù)據(jù)占比減少,PE陣列的部件利用率下降,導(dǎo)致加速效果不明顯.當(dāng)執(zhí)行VGG16時(shí),conv2_1和conv2_2層的加速比較大,分別是8.155和8.157,這2層的通道數(shù)較少,DPU_Q加速效果明顯的原因與第1層相似.執(zhí)行AlexNet和VGG16網(wǎng)絡(luò)時(shí),DPU_Q計(jì)算平均部件利用率為76.02%.

    Fig.11 Speedup of DPU_Q over Eyeriss圖11 DPU_Q相對(duì)于Eyeriss的加速比

    圖12展示了 DPU_Q,Eyeriss,BitFusion相對(duì)于GPU的性能對(duì)比,其中圖12(a)是INT8精度的性能對(duì)比,圖12(b)是INT4精度的性能對(duì)比.對(duì)于INT8精度,當(dāng)部署AlexNet和VGG16網(wǎng)絡(luò)時(shí),DPU_Q相比于GPU可取得3.18和1.16的加速比,DPU_Q的性能是Eyeriss的1.52倍和6.05倍.當(dāng)網(wǎng)絡(luò)結(jié)構(gòu)較為簡單時(shí),Eyeriss通過最小化數(shù)據(jù)傳輸距離作為優(yōu)化目標(biāo)以及細(xì)粒度的數(shù)據(jù)流執(zhí)行方式能夠取得較好的性能表現(xiàn),但是當(dāng)網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜時(shí),較差的數(shù)據(jù)復(fù)用以及低并行性使得性能下降較為明顯.

    對(duì)于INT4精度,當(dāng)部署AlexNet和VGG16時(shí),DPU_Q相對(duì)于加速器BitFusion可以取得1.52和1.17倍的性能提升.與BitFusion相比,DPU_Q能取得較好的性能表現(xiàn),主要原因是由于BitFusion比特級(jí)的計(jì)算部件重構(gòu)會(huì)導(dǎo)致計(jì)算的數(shù)據(jù)通路較長,計(jì)算周期增加.另外,得益于DPU_Q同時(shí)利用不同圖像和不同通道維度的數(shù)據(jù)并行,實(shí)現(xiàn)了高吞吐量和性能的提升.

    Fig.12 Performance comparison of DPU_Q,BitFusion,Eyeriss over GPU圖12 DPU_Q,BitFusion,Eyeriss相對(duì)于GPU的性能對(duì)比

    6.3 能效對(duì)比

    圖13展示了4種方案的能效對(duì)比,DPU_Q的能效都優(yōu)于其他3種不同的平臺(tái).當(dāng)部署AlexNet和VGG16網(wǎng)絡(luò)時(shí),DPU_Q的能效是GPU的4.49倍和3.34倍,造成GPU能效較低的主要原因是GPU的能耗非常高(計(jì)算資源平均部件利用率為41.35%).DPU_Q的能效是 Eyeriss的1.6倍和1.38倍.雖然Eyeriss的性能表現(xiàn)不佳,但是由于其具有毫瓦級(jí)的功率,使得其在能效方面具有良好表現(xiàn).DPU_Q的能效是BitFusion的1.13和1.05倍,DPU_Q在性能方面的提升得益于挖掘了多種并行性和映射算法,但是在計(jì)算單元以及傳輸Scatter引擎等特殊部件的設(shè)計(jì)也帶來了額外能耗的開銷.

    Fig.13 Energy efficiency comparison圖13 能效對(duì)比

    6.4 硬件開銷

    實(shí)驗(yàn)中使用Verilog語言實(shí)現(xiàn)了對(duì)DPU_Q的RTL 級(jí)仿真,并且利用 Synopsys Design Compiler工具以 TSMC 12 nm 工藝進(jìn)行綜合,使用 Synopsys ICC 編譯器進(jìn)行布局布線.DPU_Q的面積和功耗分布如圖14所示,Scatter引擎所占面積比例為0.61%,功耗占比僅為0.80%.另外,DPU_Q的面積相對(duì)于DPU增加了17.6%,額定功耗增加33.59%,硬件增加的開銷主要來源是PE內(nèi)RPU多種不同精度的計(jì)算部件.

    Fig.14 Distribution of area and power consumption of DPU_Q圖14 DPU_Q的面積和功耗分布

    7 總 結(jié)

    本文結(jié)合低精度神經(jīng)網(wǎng)絡(luò)的計(jì)算需求,設(shè)計(jì)了靈活可重構(gòu)的計(jì)算單元和Scatter引擎,并提出了負(fù)載均衡和數(shù)據(jù)復(fù)用的數(shù)據(jù)流圖映射算法,設(shè)計(jì)了數(shù)據(jù)流加速器 DPU_Q.相比于同精度的 Titan Xp GPU,DPU_Q可以獲得最高3.18倍的性能提升和4.49倍的能效提升.相比于同精度的Eyeriss加速器,DPU_Q可以最大獲得6.05倍性能提升和1.6倍能效提升,相比于BitFusion加速器,可以最大獲得1.52倍性能提升和1.13倍能效提升,表現(xiàn)出良好的性能和能效優(yōu)勢(shì).本文僅針對(duì)卷積層進(jìn)行了優(yōu)化設(shè)計(jì),由于神經(jīng)網(wǎng)絡(luò)中還包括其他類型的計(jì)算,未來會(huì)面向神經(jīng)網(wǎng)絡(luò)中其他類型的計(jì)算,進(jìn)一步優(yōu)化數(shù)據(jù)流架構(gòu).

    作者貢獻(xiàn)聲明:范志華負(fù)責(zé)論文思路的提出、架構(gòu)設(shè)計(jì)、實(shí)驗(yàn)和論文的撰寫;吳欣欣負(fù)責(zé)論文思路討論和架構(gòu)設(shè)計(jì)討論;李文明負(fù)責(zé)論文架構(gòu)討論和整體質(zhì)量把控;曹華偉負(fù)責(zé)論文修改及實(shí)驗(yàn)指導(dǎo);安學(xué)軍負(fù)責(zé)論文整體思路的指導(dǎo);葉笑春負(fù)責(zé)論文整體架構(gòu)設(shè)計(jì)及修改;范東睿負(fù)責(zé)論文整體架構(gòu)設(shè)計(jì).

    麻豆精品久久久久久蜜桃| 最近手机中文字幕大全| 99热只有精品国产| 精品人妻偷拍中文字幕| 特级一级黄色大片| 又爽又黄a免费视频| 能在线免费观看的黄片| 性插视频无遮挡在线免费观看| 久久人人爽人人爽人人片va| 波多野结衣高清无吗| 国产精品1区2区在线观看.| 美女被艹到高潮喷水动态| 成年av动漫网址| 好男人在线观看高清免费视频| 精品免费久久久久久久清纯| 欧美精品国产亚洲| 黄片无遮挡物在线观看| 免费无遮挡裸体视频| 尤物成人国产欧美一区二区三区| 免费在线观看成人毛片| 一级毛片我不卡| 一夜夜www| 成人特级av手机在线观看| 久久99热这里只有精品18| 久久99精品国语久久久| 波野结衣二区三区在线| 亚洲欧美成人精品一区二区| 最近最新中文字幕大全电影3| 热99re8久久精品国产| 亚洲va在线va天堂va国产| 一夜夜www| 亚州av有码| 国产乱人视频| 婷婷精品国产亚洲av| 日日摸夜夜添夜夜添av毛片| 久久久a久久爽久久v久久| 国产精品一二三区在线看| 久久午夜福利片| 搡老妇女老女人老熟妇| 亚洲美女视频黄频| 日韩 亚洲 欧美在线| 国产精品一二三区在线看| 嫩草影院入口| 在现免费观看毛片| 亚洲内射少妇av| 国产精品无大码| 国产精品久久久久久亚洲av鲁大| 国产毛片a区久久久久| 成人午夜精彩视频在线观看| 女的被弄到高潮叫床怎么办| 国产老妇伦熟女老妇高清| 免费大片18禁| 亚洲最大成人av| 国产精品久久久久久精品电影| 亚洲乱码一区二区免费版| 插逼视频在线观看| 免费av观看视频| 精品日产1卡2卡| 久久久国产成人免费| 天美传媒精品一区二区| 国产黄a三级三级三级人| 国产伦精品一区二区三区视频9| 国产极品精品免费视频能看的| 看免费成人av毛片| 国产精品麻豆人妻色哟哟久久 | 麻豆精品久久久久久蜜桃| 丝袜美腿在线中文| 成年女人永久免费观看视频| 少妇被粗大猛烈的视频| 我的老师免费观看完整版| 看免费成人av毛片| 两性午夜刺激爽爽歪歪视频在线观看| 国产成人午夜福利电影在线观看| av女优亚洲男人天堂| 亚洲av熟女| 精品免费久久久久久久清纯| 久久综合国产亚洲精品| 亚洲欧洲日产国产| 波多野结衣高清作品| 亚洲国产欧洲综合997久久,| av免费在线看不卡| 久久久久久伊人网av| 3wmmmm亚洲av在线观看| 欧美bdsm另类| 美女黄网站色视频| 成年女人永久免费观看视频| 日韩欧美三级三区| 丰满的人妻完整版| 亚洲av.av天堂| 午夜a级毛片| 搡女人真爽免费视频火全软件| 男女下面进入的视频免费午夜| 精品人妻视频免费看| 少妇人妻一区二区三区视频| 精华霜和精华液先用哪个| 亚洲精品亚洲一区二区| 大型黄色视频在线免费观看| 在线观看av片永久免费下载| 日日啪夜夜撸| 久久99精品国语久久久| 欧美日本亚洲视频在线播放| 国产极品天堂在线| 国产真实伦视频高清在线观看| 久久人人精品亚洲av| 黄片无遮挡物在线观看| 婷婷色综合大香蕉| 亚洲成人中文字幕在线播放| 神马国产精品三级电影在线观看| 精品一区二区三区人妻视频| 婷婷精品国产亚洲av| 日韩,欧美,国产一区二区三区 | 99热这里只有精品一区| 啦啦啦啦在线视频资源| 国产亚洲欧美98| 国产中年淑女户外野战色| 久久久久性生活片| 国产视频内射| 欧美成人免费av一区二区三区| 蜜桃亚洲精品一区二区三区| 女人被狂操c到高潮| 亚洲成a人片在线一区二区| 狂野欧美白嫩少妇大欣赏| 99热这里只有是精品在线观看| 一级黄片播放器| 免费在线观看成人毛片| 一级黄片播放器| 性欧美人与动物交配| 欧美丝袜亚洲另类| 麻豆精品久久久久久蜜桃| 亚洲成a人片在线一区二区| 少妇熟女欧美另类| 韩国av在线不卡| 国产成人aa在线观看| 简卡轻食公司| 国产精品嫩草影院av在线观看| 国内精品宾馆在线| 国产精华一区二区三区| 春色校园在线视频观看| 一区二区三区免费毛片| 18禁在线无遮挡免费观看视频| 久久久久九九精品影院| 99久国产av精品国产电影| 国产亚洲av嫩草精品影院| 性色avwww在线观看| 一本久久中文字幕| 给我免费播放毛片高清在线观看| 99久久精品国产国产毛片| 男人和女人高潮做爰伦理| 欧美色视频一区免费| 国产亚洲欧美98| 精品99又大又爽又粗少妇毛片| 欧美极品一区二区三区四区| 中文字幕人妻熟人妻熟丝袜美| 欧美一级a爱片免费观看看| 99热精品在线国产| 看黄色毛片网站| 国产免费男女视频| 网址你懂的国产日韩在线| 高清午夜精品一区二区三区 | 超碰av人人做人人爽久久| 一级毛片久久久久久久久女| 色播亚洲综合网| 一边摸一边抽搐一进一小说| 久久九九热精品免费| 少妇人妻精品综合一区二区 | 啦啦啦观看免费观看视频高清| 99精品在免费线老司机午夜| 久久久久免费精品人妻一区二区| 天堂av国产一区二区熟女人妻| 99久久精品一区二区三区| 97超碰精品成人国产| 免费看日本二区| 国产高清有码在线观看视频| 少妇裸体淫交视频免费看高清| 有码 亚洲区| 中文字幕熟女人妻在线| 中文字幕熟女人妻在线| 99九九线精品视频在线观看视频| 天美传媒精品一区二区| 国产成人a∨麻豆精品| 亚洲精品影视一区二区三区av| 亚洲va在线va天堂va国产| 国产精品嫩草影院av在线观看| 国内久久婷婷六月综合欲色啪| 国产色爽女视频免费观看| 日韩视频在线欧美| 国产av麻豆久久久久久久| 久久这里有精品视频免费| 亚洲精华国产精华液的使用体验 | 91麻豆精品激情在线观看国产| 国产男人的电影天堂91| 听说在线观看完整版免费高清| 嫩草影院新地址| 中国美女看黄片| 国产淫片久久久久久久久| 99热这里只有是精品在线观看| 成熟少妇高潮喷水视频| 国产av一区在线观看免费| 国产精品麻豆人妻色哟哟久久 | av国产免费在线观看| www.色视频.com| 国产亚洲91精品色在线| 久久综合国产亚洲精品| 69av精品久久久久久| 午夜福利视频1000在线观看| 麻豆av噜噜一区二区三区| 级片在线观看| 看片在线看免费视频| 亚洲国产精品合色在线| 天堂中文最新版在线下载 | 99久国产av精品| 久久久久久久久久久丰满| 亚洲av成人精品一区久久| 久久久久久久久中文| 老熟妇乱子伦视频在线观看| 麻豆久久精品国产亚洲av| 黄片无遮挡物在线观看| 国产精品av视频在线免费观看| 日韩欧美一区二区三区在线观看| 麻豆国产97在线/欧美| 青青草视频在线视频观看| а√天堂www在线а√下载| 午夜精品在线福利| 久久精品国产亚洲网站| 亚洲成a人片在线一区二区| 午夜精品国产一区二区电影 | 午夜老司机福利剧场| 国产老妇伦熟女老妇高清| 国产精品久久久久久久久免| 国产又黄又爽又无遮挡在线| 在线播放无遮挡| 欧美区成人在线视频| 国产精品久久久久久亚洲av鲁大| 亚洲欧美精品专区久久| 日韩欧美一区二区三区在线观看| 久久精品综合一区二区三区| 国产精品女同一区二区软件| 国模一区二区三区四区视频| 免费在线观看成人毛片| 99热这里只有是精品50| 少妇的逼水好多| 欧美三级亚洲精品| 日韩精品有码人妻一区| 国产亚洲91精品色在线| 亚洲aⅴ乱码一区二区在线播放| 在线免费十八禁| 如何舔出高潮| 国产午夜精品一二区理论片| 人人妻人人澡人人爽人人夜夜 | 美女国产视频在线观看| 国产精品女同一区二区软件| 99在线视频只有这里精品首页| 啦啦啦啦在线视频资源| 成人美女网站在线观看视频| 亚洲在久久综合| 免费看a级黄色片| 天堂√8在线中文| 午夜福利在线观看吧| 久久人人爽人人片av| 国产91av在线免费观看| 午夜视频国产福利| 国产老妇女一区| 精品久久久久久久久亚洲| 国产精品国产三级国产av玫瑰| 日日摸夜夜添夜夜爱| 日韩一区二区三区影片| 国产高清三级在线| 波野结衣二区三区在线| 日本色播在线视频| a级毛片a级免费在线| 美女cb高潮喷水在线观看| 特大巨黑吊av在线直播| 狠狠狠狠99中文字幕| 91久久精品国产一区二区成人| 少妇人妻精品综合一区二区 | 久久久久久久久久成人| 国内少妇人妻偷人精品xxx网站| 黄片wwwwww| 色综合站精品国产| 亚洲婷婷狠狠爱综合网| 美女高潮的动态| 亚洲av成人精品一区久久| 国内精品一区二区在线观看| 国产精品综合久久久久久久免费| 亚洲国产精品sss在线观看| 国产三级在线视频| 午夜a级毛片| 久久精品国产亚洲av香蕉五月| 少妇裸体淫交视频免费看高清| 午夜激情欧美在线| 国产在线精品亚洲第一网站| 免费看光身美女| 国产女主播在线喷水免费视频网站 | 日韩欧美在线乱码| 亚洲成人av在线免费| 日本色播在线视频| 午夜亚洲福利在线播放| 三级毛片av免费| 大又大粗又爽又黄少妇毛片口| 国产白丝娇喘喷水9色精品| 欧美日韩在线观看h| 国产精品日韩av在线免费观看| 成人无遮挡网站| 又爽又黄无遮挡网站| 国产精品人妻久久久久久| 插逼视频在线观看| 久久精品国产自在天天线| 91在线精品国自产拍蜜月| 国产精品一二三区在线看| 看片在线看免费视频| 又粗又爽又猛毛片免费看| 国产精品人妻久久久影院| 色播亚洲综合网| 性欧美人与动物交配| 欧美高清成人免费视频www| 久久精品91蜜桃| 日本色播在线视频| 色吧在线观看| 国产私拍福利视频在线观看| 国产av在哪里看| 国产精品一区二区三区四区免费观看| 国产 一区 欧美 日韩| 51国产日韩欧美| 中国美女看黄片| 乱系列少妇在线播放| 精品久久久久久久久久免费视频| 国产亚洲精品久久久久久毛片| 国产蜜桃级精品一区二区三区| 美女内射精品一级片tv| 精品久久久久久成人av| 看十八女毛片水多多多| 精华霜和精华液先用哪个| 日韩制服骚丝袜av| 天美传媒精品一区二区| 亚洲欧美精品综合久久99| 伊人久久精品亚洲午夜| 日本与韩国留学比较| 听说在线观看完整版免费高清| 热99re8久久精品国产| 天堂av国产一区二区熟女人妻| 天天躁夜夜躁狠狠久久av| 麻豆国产97在线/欧美| 亚洲人与动物交配视频| 99热这里只有是精品50| 一级黄色大片毛片| 久久精品国产清高在天天线| videossex国产| 九九爱精品视频在线观看| 插逼视频在线观看| 爱豆传媒免费全集在线观看| 18禁裸乳无遮挡免费网站照片| 日本在线视频免费播放| 亚洲国产精品合色在线| 亚洲自拍偷在线| av视频在线观看入口| 91精品国产九色| 日本熟妇午夜| 免费观看a级毛片全部| 91在线精品国自产拍蜜月| 国产91av在线免费观看| 伦理电影大哥的女人| 99热网站在线观看| videossex国产| 日韩大尺度精品在线看网址| 国产免费一级a男人的天堂| 哪里可以看免费的av片| 在线免费观看不下载黄p国产| 欧美日本视频| 3wmmmm亚洲av在线观看| 欧美在线一区亚洲| 中文字幕免费在线视频6| 女同久久另类99精品国产91| 国产私拍福利视频在线观看| 亚洲最大成人手机在线| 亚洲丝袜综合中文字幕| 久久久午夜欧美精品| 欧美性猛交╳xxx乱大交人| 国产日本99.免费观看| 一个人看视频在线观看www免费| 黄片wwwwww| 一本久久中文字幕| 国产色婷婷99| 久久99蜜桃精品久久| 色播亚洲综合网| 精品人妻一区二区三区麻豆| 精品不卡国产一区二区三区| 日韩欧美一区二区三区在线观看| 国产亚洲精品久久久com| av专区在线播放| 蜜臀久久99精品久久宅男| 69人妻影院| 国产又黄又爽又无遮挡在线| 亚洲一区二区三区色噜噜| 又粗又硬又长又爽又黄的视频 | a级毛色黄片| 亚洲在久久综合| 免费av毛片视频| 国产亚洲精品久久久com| 天堂网av新在线| 黄片无遮挡物在线观看| 99久久无色码亚洲精品果冻| av在线老鸭窝| 三级国产精品欧美在线观看| 九色成人免费人妻av| 久久精品国产亚洲网站| 久久精品国产亚洲av涩爱 | 又爽又黄无遮挡网站| 久久久久久久久久久免费av| 97超视频在线观看视频| 欧美成人精品欧美一级黄| 国产精品一区二区三区四区免费观看| 九九久久精品国产亚洲av麻豆| 国产精华一区二区三区| 国产欧美日韩精品一区二区| 91aial.com中文字幕在线观看| 性插视频无遮挡在线免费观看| 亚洲欧美日韩高清在线视频| 亚洲真实伦在线观看| 欧美一区二区亚洲| 日本三级黄在线观看| 免费观看在线日韩| 淫秽高清视频在线观看| 中出人妻视频一区二区| 国产精品.久久久| 亚洲国产欧洲综合997久久,| 韩国av在线不卡| 黄色一级大片看看| 久久久久久久久大av| 51国产日韩欧美| 欧美激情久久久久久爽电影| 国产高清视频在线观看网站| 欧美色欧美亚洲另类二区| 岛国毛片在线播放| 亚洲av成人av| 一级av片app| 身体一侧抽搐| 国产精品女同一区二区软件| 真实男女啪啪啪动态图| 国产乱人视频| 一夜夜www| 男女那种视频在线观看| 91午夜精品亚洲一区二区三区| 成人午夜高清在线视频| 久久久精品大字幕| 人人妻人人澡欧美一区二区| 有码 亚洲区| 天天躁日日操中文字幕| 欧美潮喷喷水| 26uuu在线亚洲综合色| 亚洲国产精品成人久久小说 | 有码 亚洲区| 中文字幕制服av| 日本-黄色视频高清免费观看| 国产视频首页在线观看| 国产精品伦人一区二区| 永久网站在线| 我要搜黄色片| 亚洲欧美日韩高清在线视频| 国产一区二区三区av在线 | 伦理电影大哥的女人| 久久久久久久午夜电影| 国产精品永久免费网站| 久久精品人妻少妇| 欧美xxxx黑人xx丫x性爽| av专区在线播放| 少妇被粗大猛烈的视频| 国产精品美女特级片免费视频播放器| 亚洲在久久综合| 天堂√8在线中文| 国产精品久久电影中文字幕| 日韩人妻高清精品专区| 性插视频无遮挡在线免费观看| 免费一级毛片在线播放高清视频| 黄片wwwwww| 亚洲最大成人手机在线| 日韩国内少妇激情av| 亚洲内射少妇av| 精品久久久久久久久久久久久| 午夜福利在线在线| 99riav亚洲国产免费| 国产伦在线观看视频一区| 亚洲自偷自拍三级| 99久国产av精品| 2022亚洲国产成人精品| 精品欧美国产一区二区三| 婷婷亚洲欧美| 麻豆国产97在线/欧美| 日韩欧美国产在线观看| 只有这里有精品99| 麻豆国产av国片精品| 亚洲经典国产精华液单| 中国国产av一级| 国产色爽女视频免费观看| 男女下面进入的视频免费午夜| 久久精品国产亚洲网站| 国产午夜福利久久久久久| 日韩av在线大香蕉| 中文字幕av在线有码专区| 免费av毛片视频| 国产亚洲欧美98| 12—13女人毛片做爰片一| 午夜福利在线观看吧| 亚洲性久久影院| АⅤ资源中文在线天堂| 亚洲图色成人| 哪个播放器可以免费观看大片| 日韩 亚洲 欧美在线| 亚洲电影在线观看av| av视频在线观看入口| 亚洲国产日韩欧美精品在线观看| 黑人高潮一二区| 日本三级黄在线观看| 亚洲国产精品sss在线观看| 国产老妇伦熟女老妇高清| 成人亚洲欧美一区二区av| 免费观看人在逋| av专区在线播放| 婷婷六月久久综合丁香| 性欧美人与动物交配| 国产爱豆传媒在线观看| 久久久久九九精品影院| 国产精品乱码一区二三区的特点| 麻豆国产97在线/欧美| 日本一本二区三区精品| www.色视频.com| 中文字幕制服av| 日韩av不卡免费在线播放| 国产亚洲av嫩草精品影院| 老熟妇乱子伦视频在线观看| 中国国产av一级| 精品人妻一区二区三区麻豆| 最新中文字幕久久久久| 99热这里只有是精品在线观看| 悠悠久久av| 毛片女人毛片| 小说图片视频综合网站| 卡戴珊不雅视频在线播放| 欧美人与善性xxx| 高清毛片免费观看视频网站| 国产伦理片在线播放av一区 | 亚洲高清免费不卡视频| 国产午夜精品一二区理论片| 变态另类丝袜制服| 国产精品麻豆人妻色哟哟久久 | 日韩欧美国产在线观看| 亚洲av.av天堂| 直男gayav资源| 热99在线观看视频| 国产精品伦人一区二区| 国产av在哪里看| 少妇人妻精品综合一区二区 | 亚洲18禁久久av| 真实男女啪啪啪动态图| 国产亚洲91精品色在线| 国产精品麻豆人妻色哟哟久久 | 老司机福利观看| 国产三级在线视频| 少妇熟女欧美另类| 久久热精品热| 国产成人aa在线观看| 国产精品综合久久久久久久免费| 老司机影院成人| av.在线天堂| 99久国产av精品国产电影| 夜夜看夜夜爽夜夜摸| 男插女下体视频免费在线播放| 在线天堂最新版资源| 春色校园在线视频观看| 中文亚洲av片在线观看爽| 嫩草影院入口| 免费av不卡在线播放| 嫩草影院入口| 美女脱内裤让男人舔精品视频 | 久久精品国产鲁丝片午夜精品| eeuss影院久久| 亚洲av电影不卡..在线观看| 哪个播放器可以免费观看大片| 91精品国产九色| 国产不卡一卡二| 成年av动漫网址| 国产伦精品一区二区三区视频9| 成年av动漫网址| 久久99热这里只有精品18| 国产av一区在线观看免费| 久久精品国产亚洲av香蕉五月| 亚洲久久久久久中文字幕| 午夜a级毛片| 国产精品永久免费网站| 日韩欧美一区二区三区在线观看| 高清在线视频一区二区三区 | 婷婷亚洲欧美| 天天躁日日操中文字幕| 欧美日韩综合久久久久久| 高清毛片免费观看视频网站| 插逼视频在线观看| 久久九九热精品免费| 亚洲国产高清在线一区二区三| 日韩亚洲欧美综合| 欧美精品一区二区大全| 三级毛片av免费| 国产极品天堂在线| 久久精品久久久久久久性| 婷婷色综合大香蕉| 亚洲精品乱码久久久v下载方式| 男女做爰动态图高潮gif福利片| 国产亚洲av片在线观看秒播厂 | 久久久久九九精品影院| 亚洲电影在线观看av| 国产淫片久久久久久久久| 亚洲精品亚洲一区二区| 久久精品久久久久久久性| 久久国产乱子免费精品| 精品99又大又爽又粗少妇毛片| 日韩欧美一区二区三区在线观看| 国产成人a区在线观看|