• <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)圓錐曲線
    国产国拍精品亚洲av在线观看| 亚洲欧美色中文字幕在线| 亚洲av电影在线观看一区二区三区| 全区人妻精品视频| 天天影视国产精品| 成年人午夜在线观看视频| 黄片播放在线免费| 国产精品免费大片| 美女国产视频在线观看| 亚洲天堂av无毛| 午夜福利在线观看免费完整高清在| 久久久精品免费免费高清| 黑人巨大精品欧美一区二区蜜桃 | 日本与韩国留学比较| 亚洲三级黄色毛片| 香蕉精品网在线| 国产精品久久久久久精品电影小说| 一区二区三区四区激情视频| 99久久中文字幕三级久久日本| 国产黄频视频在线观看| 波野结衣二区三区在线| 欧美一级a爱片免费观看看| 国产69精品久久久久777片| 欧美日韩国产mv在线观看视频| 久久久精品94久久精品| 国产伦精品一区二区三区视频9| 亚洲精品亚洲一区二区| 色94色欧美一区二区| 成人午夜精彩视频在线观看| 精品亚洲成国产av| 三上悠亚av全集在线观看| 亚洲精品成人av观看孕妇| 久久韩国三级中文字幕| 18禁在线播放成人免费| √禁漫天堂资源中文www| 亚洲国产av新网站| 国产免费福利视频在线观看| 国产成人freesex在线| 大又大粗又爽又黄少妇毛片口| 狠狠精品人妻久久久久久综合| 亚洲欧美一区二区三区国产| 好男人视频免费观看在线| 久久韩国三级中文字幕| 亚洲精品久久午夜乱码| www.色视频.com| 2022亚洲国产成人精品| 九草在线视频观看| 美女中出高潮动态图| 蜜桃国产av成人99| 免费观看的影片在线观看| 亚洲一级一片aⅴ在线观看| 日产精品乱码卡一卡2卡三| 女性生殖器流出的白浆| 欧美97在线视频| 熟妇人妻不卡中文字幕| 国产成人aa在线观看| 一区二区三区四区激情视频| 久久久久久久久大av| 日产精品乱码卡一卡2卡三| 夫妻性生交免费视频一级片| 赤兔流量卡办理| 婷婷色av中文字幕| av电影中文网址| 久久ye,这里只有精品| 亚洲欧美成人综合另类久久久| 国产免费一级a男人的天堂| 国产av精品麻豆| 日韩,欧美,国产一区二区三区| 亚洲三级黄色毛片| 午夜激情福利司机影院| 国产成人a∨麻豆精品| 欧美日韩视频高清一区二区三区二| 女人精品久久久久毛片| 中文欧美无线码| 你懂的网址亚洲精品在线观看| 看免费成人av毛片| 日韩一区二区视频免费看| 精品亚洲乱码少妇综合久久| 99热这里只有是精品在线观看| 久久国内精品自在自线图片| 丝袜美足系列| 国产高清国产精品国产三级| 在线观看三级黄色| 哪个播放器可以免费观看大片| 亚洲av国产av综合av卡| 亚洲人成77777在线视频| 在线播放无遮挡| 国产女主播在线喷水免费视频网站| 在线亚洲精品国产二区图片欧美 | 国产色爽女视频免费观看| 欧美成人精品欧美一级黄| 少妇人妻精品综合一区二区| 五月天丁香电影| 春色校园在线视频观看| 国产黄片视频在线免费观看| 免费久久久久久久精品成人欧美视频 | 免费观看在线日韩| av女优亚洲男人天堂| 黄色欧美视频在线观看| 日本-黄色视频高清免费观看| www.色视频.com| 欧美日韩综合久久久久久| 亚洲国产毛片av蜜桃av| 久久99热6这里只有精品| 日本欧美国产在线视频| 性色avwww在线观看| 久久韩国三级中文字幕| 亚洲精品久久午夜乱码| 天堂8中文在线网| 欧美国产精品一级二级三级| 亚洲一级一片aⅴ在线观看| 亚洲国产精品专区欧美| 国产一区二区在线观看日韩| 亚洲av中文av极速乱| 欧美精品一区二区大全| 成年美女黄网站色视频大全免费 | 久久久久久久久大av| 少妇人妻 视频| 搡女人真爽免费视频火全软件| 街头女战士在线观看网站| 亚洲欧美精品自产自拍| 成人亚洲欧美一区二区av| 亚洲精品美女久久av网站| kizo精华| 成年女人在线观看亚洲视频| 亚洲欧美色中文字幕在线| 亚洲第一av免费看| 精品久久久噜噜| 久久精品国产鲁丝片午夜精品| 国产日韩欧美在线精品| 精品视频人人做人人爽| 丝袜在线中文字幕| 国产精品一二三区在线看| 亚洲国产欧美日韩在线播放| 欧美成人精品欧美一级黄| 中文字幕制服av| 嘟嘟电影网在线观看| 超碰97精品在线观看| 欧美3d第一页| 日本黄色片子视频| 国产乱来视频区| 亚洲av综合色区一区| 国产精品久久久久久精品古装| 飞空精品影院首页| 高清毛片免费看| 日韩视频在线欧美| 亚洲av成人精品一区久久| 欧美一级a爱片免费观看看| 日日啪夜夜爽| 国产日韩欧美亚洲二区| 久久久久久久亚洲中文字幕| 一级爰片在线观看| 极品少妇高潮喷水抽搐| 免费黄频网站在线观看国产| 国产日韩欧美在线精品| 99久久精品一区二区三区| 日韩一区二区视频免费看| 80岁老熟妇乱子伦牲交| 国产毛片在线视频| 国产免费现黄频在线看| 精品熟女少妇av免费看| 母亲3免费完整高清在线观看 | 国产精品偷伦视频观看了| 亚洲av日韩在线播放| 久久久久久久久久人人人人人人| 波野结衣二区三区在线| 插逼视频在线观看| av网站免费在线观看视频| 亚洲av中文av极速乱| 亚洲av中文av极速乱| 日韩人妻高清精品专区| 男女边摸边吃奶| 在线观看免费日韩欧美大片 | 午夜91福利影院| 国产免费一区二区三区四区乱码| 免费观看无遮挡的男女| 国产在视频线精品| 欧美老熟妇乱子伦牲交| 特大巨黑吊av在线直播| 国产精品蜜桃在线观看| 丝瓜视频免费看黄片| 日韩视频在线欧美| 亚洲精华国产精华液的使用体验| 亚洲欧美成人精品一区二区| 国产精品不卡视频一区二区| 亚洲,欧美,日韩| 欧美+日韩+精品| 欧美+日韩+精品| 老熟女久久久| 午夜影院在线不卡| 热99久久久久精品小说推荐| 亚洲人成77777在线视频| av.在线天堂| 蜜臀久久99精品久久宅男| 免费观看a级毛片全部| 一本色道久久久久久精品综合| 欧美日韩视频高清一区二区三区二| 精品少妇内射三级| 国产精品久久久久久精品电影小说| 少妇 在线观看| 国产精品久久久久久久久免| 九九爱精品视频在线观看| 午夜影院在线不卡| 亚洲精品美女久久av网站| 狠狠婷婷综合久久久久久88av| av播播在线观看一区| 一本—道久久a久久精品蜜桃钙片| 免费av中文字幕在线| 人人妻人人添人人爽欧美一区卜| 卡戴珊不雅视频在线播放| 曰老女人黄片| 97精品久久久久久久久久精品| 亚洲人成网站在线播| 男人添女人高潮全过程视频| 色5月婷婷丁香| 亚洲成色77777| 久久女婷五月综合色啪小说| 色94色欧美一区二区| 永久免费av网站大全| 免费人妻精品一区二区三区视频| 日韩不卡一区二区三区视频在线| 日韩强制内射视频| 91精品伊人久久大香线蕉| 高清欧美精品videossex| 妹子高潮喷水视频| 国产高清三级在线| 少妇的逼水好多| 精品酒店卫生间| 亚洲av日韩在线播放| 精品一区二区免费观看| 日韩强制内射视频| 国产成人免费无遮挡视频| 狂野欧美白嫩少妇大欣赏| 丝袜喷水一区| 亚洲精华国产精华液的使用体验| 精品国产一区二区三区久久久樱花| av播播在线观看一区| 国产一区二区在线观看av| 国产男人的电影天堂91| 中文字幕av电影在线播放| 一级毛片我不卡| 日韩一区二区三区影片| 亚洲三级黄色毛片| 性高湖久久久久久久久免费观看| 亚洲av日韩在线播放| 欧美bdsm另类| 一级a做视频免费观看| 一区二区三区四区激情视频| 亚洲人与动物交配视频| 在线观看人妻少妇| 国产精品不卡视频一区二区| 岛国毛片在线播放| 日本黄大片高清| av播播在线观看一区| 日日撸夜夜添| 亚洲欧洲精品一区二区精品久久久 | 丝瓜视频免费看黄片| 国产精品国产av在线观看| 久久久久久久久久久免费av| 哪个播放器可以免费观看大片| 久久久久久伊人网av| 9色porny在线观看| 91精品伊人久久大香线蕉| 午夜激情福利司机影院| 国产乱人偷精品视频| 欧美日本中文国产一区发布| 久久久午夜欧美精品| 国产精品秋霞免费鲁丝片| 青春草亚洲视频在线观看| 大香蕉97超碰在线| 香蕉精品网在线| 国产成人午夜福利电影在线观看| 色网站视频免费| 一区二区三区精品91| 啦啦啦在线观看免费高清www| av国产精品久久久久影院| 国产 精品1| 在线观看人妻少妇| 欧美最新免费一区二区三区| 国产精品无大码| a级毛片免费高清观看在线播放| 性色avwww在线观看| 亚洲精品456在线播放app| 国产成人精品一,二区| 人体艺术视频欧美日本| 少妇人妻久久综合中文| 国产av国产精品国产| 国产精品久久久久久精品古装| 交换朋友夫妻互换小说| 国产精品嫩草影院av在线观看| 精品人妻熟女毛片av久久网站| 日本猛色少妇xxxxx猛交久久| 国产在线一区二区三区精| 久久99蜜桃精品久久| 久久国内精品自在自线图片| 精品国产露脸久久av麻豆| 黄色毛片三级朝国网站| 97超碰精品成人国产| 大码成人一级视频| 中文字幕人妻熟人妻熟丝袜美| 日本色播在线视频| 欧美3d第一页| 国产精品无大码| 九色亚洲精品在线播放| 久久99一区二区三区| 亚洲高清免费不卡视频| 精品酒店卫生间| 国产精品女同一区二区软件| 久久久精品免费免费高清| 中国三级夫妇交换| 国产爽快片一区二区三区| 久久99蜜桃精品久久| 国产精品嫩草影院av在线观看| 亚洲成人av在线免费| 久久97久久精品| 亚洲无线观看免费| 亚洲情色 制服丝袜| 国产午夜精品一二区理论片| 精品久久久久久久久av| 久久狼人影院| 有码 亚洲区| 亚洲不卡免费看| 国产 一区精品| 最近2019中文字幕mv第一页| 日韩av不卡免费在线播放| 热99国产精品久久久久久7| 黑丝袜美女国产一区| 日日摸夜夜添夜夜爱| 99国产精品免费福利视频| a级毛片免费高清观看在线播放| 久久狼人影院| 久久久国产一区二区| 国产日韩欧美在线精品| 日韩三级伦理在线观看| 极品少妇高潮喷水抽搐| 亚洲国产精品专区欧美| 极品少妇高潮喷水抽搐| 99久久中文字幕三级久久日本| 午夜精品国产一区二区电影| 3wmmmm亚洲av在线观看| 精品99又大又爽又粗少妇毛片| 成人手机av| 麻豆精品久久久久久蜜桃| 午夜福利网站1000一区二区三区| 国产精品熟女久久久久浪| 国产高清不卡午夜福利| 性色avwww在线观看| 国产高清不卡午夜福利| 国模一区二区三区四区视频| 美女脱内裤让男人舔精品视频| 国产精品久久久久久av不卡| 女性生殖器流出的白浆| 精品国产国语对白av| 国产精品一区二区在线观看99| 久久韩国三级中文字幕| 老司机影院毛片| 少妇猛男粗大的猛烈进出视频| 成年人免费黄色播放视频| 久久影院123| 热99久久久久精品小说推荐| 在线观看国产h片| 国产精品人妻久久久久久| 欧美另类一区| 国产伦理片在线播放av一区| 黄色怎么调成土黄色| 国产毛片在线视频| 久久精品久久精品一区二区三区| 岛国毛片在线播放| 大片免费播放器 马上看| 女性生殖器流出的白浆| 成人无遮挡网站| 色网站视频免费| av国产久精品久网站免费入址| 国产精品一区二区在线观看99| 99久久综合免费| 亚洲人成77777在线视频| 亚洲婷婷狠狠爱综合网| 免费观看av网站的网址| 国产片特级美女逼逼视频| 成人亚洲精品一区在线观看| 精品国产国语对白av| 欧美最新免费一区二区三区| 午夜福利影视在线免费观看| 国产免费一级a男人的天堂| 美女国产高潮福利片在线看| 男女啪啪激烈高潮av片| 青春草国产在线视频| 免费高清在线观看视频在线观看| 亚洲精品第二区| av在线观看视频网站免费| 99热6这里只有精品| 婷婷色麻豆天堂久久| 人妻系列 视频| 中文欧美无线码| 美女视频免费永久观看网站| 国产精品秋霞免费鲁丝片| 99久久人妻综合| 亚洲国产精品专区欧美| 欧美精品高潮呻吟av久久| 又粗又硬又长又爽又黄的视频| 亚洲三级黄色毛片| 国产高清国产精品国产三级| 欧美日本中文国产一区发布| 91久久精品国产一区二区成人| 久久久久国产网址| 91久久精品国产一区二区成人| 大香蕉久久网| 精品国产国语对白av| 人体艺术视频欧美日本| 在现免费观看毛片| 欧美精品一区二区大全| 久久人人爽人人片av| 亚洲精品,欧美精品| 国产一级毛片在线| 亚洲伊人久久精品综合| 久久久久久久亚洲中文字幕| 午夜久久久在线观看| 国产精品人妻久久久久久| 人人澡人人妻人| 国产欧美亚洲国产| 99九九在线精品视频| 人体艺术视频欧美日本| 中文乱码字字幕精品一区二区三区| 成人毛片a级毛片在线播放| 国产精品一区www在线观看| 这个男人来自地球电影免费观看 | 精品久久久久久电影网| 久久久国产欧美日韩av| 国产精品免费大片| 中国美白少妇内射xxxbb| 人人妻人人添人人爽欧美一区卜| 久久久国产精品麻豆| 一本大道久久a久久精品| 国产免费福利视频在线观看| 99热全是精品| 欧美bdsm另类| 国产精品麻豆人妻色哟哟久久| 在线观看三级黄色| 国产不卡av网站在线观看| 午夜免费鲁丝| 免费高清在线观看日韩| av不卡在线播放| a级毛片在线看网站| 国产亚洲一区二区精品| 久久精品国产自在天天线| 亚洲精品一区蜜桃| 一边亲一边摸免费视频| 国产精品人妻久久久久久| 黄色怎么调成土黄色| 少妇高潮的动态图| 夜夜骑夜夜射夜夜干| 我的老师免费观看完整版| 韩国av在线不卡| 成人黄色视频免费在线看| 伊人久久国产一区二区| 亚洲国产精品专区欧美| 精品久久久噜噜| 精品一区在线观看国产| 国产在线免费精品| 亚洲四区av| 亚洲精品自拍成人| 三上悠亚av全集在线观看| 99久久中文字幕三级久久日本| 久久婷婷青草| 久久青草综合色| 熟女电影av网| 亚洲精品成人av观看孕妇| 日韩中字成人| 一级爰片在线观看| 欧美性感艳星| 亚洲人成77777在线视频| 国产片特级美女逼逼视频| 免费人妻精品一区二区三区视频| 久久精品国产亚洲av天美| 自拍欧美九色日韩亚洲蝌蚪91| 色婷婷久久久亚洲欧美| 国产黄频视频在线观看| 亚洲图色成人| √禁漫天堂资源中文www| 一个人看视频在线观看www免费| 99九九在线精品视频| 欧美精品人与动牲交sv欧美| 超碰97精品在线观看| 亚洲综合色惰| 另类亚洲欧美激情| 日日摸夜夜添夜夜爱| 午夜福利在线观看免费完整高清在| 一级黄片播放器| 久久久久精品久久久久真实原创| 国产乱人偷精品视频| 一级a做视频免费观看| 99国产精品免费福利视频| 日韩欧美精品免费久久| 亚洲精品日韩在线中文字幕| 亚洲图色成人| 黑人猛操日本美女一级片| 免费大片黄手机在线观看| 亚洲四区av| 91国产中文字幕| 97在线人人人人妻| 日韩强制内射视频| 老司机影院毛片| 最近2019中文字幕mv第一页| 国产国语露脸激情在线看| 丝袜喷水一区| av天堂久久9| 亚洲经典国产精华液单| 一本一本综合久久| 男人操女人黄网站| 亚洲第一av免费看| 久久99热这里只频精品6学生| 中文字幕人妻丝袜制服| 丰满饥渴人妻一区二区三| 亚洲av男天堂| 91精品一卡2卡3卡4卡| 精品卡一卡二卡四卡免费| 22中文网久久字幕| 内地一区二区视频在线| √禁漫天堂资源中文www| 岛国毛片在线播放| 下体分泌物呈黄色| 又大又黄又爽视频免费| 久久婷婷青草| 国产成人免费无遮挡视频| 欧美精品一区二区大全| 中文字幕免费在线视频6| 精品午夜福利在线看| 亚洲久久久国产精品| 插阴视频在线观看视频| 国产精品偷伦视频观看了| 91成人精品电影| 精品一区在线观看国产| 国产男女超爽视频在线观看| 韩国av在线不卡| 色婷婷av一区二区三区视频| 日韩在线高清观看一区二区三区| 日韩欧美精品免费久久| 国产黄频视频在线观看| 少妇精品久久久久久久| 色视频在线一区二区三区| 制服丝袜香蕉在线| 欧美 日韩 精品 国产| 一本色道久久久久久精品综合| 午夜福利,免费看| 高清欧美精品videossex| 制服诱惑二区| 男女无遮挡免费网站观看| 日日摸夜夜添夜夜爱| 国产永久视频网站| 国产深夜福利视频在线观看| av一本久久久久| 最近中文字幕2019免费版| 韩国高清视频一区二区三区| 黑人高潮一二区| 国产在线视频一区二区| 亚洲精品日本国产第一区| 婷婷色综合大香蕉| 成年女人在线观看亚洲视频| 精品少妇内射三级| 国产极品天堂在线| 一个人免费看片子| 欧美日韩视频高清一区二区三区二| 午夜福利在线观看免费完整高清在| 丝袜在线中文字幕| 国产男女内射视频| 免费av不卡在线播放| a级毛色黄片| 精品久久蜜臀av无| 精品酒店卫生间| 少妇人妻精品综合一区二区| 99久久中文字幕三级久久日本| 伦精品一区二区三区| 国产老妇伦熟女老妇高清| 最新中文字幕久久久久| 久久毛片免费看一区二区三区| av电影中文网址| 日本色播在线视频| 午夜免费观看性视频| 午夜福利视频精品| 亚洲精品久久久久久婷婷小说| 国产高清三级在线| 高清不卡的av网站| 久久久午夜欧美精品| 国产一区有黄有色的免费视频| av在线播放精品| 亚洲激情五月婷婷啪啪| 久久久国产欧美日韩av| 亚洲色图综合在线观看| 视频在线观看一区二区三区| tube8黄色片| 日日爽夜夜爽网站| 婷婷色麻豆天堂久久| 少妇精品久久久久久久| 日日爽夜夜爽网站| 久久久午夜欧美精品| 国产成人精品一,二区| 在线观看免费高清a一片| 视频在线观看一区二区三区| 又黄又爽又刺激的免费视频.| 免费观看无遮挡的男女| 国产极品天堂在线| 精品久久久噜噜| 嫩草影院入口| 日本av免费视频播放| 99久久精品一区二区三区| 插阴视频在线观看视频| 精品久久久久久久久亚洲| 考比视频在线观看| 中文字幕精品免费在线观看视频 | 男男h啪啪无遮挡| 亚洲av国产av综合av卡| 在线观看一区二区三区激情| 毛片一级片免费看久久久久| 国产午夜精品久久久久久一区二区三区| 青春草视频在线免费观看|