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

    面向FT-M7002平臺(tái)點(diǎn)積算法的優(yōu)化實(shí)現(xiàn)*

    2022-11-17 11:56:06郭盼盼陳夢雪梁祖達(dá)馬曉暢許邦建
    關(guān)鍵詞:數(shù)組運(yùn)算向量

    郭盼盼,陳夢雪,梁祖達(dá),馬曉暢,許邦建

    (1.鄭州大學(xué)計(jì)算機(jī)與人工智能學(xué)院,河南 鄭州 450066;2.國家超級(jí)計(jì)算鄭州中心(鄭州大學(xué)),河南 鄭州 450001;3.湖南大學(xué)電氣與信息工程學(xué)院,湖南 長沙 410082;4.湖南大學(xué)信息科學(xué)與工程學(xué)院,湖南 長沙 410082)

    1 引言

    高性能計(jì)算在應(yīng)用領(lǐng)域、應(yīng)用規(guī)模及性能方面呈現(xiàn)快速發(fā)展態(tài)勢,在人工智能、數(shù)字經(jīng)濟(jì)、航空航天、信息安全、生物醫(yī)療和氣象預(yù)報(bào)等領(lǐng)域應(yīng)用廣泛[1,2]。數(shù)值計(jì)算對(duì)于社會(huì)應(yīng)用和科學(xué)研究越來越重要。高度結(jié)構(gòu)化的數(shù)值計(jì)算可以通過向量運(yùn)算來提升性能。向量運(yùn)算不同于傳統(tǒng)的標(biāo)量運(yùn)算,需要提高系統(tǒng)結(jié)構(gòu)的并行性。單指令流多數(shù)據(jù)流SIMD(Single Instruction Multiple Data)技術(shù)適用于大量的高速或矩陣運(yùn)算,可以有效地提高系統(tǒng)的并行處理能力[3,4]。

    數(shù)字信號(hào)處理器DSP(Digital Signal Processor)是通過數(shù)值計(jì)算來處理信號(hào)的理論和技術(shù)。目前,我國許多高校和科研機(jī)構(gòu)都在積極研究數(shù)字信號(hào)處理設(shè)備,其中國防科技大學(xué)的微電子處理器研究團(tuán)隊(duì)的成果較為突出,其先后研發(fā)了以FT-M7002為代表的系列國產(chǎn)高性能DSP芯片。與之對(duì)應(yīng),業(yè)界常用的主流高性能數(shù)字信號(hào)處理計(jì)算平臺(tái)是美國德州儀器公司(TI)推出的TMS320C6678。TMS320C6678平臺(tái)的處理器集成了8個(gè)C66x核,最高主頻可達(dá)1.25 GHz,定點(diǎn)運(yùn)算能力高達(dá)320 GMACS,浮點(diǎn)運(yùn)算能力達(dá)160 GFlops,在高性能數(shù)字信號(hào)處理計(jì)算應(yīng)用中具有極大的競爭力和優(yōu)勢。FT-M7002采用超長指令字結(jié)構(gòu)VLIW(Very Long Instruction Word)集成了2個(gè)DSP內(nèi)核和1個(gè)CPU核,主頻可達(dá)1 GHz,16位峰值性能可達(dá)200 GMACS,32位峰值性能可達(dá)200 GFlops,在對(duì)速度要求較高的浮點(diǎn)運(yùn)算中具有極大的優(yōu)勢[5 - 9]。本文研究了數(shù)字信號(hào)處理中常見的點(diǎn)積(Dot Product)算法在FT-M7002平臺(tái)上的優(yōu)化實(shí)現(xiàn)問題。

    點(diǎn)積算法是實(shí)現(xiàn)點(diǎn)乘運(yùn)算的方式之一,點(diǎn)乘是數(shù)值計(jì)算的基礎(chǔ)部分,在大規(guī)模線性代數(shù)計(jì)算中經(jīng)常被調(diào)用[10]。文獻(xiàn)[11]提出一個(gè)基于茫然傳輸(Oblivious Transfer)的高效安全點(diǎn)積協(xié)議,利用高效茫然傳輸擴(kuò)展技術(shù)大幅度降低計(jì)算開銷。文獻(xiàn)[12]將內(nèi)向(對(duì)角)向量積和一個(gè)向量的元素之和一起用于推廣同一維數(shù)的不定數(shù)向量的標(biāo)量積。 文獻(xiàn)[13]介紹了具有隨機(jī)頂點(diǎn)向量的稀疏隨機(jī)點(diǎn)積圖,并研究了其三角形數(shù)量的漸近行為。文獻(xiàn)[14]采用高階寬算術(shù)邏輯單元,提高了點(diǎn)乘運(yùn)算的速度。但是,由于處理器體系結(jié)構(gòu)不同和優(yōu)化算法的差異性,上述算法并不適用于FT-M7002平臺(tái)。

    本文面向國防科技大學(xué)自主研發(fā)的FT-M7002高性能處理器,對(duì)不同類型的點(diǎn)積算法實(shí)現(xiàn)了優(yōu)化,并進(jìn)行了性能對(duì)比。研究內(nèi)容主要包含以下幾個(gè)方面:(1)分析了FT-M7002體系結(jié)構(gòu)的特點(diǎn);(2)對(duì)不同類型的點(diǎn)積算法進(jìn)行標(biāo)量實(shí)現(xiàn);(3)在FT-M7002平臺(tái)上對(duì)(2)中的點(diǎn)積算法進(jìn)行優(yōu)化,用到的優(yōu)化方法有數(shù)據(jù)處理、DMA雙通道傳輸、向量并行優(yōu)化和SVR(Scalar Vector Register)傳輸?shù)龋?4)對(duì)不同規(guī)模不同類型點(diǎn)積算法的實(shí)驗(yàn)結(jié)果進(jìn)行了性能分析。

    2 FT-M7002芯片總體結(jié)構(gòu)

    FT-M7002是國防科技大學(xué)自主研發(fā)的一款高性能DSP處理器芯片,主頻為1 GHz,功耗在30 W以下。該芯片包含1個(gè)CPU核和2個(gè)DSP內(nèi)核,采用雙向環(huán)形互連網(wǎng)絡(luò),全芯片構(gòu)成4個(gè)結(jié)點(diǎn)掛接在環(huán)形互連網(wǎng)絡(luò)上。DSP內(nèi)核擁有32 KB的一級(jí)數(shù)據(jù)緩存和512 KB的陣列存儲(chǔ)器AM(Array Memory),核外擁有32 GB大容量DDR存儲(chǔ)空間,針對(duì)矩陣乘、FFT等運(yùn)算密集型算法進(jìn)行了高度優(yōu)化,在進(jìn)行大量數(shù)據(jù)運(yùn)算時(shí)能很好地發(fā)揮其優(yōu)勢[15 - 18]。

    如圖1所示,DSP內(nèi)核的寄存器長達(dá)512位,基于超長指令字結(jié)構(gòu),由取指單元、標(biāo)量處理單元SPU(Scalar Processing Unit)、標(biāo)向量共享寄存器SVR、向量處理單元VPU(Vector Processing Unit)、陣列存儲(chǔ)器AM和直接存儲(chǔ)訪問DMA(Direct Memory Access)等組成。其中,取指單元通過控制指令流控來完成指令獲取操作。SPU包括指令流控、標(biāo)量執(zhí)行單元SPE(Scalar Processing Element)、標(biāo)量存儲(chǔ)器SM(Scalar Memory)等。指令流控單元用于程序流控制,包括分支、中斷/異常控制等。標(biāo)量執(zhí)行單元SPE接收由指令派發(fā)部件派發(fā)的標(biāo)量運(yùn)算類指令,并在其對(duì)應(yīng)的功能運(yùn)算單元執(zhí)行接收的指令。標(biāo)量存儲(chǔ)器SM主要實(shí)現(xiàn)標(biāo)量數(shù)據(jù)訪存。SVR可以實(shí)現(xiàn)SPE和VPU之間的數(shù)據(jù)傳輸。VPU由16個(gè)同構(gòu)的向量執(zhí)行單元VPE(Vector Processing Element)的運(yùn)算陣列以及混洗/歸約部件組成。AM支持DMA和2條向量存儲(chǔ)指令的并行訪問操作,實(shí)現(xiàn)16路的向量數(shù)據(jù)訪問,為VPU提供高內(nèi)存訪問帶寬。DMA接收SPU配置的傳輸參數(shù),啟動(dòng)對(duì)特定存儲(chǔ)資源的訪問,讀操作過程和寫操作過程的數(shù)據(jù)傳輸通過DMA通道實(shí)現(xiàn)[19,20]。

    Figure 1 Architecture of FT-M7002 DSP kernel圖1 FT-M7002 DSP內(nèi)核體系結(jié)構(gòu)

    3 點(diǎn)積算法實(shí)現(xiàn)

    3.1 實(shí)數(shù)點(diǎn)積

    點(diǎn)積,又稱數(shù)量積,可以用來實(shí)現(xiàn)點(diǎn)乘算法,是歐幾里得空間的標(biāo)準(zhǔn)內(nèi)積,指實(shí)數(shù)集R上的2個(gè)向量對(duì)應(yīng)相乘再相加求和之后返回一個(gè)實(shí)數(shù)值的二元運(yùn)算[21]。運(yùn)算法則如下:設(shè)向量A=[A1,A2,…,An]和B=[B1,B2,…,Bn],那么這2個(gè)向量的點(diǎn)積定義為:A·B=A1B1+A2B2+…+AnBn。

    2個(gè)元素類型為float類型的輸入數(shù)組的點(diǎn)積實(shí)現(xiàn)如算法1所示。

    算法1DSPF_sp_dotprod_cn

    輸入:float *x,float *y,intn。

    輸出:floatsum。

    步驟1sum=0;

    步驟2 for(inti=0;i

    步驟3sum+=x[i]*y[i];}

    2個(gè)元素類型為short類型的輸入數(shù)組的點(diǎn)積實(shí)現(xiàn)如算法2所示。

    算法2DSP_dotprod_cn

    輸入:short *x,short *y,intn。

    輸出:intsum。

    步驟1sum=0;

    步驟2 for(inti=0;i

    步驟3sum+=x[i]*y[i];}

    3.2 復(fù)數(shù)點(diǎn)積

    2個(gè)復(fù)數(shù)的乘法法則如下:設(shè)A=x+yi,B=m+ni(x,y,m和n均屬于實(shí)數(shù)集R)是任意2個(gè)復(fù)數(shù),那么它們的乘積A·B=(x+yi)(m+ni)=(xm-yn)+(xn+ym)i。以此類推,2個(gè)向量的復(fù)數(shù)點(diǎn)積,運(yùn)算后實(shí)部和虛部分開存放。

    2個(gè)元素類型為float類型的輸入數(shù)組的復(fù)數(shù)點(diǎn)積實(shí)現(xiàn)如算法3所示。

    算法3DSPF_sp_dotp_cplx_cn

    輸入:float *x,float *y,intn/2。

    輸出:floatreal,floatimag。

    步驟1floatreal=0,imag=0;

    步驟2 for(inti=0;i

    步驟3real+=(x[2*i] *y[2*i]-x[2*i+1] *y[2*i+1]);

    步驟4imag+=(x[2*i] *y[2*i+1]+x[2*i+1] *y[2*i]);}

    4 面向FT-M7002平臺(tái)點(diǎn)積算法的優(yōu)化

    面向FT-M7002平臺(tái),點(diǎn)積算法的優(yōu)化需要經(jīng)過以下步驟:首先,需要對(duì)數(shù)據(jù)進(jìn)行處理;其次,向量操作在向量空間AM中執(zhí)行,需要先把數(shù)據(jù)從標(biāo)量空間傳輸?shù)较蛄靠臻g;再次,對(duì)核心計(jì)算進(jìn)行向量并行優(yōu)化;最后,將數(shù)據(jù)再從向量空間傳輸?shù)綐?biāo)量空間,返回結(jié)果值。在以上步驟中,涉及到的優(yōu)化有以下幾個(gè)方面:

    (1)數(shù)據(jù)處理;

    (2)DMA雙通道傳輸;

    (3)向量并行優(yōu)化;

    (4)SVR傳輸。

    4.1 數(shù)據(jù)處理

    由于向量處理單元有16個(gè)同構(gòu)運(yùn)算單元VPE,進(jìn)行向量運(yùn)算時(shí)這16個(gè)VPE一起參與運(yùn)算,并且執(zhí)行相同的操作,所以在運(yùn)算之前需要判斷連續(xù)的16個(gè)數(shù)據(jù)是否線性相關(guān),能否進(jìn)行相同的處理。一般向量操作只針對(duì)16的整數(shù)倍數(shù)據(jù)進(jìn)行處理,不夠16的尾部數(shù)據(jù)主要有以下3種處理方法:

    (1)填0補(bǔ)全。用0將不夠16的尾部數(shù)據(jù)補(bǔ)夠16;或者將不夠16的尾部數(shù)據(jù)所在的向量空間其它位置初始化為0。

    (2)關(guān)閉部分運(yùn)算單元VPE。向量處理單元為VPE0~VPE15,可以通過mov_to_vlr()接口控制開啟或關(guān)閉,1表示VPEx為開啟狀態(tài),0表示VPEx為關(guān)閉狀態(tài)(x的取值為0~15)。VPEx在關(guān)閉狀態(tài)下不再執(zhí)行相關(guān)指令操作,直到VPEx再次被打開。

    (3)數(shù)據(jù)作廢。即放棄不夠16的尾部數(shù)據(jù),但這可能會(huì)影響函數(shù)結(jié)果的正確性。

    經(jīng)實(shí)驗(yàn)判斷,方法3會(huì)使結(jié)果不正確,方法2反復(fù)打開或關(guān)閉VPE很費(fèi)時(shí)間。方法1中用0將不夠16的部尾數(shù)據(jù)補(bǔ)夠16是在標(biāo)量空間中進(jìn)行的,相比較而言,向量空間初始化為0所用的時(shí)間周期更少、效果更好。

    4.2 DMA雙通道傳輸

    在FT-M7002平臺(tái)中,DMA作為單核數(shù)據(jù)傳輸?shù)臉屑~,可以通過配置其傳輸參數(shù)來實(shí)現(xiàn)數(shù)據(jù)搬移。數(shù)據(jù)傳輸包括讀操作過程和寫操作過程。完成1次DMA數(shù)據(jù)搬移需要經(jīng)歷DMA參數(shù)配置、DMA啟動(dòng)搬移數(shù)據(jù)和DMA結(jié)束確認(rèn)3個(gè)過程。

    DMA數(shù)據(jù)傳輸模式包括點(diǎn)對(duì)點(diǎn)傳輸、分段數(shù)據(jù)傳輸、廣播數(shù)據(jù)傳輸、核外主機(jī)數(shù)據(jù)訪問和ET(Emulation Test)調(diào)試請(qǐng)求。DMA事務(wù)支持多種不同的啟動(dòng)方式,包括寫事件置位寄存器ESR(Event Set Register)啟動(dòng)、同步事件啟動(dòng)、參數(shù)鏈接啟動(dòng)、通道鏈接啟動(dòng)和幀同步傳輸啟動(dòng)。DMA傳輸結(jié)束確認(rèn)有2種方式:(1)通過DMA產(chǎn)生傳輸完成中斷;(2)檢測傳輸完成標(biāo)識(shí)寄存器。

    點(diǎn)對(duì)點(diǎn)傳輸是指DSP內(nèi)核通過DMA發(fā)起核內(nèi)、核外存儲(chǔ)資源之間的數(shù)據(jù)交換。傳輸源和目的中一個(gè)是DSP內(nèi)核內(nèi)存儲(chǔ)資源,另一個(gè)是核外存儲(chǔ)資源。這些點(diǎn)到點(diǎn)傳輸允許按行進(jìn)行同步,也可以按數(shù)據(jù)塊進(jìn)行同步。

    在本文點(diǎn)積算法優(yōu)化實(shí)現(xiàn)中,DMA數(shù)據(jù)傳輸模式是點(diǎn)對(duì)點(diǎn)傳輸,DMA啟動(dòng)方式是寫ESR啟動(dòng),DMA傳輸結(jié)束確認(rèn)方式是檢測傳輸完成標(biāo)識(shí)寄存器CIPR(Complete Identity Processing Register)。實(shí)現(xiàn)1次DMA傳輸搬移2個(gè)數(shù)組的數(shù)據(jù),需要對(duì)第1個(gè)參數(shù)的通道鏈接進(jìn)行配置,這樣第1個(gè)數(shù)組傳輸完畢后,可以立刻轉(zhuǎn)向下一個(gè)邏輯通道對(duì)第2個(gè)數(shù)組進(jìn)行傳輸,這里稱為DMA雙通道傳輸。DMA傳輸結(jié)束確認(rèn)后,只需要檢測1次傳輸完成標(biāo)識(shí)寄存器,節(jié)省了時(shí)間成本。

    4.2.1 DMA參數(shù)配置

    在啟動(dòng)DMA之前,需要對(duì)DMA的傳輸參數(shù)和全局寄存器進(jìn)行配置。如圖2所示,DMA參數(shù)配置由8個(gè)字構(gòu)成,每個(gè)字32位。其中,傳輸控制字1和傳輸控制字2中的參數(shù)域用來控制傳輸模式;源地址表示源數(shù)據(jù)塊首地址的低32位;源單元計(jì)數(shù)為數(shù)據(jù)塊中每個(gè)數(shù)據(jù)行中的數(shù)據(jù)單元字?jǐn)?shù);源幀計(jì)數(shù)表示源數(shù)據(jù)塊中包含的數(shù)據(jù)幀數(shù)目,值為0時(shí)表示1個(gè)幀,值為1時(shí)表示2個(gè)幀,依次類推;目的地址表示目的數(shù)據(jù)塊首地址的低32位;目的單元計(jì)數(shù)表示目的數(shù)據(jù)塊中每個(gè)數(shù)據(jù)行中的數(shù)據(jù)單元字?jǐn)?shù);目的幀計(jì)數(shù)表示目的數(shù)據(jù)塊中包含的數(shù)據(jù)幀數(shù)目[22],值為0時(shí)表示1個(gè)幀,值為1時(shí)表示2個(gè)幀,依次類推;源幀索引為源數(shù)據(jù)塊中2個(gè)數(shù)據(jù)幀之間的地址偏移量;目的幀索引為目的數(shù)據(jù)塊中2個(gè)數(shù)據(jù)幀之間的地址偏移量;塊索引表示2個(gè)數(shù)據(jù)塊之間的地址偏移量;參數(shù)鏈接地址表示連接參數(shù)地址的低16位。

    Figure 2 DMA parameters圖2 DMA參數(shù)

    DMA有16個(gè)邏輯通道,每個(gè)通道都有一個(gè)與之關(guān)聯(lián)的事件,用于觸發(fā)相應(yīng)通道的傳輸。為使用DMA雙通道傳輸,需要在第1個(gè)傳輸參數(shù)中配置其傳輸控制字1參數(shù)中的“傳輸結(jié)束中斷使能(TCINT)”值為1,“傳輸結(jié)束中斷碼(TCC)”值為 7~15,同時(shí),還需置位“事件使能寄存器(EER)”。

    TCINT位于傳輸控制字1中的第2位,1表示傳輸結(jié)束后產(chǎn)生中斷,0表示不產(chǎn)生。TCC位于傳輸控制字1中的第3~6位,取值在0000b~1111b。EER是事件控制相關(guān)的寄存器之一,有32位,0~15位為通道x(x為0~15)使能信號(hào),1為有效;16~31位保留。

    4.2.2 DMA寫ESR啟動(dòng)

    配置好DMA參數(shù)之后執(zhí)行寫ESR啟動(dòng)。DMA設(shè)置16個(gè)邏輯通道,每個(gè)邏輯通道對(duì)應(yīng)參數(shù)的一個(gè)入口。在DMA通道啟動(dòng)后,將參數(shù)讀出并提交給DMA通用通道處理,完成第1個(gè)數(shù)組的數(shù)據(jù)搬移。第1個(gè)數(shù)組傳輸結(jié)束后,通過4.1.1節(jié)中的參數(shù)配置,DMA會(huì)產(chǎn)生傳輸結(jié)束中斷碼TCC值對(duì)應(yīng)的中斷事件,從而啟動(dòng)對(duì)應(yīng)的邏輯通道7~15,立刻對(duì)第2個(gè)數(shù)組的數(shù)據(jù)進(jìn)行搬移。

    4.2.3 DMA傳輸完成標(biāo)識(shí)檢測

    由于是雙通道傳輸,沒有對(duì)DMA的第2個(gè)參數(shù)進(jìn)行通道鏈接配置,所以當(dāng)?shù)?個(gè)數(shù)組也傳輸完畢后,就可以檢測傳輸完成標(biāo)識(shí)寄存器,讀取CIPR寄存器,檢測CIPR相應(yīng)位,相應(yīng)位為1,表示傳輸結(jié)束。

    待處理通道中斷標(biāo)志寄存器CIPR有32位,第0~15位表示結(jié)束碼x(x表示0~15)的點(diǎn)到點(diǎn)傳輸結(jié)束中斷標(biāo)志位,1表示中斷,0表示無中斷;第16~31位表示結(jié)束碼x(x表示16~31)的分段數(shù)據(jù)傳輸或者廣播結(jié)束中斷標(biāo)志位,1表示中斷,0表示無中斷。一般情況下,CIPR寄存器的值初始化成0xFFFFFFFF,然后再用“for(;!(*address&0x1);)”檢測DMA傳輸是否完成。

    4.2.4 小結(jié)

    如果要實(shí)現(xiàn)2個(gè)數(shù)據(jù)類型為float的一維數(shù)組x和y的DMA雙通道傳輸,即將x和y2個(gè)標(biāo)量數(shù)組中的n個(gè)數(shù)據(jù)分別搬移到向量空間src1_v和src2_v中,由于數(shù)組的數(shù)據(jù)類型為float,則需要的空間大小為4n。若接口名稱定義為M7002_datatrans_link,則需要傳入6個(gè)參數(shù),即其DMA雙通道傳輸實(shí)現(xiàn)代碼為“M7002_datatrans_link(x,src1_v,4n,y,src2_v,4n)”。假設(shè)第1個(gè)數(shù)組x使用邏輯通道0進(jìn)行數(shù)據(jù)傳輸,第2個(gè)數(shù)組y使用邏輯通道7進(jìn)行數(shù)據(jù)傳輸,先啟動(dòng)邏輯通道0后啟動(dòng)邏輯通道7,則要在邏輯通道0上進(jìn)行通道鏈接配置,需要將其傳輸控制字1的TCINT參數(shù)域的值配置為1,TCC參數(shù)域的值配置為7,同時(shí)置位EER寄存器。由于是雙通道傳輸,邏輯通道7不需要進(jìn)行通道鏈接配置。最后,通過檢測CIPR寄存器的值來判斷DMA傳輸是否完成。

    以此類推,如果要實(shí)現(xiàn)1次DMA傳輸3個(gè)數(shù)組,即開通3個(gè)邏輯通道,則需要對(duì)前2個(gè)通道進(jìn)行通道鏈接配置,這樣可以快速查找到下一個(gè)通道,對(duì)下一個(gè)數(shù)組進(jìn)行傳輸。

    4.3 向量并行優(yōu)化

    如果數(shù)據(jù)處理已完成并傳輸?shù)较蛄靠臻g之后,就可以進(jìn)行核心計(jì)算了,向量運(yùn)算1次可以計(jì)算16個(gè)數(shù)據(jù),主要用到下列向量并行優(yōu)化。

    4.3.1 取數(shù)

    進(jìn)行計(jì)算之前,要先把數(shù)據(jù)從向量空間讀取到向量計(jì)算單元中,每次讀取16個(gè)。可以用“*++”自增來讀取,也可以用FT-M7002平臺(tái)提供的向量C接口“vec_ld()”讀取,具體使用哪種方法視情況而定。

    一般情況下,使用“*++”讀取數(shù)據(jù)比使用“vec_ld()”所用周期數(shù)要少,但“*++”只能讀取連續(xù)的16個(gè)數(shù),數(shù)據(jù)類型還要保持一致。本文的float類型點(diǎn)積(算法1和算法3)使用“vec_ld()”讀取數(shù),short類型點(diǎn)積(算法2)使用“*++”讀取數(shù)。

    4.3.2 點(diǎn)積核心計(jì)算

    算法1和算法3使用向量點(diǎn)積乘后加vec_dotp()函數(shù)進(jìn)行優(yōu)化;算法2使用復(fù)數(shù)點(diǎn)積乘后加進(jìn)行優(yōu)化,實(shí)部乘法使用vec_fcreal32()函數(shù),虛部乘法使用vec_fcimag32()函數(shù)。下面分別對(duì)這3個(gè)算法進(jìn)行核心計(jì)算的優(yōu)化。

    對(duì)算法1的核心計(jì)算優(yōu)化后代碼如下所示:

    for(inti=0;i

    tempx0=vec_ldm2(i,src1_v);

    tempy0=vec_ldm2(i,src2_v);

    tempz0=vec_dotp(tempx0,tempy0);

    tempz1=vec_add(tempz0,tempz1);

    }

    其中,向量空間src1_v和src2_v為float類型;向量運(yùn)算單元tempx0和tempy0為double類型,tempz0和tempz1為float類型。使用模二取vec_ldm2()1次循環(huán)可以取出32個(gè)float類型的數(shù)據(jù),減少了循環(huán)次數(shù)。由于類型1個(gè)float數(shù)據(jù)占32位,1個(gè)double類型數(shù)據(jù)占64位。使用點(diǎn)積函數(shù)vec_dotp()時(shí),tempx0的高32位乘以tempy0高32位的乘積加上tempx0的低32位乘以tempy0低32位的乘積,將和保存至tempz0中。最后再將點(diǎn)積之后的結(jié)果累加到tempz1中。

    對(duì)算法2的核心計(jì)算優(yōu)化后代碼如下所示:

    for(inti=0;i

    tempz0=vec_dotp(*src1_v++,*src2_v++);

    tempz1=vec_add(tempz0,tempz1);

    }

    其中,向量空間src1_v和src2_v為short類型,F(xiàn)T-M7002平臺(tái)中short類型為打包在32位操作數(shù)中的2個(gè)16位整數(shù),所以使用“*++”取數(shù)1次可以計(jì)算32個(gè)short類型的數(shù)據(jù),使循環(huán)次數(shù)減半。由于和算法1的數(shù)據(jù)類型不一樣,tempz0和tempz1為int類型,使用點(diǎn)積函數(shù)vec_dotp()時(shí),src1_v的高16位乘以src2_v高16位的乘積加上src1_v的低16乘以src2_v低16位的乘積,將和保存至tempz0中。最后再將點(diǎn)積之后的結(jié)果累加到tempz1中。

    算法3的數(shù)據(jù)類型和算法1的一樣,取數(shù)方式也一樣,只是使用的點(diǎn)積函數(shù)不一樣。對(duì)算法3的核心計(jì)算優(yōu)化后代碼如下所示:

    for(i=0;i

    tempx0=vec_ldm2(i,src1_v);

    tempy0=vec_ldm2(i,src2_v);

    temp_real=vec_fcreal32(tempx0,tempy0);

    temp_imag=vec_fcimag32(tempx0,tempy0);

    sum_real=vec_add(temp_real,sum_real);

    sum_imag=vec_add(temp_imag,sum_imag);

    }

    其中,向量空間src1_v和src2_v為float類型;向量運(yùn)算單元tempx0和tempy0為double類型,分別存放32個(gè)float類型的x和y數(shù)組數(shù)據(jù);向量運(yùn)算單元temp_real和temp_imag為float類型,分別存放點(diǎn)積后的實(shí)部和虛部結(jié)果;向量運(yùn)算單元sum_real和sum_imag為float類型,分別存放點(diǎn)積后的實(shí)部和虛部累加結(jié)果。復(fù)數(shù)實(shí)部乘法計(jì)算使用復(fù)數(shù)點(diǎn)積函數(shù)vec_fcreal32()時(shí),tempx0的高32位乘以tempy0的高32位,tempx0的低32位乘以tempy0的低32位,2個(gè)乘法結(jié)果相減后實(shí)部結(jié)果賦值給temp_real。復(fù)數(shù)虛部乘法計(jì)算使用復(fù)數(shù)點(diǎn)積函數(shù)vec_fcreal32()時(shí),tempx0的高32位乘以tempy0的高32位,tempx0的低32位乘以tempy0的低32位,2個(gè)乘法結(jié)果相減后虛部結(jié)果賦值給temp_imag。最后再分別將點(diǎn)積之后的結(jié)果累加到sum_real和sum_imag中。

    4.3.3 向量歸約

    向量歸約可以通過某種操作方式將多個(gè)向量運(yùn)算單元中的數(shù)據(jù)歸到一個(gè)或多個(gè)向量運(yùn)算單元,方式有取最大值、取最小值、加法和SIMD加法,目前FT-M7002平臺(tái)只支持int類型。算法2使用了歸約函數(shù)vec_reduc16()中的加法,用法為“tempz2=vec_reduc16(tempz1,0,0)”,tempz1存放核心計(jì)算點(diǎn)積之后累加起來的結(jié)果,在其16個(gè)VPE里面,使用向量歸約之后,結(jié)果累加到了tempz2的第1個(gè)VPE中,這樣只需要輸出一個(gè)結(jié)果,大大縮短了時(shí)間周期。

    4.4 SVR傳輸

    在向量運(yùn)算單元計(jì)算完成之后,還需要把數(shù)據(jù)傳輸出來,返回給主函數(shù)。由于點(diǎn)積核心計(jì)算完成之后,結(jié)果存放在一個(gè)向量運(yùn)算單元的1個(gè)或16個(gè)VPE中,只需要把它們傳輸出來即可,如果還使用DMA傳輸,又要經(jīng)歷DMA參數(shù)配置、DMA啟動(dòng)和DMA傳輸完成確認(rèn),這樣很費(fèi)時(shí)間。為快速傳輸少量數(shù)據(jù),F(xiàn)T-M7002提供了SVR傳輸接口,可以把數(shù)據(jù)從向量運(yùn)算單元直接傳輸?shù)綐?biāo)量中。

    數(shù)據(jù)的類型不同,使用的接口也稍有不同。在算法1優(yōu)化中,數(shù)據(jù)類型為float類型,先使用“mov_to_svr_v16sf(tempz1)”,將向量運(yùn)算單元tempz1里的16個(gè)數(shù)據(jù)搬移至SVR中;然后再使用“result[X]=mov_from_svrX_sf()”函數(shù)(X表示0~15),將SVR里的16個(gè)數(shù)據(jù)搬移到result數(shù)組中。算法2的優(yōu)化中,點(diǎn)積之后進(jìn)行了向量歸約,在4.3.3節(jié)中,使用“mov_to_svr_v16si(tempz2)”將點(diǎn)積之后的結(jié)果tempz1中的16個(gè)數(shù)據(jù)歸約到了tempz2中的第1個(gè)VPE中,數(shù)據(jù)類型為int,將向量運(yùn)算單元tempz2中的數(shù)據(jù)搬移至SVR中,然后使用“sum=mov_from_svr0()”將第1個(gè)數(shù)據(jù)從SVR中傳輸出來。算法3的優(yōu)化和算法1使用的SVR傳輸類似,這里不再贅述。

    4.5 小結(jié)

    以算法2的優(yōu)化為例,核心計(jì)算優(yōu)化后代碼如下所示:

    intsum;//存放最終返回值

    vector signed inttempz0,tempz1,tempz2;

    tempz1=vec_movi((int)0);//初始化0

    vector signed short *src1_v=(vector signed short *)0x040000000;//申請(qǐng)向量空間

    vector signed short *src2_v=(vector signed short *)0x040002000;

    //尾部數(shù)據(jù)向量空間初始化0

    vec_st(vec_movi((short)0),0,src1_v+n/32);

    vec_st(vec_movi((short)0),0,src2_v+n/32);

    //DMA雙通道傳輸

    M7002_datatrans_link(x,src1_v,n*2,y,src2_v,n*2);

    for(inti=0;i

    tempz0=vec_dotp(*src1_v++,*src2_v++);

    tempz1=vec_add(tempz0,tempz1);

    }//點(diǎn)積核心計(jì)算

    tempz2=vec_reduc16(tempz1,0,0);//向量歸約

    mov_to_svr_v16si(tempz2);//SVR傳輸

    sum=mov_from_svr0();

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

    本文實(shí)驗(yàn)數(shù)據(jù)均來源于TI官網(wǎng)dsplib庫中的數(shù)據(jù)。對(duì)其中不同類型的點(diǎn)積算法,float類型的數(shù)組是通過函數(shù)“UTIL_fillRandSP()”隨機(jī)生成(-10,10)的小數(shù),short類型的數(shù)組來源于dsplib庫給定的數(shù)據(jù)。改變輸入數(shù)組的規(guī)模n(n=128,256,512,1 024),分別在FT-M7002和TI的開發(fā)板上進(jìn)行實(shí)驗(yàn),根據(jù)開發(fā)程序統(tǒng)計(jì)DSP運(yùn)行周期數(shù)。本節(jié)主要從實(shí)驗(yàn)環(huán)境、正確性分析和性能分析3個(gè)方面對(duì)實(shí)驗(yàn)進(jìn)行分析。

    5.1 實(shí)驗(yàn)環(huán)境

    本文的實(shí)驗(yàn)環(huán)境有2個(gè):一個(gè)是FT平臺(tái)及其對(duì)應(yīng)的開發(fā)板M7002;另一個(gè)是TI平臺(tái)及其對(duì)應(yīng)的開發(fā)板TMS320C6678。具體實(shí)驗(yàn)環(huán)境參數(shù)如表1所示。

    Figure 3 Performance comparison after FT-M7002 optimization and before FT-M7002 optimization圖3 FT-M7002優(yōu)化后與FT-M7002優(yōu)化前的性能對(duì)比

    Table 1 Parameters of experimental environment表1 實(shí)驗(yàn)環(huán)境參數(shù)

    5.2 正確性分析

    在FT-M7002平臺(tái)上,分別返回優(yōu)化前后的結(jié)果,將2個(gè)結(jié)果相減取絕對(duì)值,以千分之一為標(biāo)準(zhǔn),精確度小于千分之一則輸出“Result Successful”,否則輸出“Result Failure”。結(jié)果如表2所示,對(duì)于輸入不同規(guī)模不同類型的數(shù)組,本文的點(diǎn)積算法均能輸出正確的結(jié)果。

    Table 2 Result correctness analysis

    5.3 性能分析

    本文對(duì)算法1、算法2和算法3在FT-M7002平臺(tái)上進(jìn)行不同類型的點(diǎn)積算法的實(shí)現(xiàn)和優(yōu)化。由于主頻不同,F(xiàn)T-M7002平臺(tái)的周期數(shù)置換時(shí)間公式為:周期數(shù)*16/106,置換成ms;TI平臺(tái)的周期數(shù)置換時(shí)間公式為:周期數(shù)/106,置換成ms。調(diào)用定時(shí)器的計(jì)時(shí)函數(shù)分別記錄優(yōu)化前后的算法執(zhí)行時(shí)間,從以下2個(gè)方面對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行性能分析:(1)縱向?qū)Ρ?,即FT-M7002優(yōu)化前后的性能對(duì)比;(2)橫向?qū)Ρ?,即FT-M7002優(yōu)化后的性能與TI性能對(duì)比。

    5.3.1 FT-M7002優(yōu)化后與其優(yōu)化前的性能對(duì)比

    輸入不同類型不同規(guī)模的數(shù)組,在FT-M7002平臺(tái)上進(jìn)行float類型點(diǎn)積、short類型點(diǎn)積和float類型復(fù)數(shù)點(diǎn)積的實(shí)現(xiàn)與優(yōu)化,分別記為DSPF_sp_dotprod()函數(shù)、DSP_dotprod()函數(shù)和DSPF_sp_dotp_cplx()函數(shù)。以優(yōu)化前后定時(shí)器的時(shí)間周期來計(jì)算其性能比。

    Figure 4 Performance comparison between optimized FT-M7002 and TI圖4 FT-M7002優(yōu)化后的性能與TI的性能對(duì)比

    測試結(jié)果如圖3所示,分別列出了不同類型情況下,n為128,256,512和1 024時(shí)點(diǎn)積算法優(yōu)化后的性能比,以及3個(gè)函數(shù)的平均性能。相比于算法1、算法2、算法3,DSPF_sp_dotprod()、DSP_dotprod()、DSPF_sp_dotp_cplx()3個(gè)函數(shù)向量優(yōu)化后的性能比分別為12.796 3~46.319 3, 13.666 7~54.049 0, 10.786 9~35.333 3,3個(gè)函數(shù)的平均性能比為12.416 6~45.233 8。可以看出,隨著規(guī)模n的不斷增大,性能比均不斷提高。

    5.3.2 FT-M7002優(yōu)化后的性能與TI的性能對(duì)比

    將FT-M7002 優(yōu)化后的性能與TI的性能進(jìn)行對(duì)比,測試結(jié)果如圖4所示,同樣地,分別求出了3個(gè)函數(shù)的性能比及其平均性能。相比于TI平臺(tái)的測試結(jié)果,DSPF_sp_dotprod()、DSP_dotprod()、DSPF_sp_dotp_cplx()3個(gè)函數(shù)在FT-M7002 平臺(tái)向量優(yōu)化后的性能比分別為1.841 4~6.250 5, 0.905 6~3.171 0, 1.367 8~4.137 3,3個(gè)函數(shù)的平均性能比為1.371 6~4.519 6。

    可以看到,輸入數(shù)據(jù)類型為short、n為128時(shí),性能比才達(dá)到0.905 6,這是因?yàn)門I平臺(tái)的定點(diǎn)運(yùn)算能力峰值比FT-M7002 平臺(tái)的高,n比較小時(shí),F(xiàn)T-M7002 平臺(tái)中DMA傳輸時(shí)間占比較大。隨著規(guī)模n的不斷增大,性能比也在不斷提高。

    6 結(jié)束語

    針對(duì)FT-M7002 DSP內(nèi)核體系結(jié)構(gòu)的特點(diǎn),本文完成了對(duì)不同類型不同規(guī)模大小的點(diǎn)積算法的優(yōu)化。本文結(jié)合FT-M7002平臺(tái)的特性,使用向量并行化、DMA雙通道傳輸和SVR傳輸?shù)葍?yōu)化方法,提高了程序的性能。實(shí)驗(yàn)結(jié)果表明,在FT-M7002平臺(tái)上,不同類型的點(diǎn)積算法優(yōu)化后的性能與優(yōu)化前的平均性能比為12.416 6~45.233 8。同時(shí),本文還與TI平臺(tái)的TMS320C6678處理器進(jìn)行了實(shí)驗(yàn)對(duì)比,不同類型的點(diǎn)積算法在FT-M7002平臺(tái)優(yōu)化后的性能與TI平臺(tái)的平均性能比為1.371 6~4.519 6。驗(yàn)證了本文所提出的點(diǎn)積算法優(yōu)化方法的有效性以及FT-M7002平臺(tái)的高性能計(jì)算優(yōu)勢,后續(xù)將針對(duì)其他數(shù)學(xué)算法完善其在FT-M7002平臺(tái)上的實(shí)現(xiàn)與優(yōu)化。

    猜你喜歡
    數(shù)組運(yùn)算向量
    向量的分解
    重視運(yùn)算與推理,解決數(shù)列求和題
    JAVA稀疏矩陣算法
    聚焦“向量與三角”創(chuàng)新題
    JAVA玩轉(zhuǎn)數(shù)學(xué)之二維數(shù)組排序
    有趣的運(yùn)算
    “整式的乘法與因式分解”知識(shí)歸納
    撥云去“誤”學(xué)乘除運(yùn)算
    向量垂直在解析幾何中的應(yīng)用
    向量五種“變身” 玩轉(zhuǎn)圓錐曲線
    国产精品 欧美亚洲| 不卡一级毛片| 男人舔女人的私密视频| 欧美日韩精品网址| tocl精华| 欧美又色又爽又黄视频| 欧美+亚洲+日韩+国产| 好男人电影高清在线观看| av中文乱码字幕在线| 丝袜在线中文字幕| 亚洲专区中文字幕在线| 欧美又色又爽又黄视频| 久久精品国产清高在天天线| 国产亚洲欧美在线一区二区| 国产伦人伦偷精品视频| 欧美成狂野欧美在线观看| bbb黄色大片| 特大巨黑吊av在线直播 | 日韩欧美在线二视频| 最新美女视频免费是黄的| 中文字幕久久专区| 久久婷婷成人综合色麻豆| 一级a爱视频在线免费观看| 久久国产精品影院| 亚洲中文字幕日韩| 一本大道久久a久久精品| 麻豆一二三区av精品| 久久人妻av系列| 午夜福利成人在线免费观看| 欧美人与性动交α欧美精品济南到| 免费看十八禁软件| 色播亚洲综合网| 亚洲七黄色美女视频| 叶爱在线成人免费视频播放| 日韩三级视频一区二区三区| 天堂√8在线中文| 在线天堂中文资源库| 亚洲性夜色夜夜综合| 国产精品自产拍在线观看55亚洲| 操出白浆在线播放| 亚洲 欧美一区二区三区| 又黄又粗又硬又大视频| 少妇粗大呻吟视频| 国产一卡二卡三卡精品| 狠狠狠狠99中文字幕| 在线av久久热| 国产伦在线观看视频一区| www.自偷自拍.com| 欧美激情高清一区二区三区| 国内精品久久久久久久电影| 一本综合久久免费| 国产又色又爽无遮挡免费看| 国产成人精品无人区| 中出人妻视频一区二区| 亚洲午夜精品一区,二区,三区| 亚洲自拍偷在线| 黑丝袜美女国产一区| 精品无人区乱码1区二区| 日日爽夜夜爽网站| 99国产极品粉嫩在线观看| 女生性感内裤真人,穿戴方法视频| 一区二区三区精品91| 亚洲人成网站高清观看| 精品电影一区二区在线| a级毛片a级免费在线| 久99久视频精品免费| 亚洲欧美日韩高清在线视频| 国内少妇人妻偷人精品xxx网站 | 色在线成人网| 久久精品国产亚洲av高清一级| 亚洲一区高清亚洲精品| 亚洲最大成人中文| 91麻豆精品激情在线观看国产| 视频在线观看一区二区三区| 丰满人妻熟妇乱又伦精品不卡| 亚洲国产精品合色在线| 久久婷婷人人爽人人干人人爱| 日韩av在线大香蕉| 国产精品永久免费网站| 国产精品一区二区精品视频观看| 中文字幕人成人乱码亚洲影| a在线观看视频网站| 99热这里只有精品一区 | 国产精品美女特级片免费视频播放器 | 99国产精品99久久久久| 亚洲精品一区av在线观看| 成熟少妇高潮喷水视频| 亚洲精品国产一区二区精华液| 欧美不卡视频在线免费观看 | 久久国产亚洲av麻豆专区| 村上凉子中文字幕在线| 动漫黄色视频在线观看| 国产亚洲av高清不卡| 动漫黄色视频在线观看| 波多野结衣高清无吗| 婷婷精品国产亚洲av在线| 亚洲国产精品sss在线观看| 国产成人系列免费观看| 久久久久亚洲av毛片大全| 91成人精品电影| 国产精品久久久人人做人人爽| 国产黄色小视频在线观看| 91麻豆av在线| 夜夜看夜夜爽夜夜摸| 亚洲精品美女久久久久99蜜臀| 女警被强在线播放| 两性午夜刺激爽爽歪歪视频在线观看 | 亚洲中文字幕日韩| 亚洲精品国产精品久久久不卡| 国产成人av教育| 在线观看舔阴道视频| 99re在线观看精品视频| 在线观看午夜福利视频| 热re99久久国产66热| 国产男靠女视频免费网站| 俄罗斯特黄特色一大片| www.精华液| 看片在线看免费视频| 成人欧美大片| 男男h啪啪无遮挡| 欧美日韩黄片免| 巨乳人妻的诱惑在线观看| 嫩草影院精品99| 91成年电影在线观看| 一级作爱视频免费观看| 欧美最黄视频在线播放免费| 亚洲熟女毛片儿| 久久精品国产亚洲av香蕉五月| 视频区欧美日本亚洲| www.www免费av| 看免费av毛片| 少妇粗大呻吟视频| www.999成人在线观看| 又大又爽又粗| 欧洲精品卡2卡3卡4卡5卡区| 欧美日韩精品网址| 日韩欧美国产一区二区入口| 久久久久久国产a免费观看| 女警被强在线播放| 看片在线看免费视频| 熟女电影av网| 在线免费观看的www视频| 国产欧美日韩精品亚洲av| cao死你这个sao货| 精品久久久久久成人av| 欧美激情久久久久久爽电影| 久久亚洲精品不卡| 亚洲黑人精品在线| 色av中文字幕| 亚洲成人免费电影在线观看| 日韩欧美一区视频在线观看| 亚洲精品中文字幕一二三四区| 亚洲一区高清亚洲精品| 搞女人的毛片| 国内揄拍国产精品人妻在线 | 成人国语在线视频| 午夜日韩欧美国产| 午夜福利18| 国产精品精品国产色婷婷| 午夜精品在线福利| 欧美最黄视频在线播放免费| 日韩国内少妇激情av| 国内揄拍国产精品人妻在线 | 国产激情久久老熟女| 精品久久久久久久人妻蜜臀av| 久久人人精品亚洲av| 日本免费a在线| 国产日本99.免费观看| 在线国产一区二区在线| 亚洲真实伦在线观看| 亚洲av日韩精品久久久久久密| 欧美成人一区二区免费高清观看 | 国产一级毛片七仙女欲春2 | 美女扒开内裤让男人捅视频| 欧美国产精品va在线观看不卡| 精品人妻1区二区| 视频区欧美日本亚洲| bbb黄色大片| 波多野结衣巨乳人妻| 97碰自拍视频| 国产一区二区激情短视频| 欧美色欧美亚洲另类二区| 国产伦一二天堂av在线观看| 日韩 欧美 亚洲 中文字幕| 一夜夜www| 国产区一区二久久| 天天一区二区日本电影三级| 啦啦啦免费观看视频1| 男人的好看免费观看在线视频 | 亚洲第一电影网av| 老熟妇乱子伦视频在线观看| 亚洲第一av免费看| 色综合站精品国产| 免费看十八禁软件| 免费在线观看黄色视频的| 99久久久亚洲精品蜜臀av| 99国产精品99久久久久| 观看免费一级毛片| 桃红色精品国产亚洲av| 丰满的人妻完整版| 久久久精品欧美日韩精品| 性色av乱码一区二区三区2| 精品久久久久久久毛片微露脸| 99国产综合亚洲精品| 久久久久久久久久黄片| 露出奶头的视频| 99国产综合亚洲精品| 亚洲人成77777在线视频| 琪琪午夜伦伦电影理论片6080| 久久精品成人免费网站| 欧美人与性动交α欧美精品济南到| 亚洲人成伊人成综合网2020| 亚洲人成伊人成综合网2020| 日本三级黄在线观看| 男女那种视频在线观看| 欧美性长视频在线观看| 自线自在国产av| 国产一区二区三区在线臀色熟女| svipshipincom国产片| 一区二区三区激情视频| 18禁观看日本| 日本五十路高清| 男女做爰动态图高潮gif福利片| 黄色女人牲交| 99精品欧美一区二区三区四区| 成人午夜高清在线视频 | 亚洲真实伦在线观看| 午夜精品久久久久久毛片777| 国产精品久久久人人做人人爽| 深夜精品福利| 99热只有精品国产| 啦啦啦 在线观看视频| 老汉色av国产亚洲站长工具| 19禁男女啪啪无遮挡网站| 久久精品国产亚洲av香蕉五月| 亚洲无线在线观看| 日本撒尿小便嘘嘘汇集6| 人妻久久中文字幕网| 精品福利观看| 宅男免费午夜| 国产欧美日韩一区二区精品| 中文字幕高清在线视频| 欧美在线黄色| 亚洲aⅴ乱码一区二区在线播放 | √禁漫天堂资源中文www| 亚洲中文字幕日韩| 久久久精品欧美日韩精品| 国产亚洲欧美精品永久| 中文亚洲av片在线观看爽| 日本免费a在线| 婷婷丁香在线五月| av免费在线观看网站| 国产精品一区二区三区四区久久 | 久久久久久久久中文| 国产av在哪里看| 精品国产乱码久久久久久男人| 国产精品 欧美亚洲| 久久久久久免费高清国产稀缺| 十八禁网站免费在线| 1024手机看黄色片| 久久精品国产综合久久久| 免费看a级黄色片| 一区二区日韩欧美中文字幕| 亚洲国产精品sss在线观看| 女性生殖器流出的白浆| 成人午夜高清在线视频 | 国产精品亚洲美女久久久| 久久精品91蜜桃| 午夜两性在线视频| 国产精品98久久久久久宅男小说| 老司机深夜福利视频在线观看| 国产亚洲精品久久久久久毛片| 999久久久国产精品视频| 亚洲,欧美精品.| 黑丝袜美女国产一区| 淫秽高清视频在线观看| 桃红色精品国产亚洲av| 老司机福利观看| 久久国产精品影院| 国产av不卡久久| 国产97色在线日韩免费| 午夜两性在线视频| 午夜亚洲福利在线播放| 美国免费a级毛片| 日韩欧美一区二区三区在线观看| 两性夫妻黄色片| 国产亚洲精品综合一区在线观看 | 哪里可以看免费的av片| 午夜激情福利司机影院| 免费无遮挡裸体视频| 国产精品自产拍在线观看55亚洲| 法律面前人人平等表现在哪些方面| 99久久久亚洲精品蜜臀av| 51午夜福利影视在线观看| www.熟女人妻精品国产| 精品电影一区二区在线| 日韩有码中文字幕| 一二三四在线观看免费中文在| 日韩三级视频一区二区三区| xxxwww97欧美| 国产伦一二天堂av在线观看| 88av欧美| 午夜福利成人在线免费观看| 亚洲一区二区三区色噜噜| 日本免费a在线| 一本精品99久久精品77| 久久久久亚洲av毛片大全| 精品欧美国产一区二区三| 亚洲自偷自拍图片 自拍| 99re在线观看精品视频| 黄片大片在线免费观看| 又黄又粗又硬又大视频| 免费电影在线观看免费观看| 精品一区二区三区四区五区乱码| 老熟妇乱子伦视频在线观看| 免费搜索国产男女视频| 热re99久久国产66热| 久久精品夜夜夜夜夜久久蜜豆 | 久久久久国内视频| 精品国产乱子伦一区二区三区| 无遮挡黄片免费观看| 1024视频免费在线观看| 麻豆一二三区av精品| 婷婷六月久久综合丁香| 久久性视频一级片| 黄网站色视频无遮挡免费观看| 天天添夜夜摸| 亚洲人成网站高清观看| 精品国产一区二区三区四区第35| 亚洲成人久久爱视频| 亚洲电影在线观看av| 国产伦人伦偷精品视频| 一级毛片精品| 欧美黑人精品巨大| 三级毛片av免费| 老熟妇仑乱视频hdxx| 一夜夜www| 两人在一起打扑克的视频| 91老司机精品| 听说在线观看完整版免费高清| 亚洲人成电影免费在线| 夜夜躁狠狠躁天天躁| 一边摸一边做爽爽视频免费| 真人做人爱边吃奶动态| 国产精品综合久久久久久久免费| www.999成人在线观看| 一进一出抽搐动态| 色综合婷婷激情| 一进一出抽搐gif免费好疼| 在线永久观看黄色视频| 91av网站免费观看| 两人在一起打扑克的视频| 欧美乱色亚洲激情| 日本 av在线| 精品熟女少妇八av免费久了| 日韩大尺度精品在线看网址| 欧美日韩精品网址| 午夜免费观看网址| 一本久久中文字幕| 精品国产乱子伦一区二区三区| 黄网站色视频无遮挡免费观看| 国产精品,欧美在线| videosex国产| 国产av又大| 成年女人毛片免费观看观看9| 亚洲无线在线观看| 两个人视频免费观看高清| 香蕉av资源在线| 在线观看午夜福利视频| 欧美国产日韩亚洲一区| 一二三四在线观看免费中文在| 欧美黑人精品巨大| 国产精品久久久久久人妻精品电影| 精品无人区乱码1区二区| 99国产精品99久久久久| 黄色 视频免费看| 午夜免费观看网址| 在线免费观看的www视频| 亚洲国产欧美一区二区综合| 久久精品国产99精品国产亚洲性色| 亚洲人成电影免费在线| svipshipincom国产片| 天堂影院成人在线观看| 国产97色在线日韩免费| 国产单亲对白刺激| 亚洲国产欧美网| 女人高潮潮喷娇喘18禁视频| 中文字幕另类日韩欧美亚洲嫩草| 香蕉国产在线看| 亚洲av片天天在线观看| 亚洲全国av大片| 久久亚洲真实| 美女扒开内裤让男人捅视频| 亚洲一区中文字幕在线| 精品久久久久久,| 国产欧美日韩一区二区精品| 怎么达到女性高潮| 亚洲人成网站在线播放欧美日韩| 淫秽高清视频在线观看| 精品日产1卡2卡| 亚洲自偷自拍图片 自拍| 一二三四社区在线视频社区8| 亚洲一卡2卡3卡4卡5卡精品中文| 可以在线观看毛片的网站| 老司机靠b影院| 精品久久久久久久末码| 久久伊人香网站| 老司机在亚洲福利影院| 美女高潮喷水抽搐中文字幕| 丝袜人妻中文字幕| 天天一区二区日本电影三级| 久久狼人影院| 亚洲精品粉嫩美女一区| 欧美人与性动交α欧美精品济南到| 久久精品国产综合久久久| 巨乳人妻的诱惑在线观看| 大型av网站在线播放| 正在播放国产对白刺激| 亚洲人成网站在线播放欧美日韩| 在线永久观看黄色视频| 色播亚洲综合网| 久久久国产成人精品二区| 欧美国产日韩亚洲一区| 99国产精品一区二区三区| 国产一级毛片七仙女欲春2 | 午夜亚洲福利在线播放| 成熟少妇高潮喷水视频| 99国产精品一区二区三区| 男女下面进入的视频免费午夜 | а√天堂www在线а√下载| 特大巨黑吊av在线直播 | 一区二区三区激情视频| 日本精品一区二区三区蜜桃| 中文字幕人妻熟女乱码| 啦啦啦韩国在线观看视频| 少妇熟女aⅴ在线视频| 欧美激情极品国产一区二区三区| aaaaa片日本免费| 国产亚洲精品av在线| 一进一出好大好爽视频| 久久久久久亚洲精品国产蜜桃av| 国产精品国产高清国产av| 少妇被粗大的猛进出69影院| www.www免费av| 制服人妻中文乱码| 91字幕亚洲| 欧美日韩中文字幕国产精品一区二区三区| 国内精品久久久久久久电影| 婷婷亚洲欧美| 国产亚洲精品av在线| 亚洲自偷自拍图片 自拍| 国产成人精品久久二区二区免费| 国产乱人伦免费视频| 不卡一级毛片| 婷婷精品国产亚洲av在线| 午夜亚洲福利在线播放| 午夜成年电影在线免费观看| 嫩草影视91久久| 欧美在线一区亚洲| 精品久久久久久成人av| 日本成人三级电影网站| 亚洲av成人av| 国产极品粉嫩免费观看在线| 成人永久免费在线观看视频| 精品国产一区二区三区四区第35| 欧美黑人巨大hd| 国产av一区在线观看免费| www.自偷自拍.com| 搡老妇女老女人老熟妇| 麻豆成人午夜福利视频| 免费在线观看日本一区| 老司机靠b影院| 91av网站免费观看| 亚洲男人的天堂狠狠| 侵犯人妻中文字幕一二三四区| 欧美黄色片欧美黄色片| 中国美女看黄片| 怎么达到女性高潮| 亚洲真实伦在线观看| 18禁裸乳无遮挡免费网站照片 | 国内久久婷婷六月综合欲色啪| 国产一级毛片七仙女欲春2 | а√天堂www在线а√下载| 国产精品电影一区二区三区| 亚洲第一青青草原| 亚洲欧美日韩高清在线视频| 国产蜜桃级精品一区二区三区| 国产色视频综合| 国产精品美女特级片免费视频播放器 | av在线播放免费不卡| 精品欧美国产一区二区三| 日日爽夜夜爽网站| 亚洲第一av免费看| 性色av乱码一区二区三区2| 老司机午夜福利在线观看视频| 99国产精品一区二区三区| 色哟哟哟哟哟哟| 国产一卡二卡三卡精品| 午夜激情福利司机影院| 在线十欧美十亚洲十日本专区| 天天躁狠狠躁夜夜躁狠狠躁| 欧美日韩亚洲综合一区二区三区_| 91麻豆av在线| 欧美国产精品va在线观看不卡| 亚洲真实伦在线观看| 黑丝袜美女国产一区| 国产久久久一区二区三区| 亚洲三区欧美一区| 亚洲成av片中文字幕在线观看| 久久久久久国产a免费观看| 美女 人体艺术 gogo| 日本熟妇午夜| 草草在线视频免费看| 国产av不卡久久| 成在线人永久免费视频| 欧美丝袜亚洲另类 | 亚洲专区中文字幕在线| 国产精品九九99| 后天国语完整版免费观看| 精品国产国语对白av| 日韩欧美一区二区三区在线观看| 久99久视频精品免费| 99精品在免费线老司机午夜| 神马国产精品三级电影在线观看 | 免费看十八禁软件| 色老头精品视频在线观看| 性色av乱码一区二区三区2| 久久精品国产综合久久久| 99在线人妻在线中文字幕| 成人一区二区视频在线观看| 久久中文看片网| 午夜成年电影在线免费观看| 久久精品国产亚洲av香蕉五月| 久久久久国产一级毛片高清牌| 人人妻,人人澡人人爽秒播| 久99久视频精品免费| 国产爱豆传媒在线观看 | 国产极品粉嫩免费观看在线| 欧美日韩黄片免| 在线免费观看的www视频| 国产欧美日韩一区二区精品| 精品高清国产在线一区| 亚洲三区欧美一区| 老司机靠b影院| 免费看美女性在线毛片视频| 久久午夜综合久久蜜桃| www.自偷自拍.com| 国产伦人伦偷精品视频| 九色国产91popny在线| 国产男靠女视频免费网站| 99在线人妻在线中文字幕| 欧美乱妇无乱码| 日日爽夜夜爽网站| 亚洲精品久久成人aⅴ小说| or卡值多少钱| 日本三级黄在线观看| 久久久久久人人人人人| 亚洲国产精品成人综合色| 制服诱惑二区| 超碰成人久久| 岛国视频午夜一区免费看| 人人妻人人澡人人看| 99国产精品一区二区三区| 黄片小视频在线播放| 桃色一区二区三区在线观看| 国产精品电影一区二区三区| 好男人电影高清在线观看| 色综合亚洲欧美另类图片| 亚洲色图 男人天堂 中文字幕| 日日夜夜操网爽| 人人妻,人人澡人人爽秒播| 1024视频免费在线观看| 啦啦啦韩国在线观看视频| 女人高潮潮喷娇喘18禁视频| 欧美zozozo另类| 日韩大尺度精品在线看网址| 国产在线观看jvid| 亚洲aⅴ乱码一区二区在线播放 | 日韩欧美国产在线观看| 成人国产一区最新在线观看| 久久久久国内视频| av电影中文网址| 国产精品免费一区二区三区在线| 国产视频内射| 久久精品亚洲精品国产色婷小说| 亚洲专区国产一区二区| 变态另类丝袜制服| 日韩欧美在线二视频| 91成人精品电影| 久久久久国内视频| 欧美最黄视频在线播放免费| 精品国产一区二区三区四区第35| 丝袜人妻中文字幕| 亚洲男人的天堂狠狠| 精品一区二区三区视频在线观看免费| а√天堂www在线а√下载| 正在播放国产对白刺激| 男人舔奶头视频| 桃红色精品国产亚洲av| 韩国av一区二区三区四区| 亚洲专区中文字幕在线| 青草久久国产| 亚洲专区国产一区二区| 日本免费a在线| 波多野结衣巨乳人妻| 色综合亚洲欧美另类图片| 成熟少妇高潮喷水视频| 日韩精品青青久久久久久| 国产亚洲精品久久久久5区| 成熟少妇高潮喷水视频| 男女午夜视频在线观看| 91国产中文字幕| 亚洲 欧美一区二区三区| 亚洲精品一区av在线观看| av福利片在线|