亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于FPGA的稀疏化卷積神經(jīng)網(wǎng)絡(luò)加速器

        2021-07-26 11:56:02狄新凱楊海鋼
        計(jì)算機(jī)工程 2021年7期
        關(guān)鍵詞:加速器運(yùn)算卷積

        狄新凱,楊海鋼

        (1.中國(guó)科學(xué)院空天信息創(chuàng)新研究院,北京100094;2.中國(guó)科學(xué)院大學(xué),北京100049)

        0 概述

        近年來(lái),卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neutral Network,CNN)模型[1-2]在計(jì)算機(jī)視覺(jué)、自動(dòng)駕駛、自然語(yǔ)言處理等任務(wù)場(chǎng)景中得到廣泛應(yīng)用,但CNN 拓?fù)浣Y(jié)構(gòu)復(fù)雜、計(jì)算密集且參數(shù)規(guī)模大,這對(duì)硬件系統(tǒng)的計(jì)算能力造成極大的壓力。研究人員通過(guò)分析CNN 算法特性,發(fā)現(xiàn)算法模型的權(quán)重參數(shù)和特征圖參數(shù)均具有稀疏化特征。稀疏化特征說(shuō)明算法在前向運(yùn)算的過(guò)程中會(huì)出現(xiàn)大量“0”參與的無(wú)效運(yùn)算操作。如果在計(jì)算系統(tǒng)中只運(yùn)行非“0”元素參與的有效操作,那么算法模型的計(jì)算量就能大幅減少。然而,傳統(tǒng)針對(duì)CNN 的并行加速器[3-5]或數(shù)據(jù)流優(yōu)化[6]通常只適用于稠密矩陣運(yùn)算,并不能在實(shí)際意義上減少操作數(shù)。因此,需要針對(duì)稀疏性做優(yōu)化處理,以探索稀疏神經(jīng)網(wǎng)絡(luò)硬件加速器。

        對(duì)于稀疏化的神經(jīng)網(wǎng)絡(luò)加速問(wèn)題,學(xué)術(shù)界已有部分研究。文獻(xiàn)[7-8]考慮權(quán)重?cái)?shù)據(jù)的稀疏特征,所提方法的核心思想均是用特定的壓縮格式來(lái)存儲(chǔ)和傳輸權(quán)重,同時(shí)在電路中加入索引模塊,利用壓縮格式中的索引信息定位與非零權(quán)重相對(duì)應(yīng)的特征值,進(jìn)而只計(jì)算有效權(quán)重參與的運(yùn)算操作。文獻(xiàn)[9-10]考慮特征圖數(shù)據(jù)的稀疏特征,所提方法的核心思想是在計(jì)算單元中加入判定模塊,如果遇到值為0 的特征圖點(diǎn),則跳過(guò)該次運(yùn)算。此外,也有相關(guān)研究同時(shí)利用特征圖稀疏性和權(quán)重稀疏性來(lái)避免無(wú)效運(yùn)算,如文獻(xiàn)[11]利用笛卡爾乘作為基本的操作來(lái)實(shí)現(xiàn)卷積,然而在該計(jì)算流程中,每個(gè)計(jì)算單元都需要設(shè)計(jì)復(fù)雜的坐標(biāo)索引模塊,并且中間結(jié)果較多,對(duì)緩存造成了很大壓力。文獻(xiàn)[12-13]基于ASIC 為特征圖和權(quán)重建立二進(jìn)制掩碼索引,然后通過(guò)對(duì)兩者做“與”(AND)操作,選出有效值進(jìn)行運(yùn)算,但是此類方案需要額外線上動(dòng)態(tài)地對(duì)特征值建立索引信息。文獻(xiàn)[14-15]方法則是針對(duì)因特定結(jié)構(gòu)化剪枝方式而造成的有規(guī)律的稀疏特征。此外,學(xué)術(shù)界大量工作集中在基于ASIC 對(duì)稀疏化全連接層做加速,關(guān)于稀疏化的卷積層加速研究較少。

        本文研究稀疏神經(jīng)網(wǎng)絡(luò)卷積層的計(jì)算數(shù)據(jù)流,基于現(xiàn)場(chǎng)可編程門陣列(Field Programmable Gate Array,F(xiàn)PGA)器件設(shè)計(jì)新的加速器硬件系統(tǒng)。根據(jù)特征圖數(shù)據(jù)和權(quán)重?cái)?shù)據(jù)的數(shù)據(jù)特點(diǎn),設(shè)計(jì)邏輯處理模塊從兩者中篩選出有效的數(shù)據(jù)參與運(yùn)算。在此基礎(chǔ)上,利用FPGA 器件特點(diǎn)研究邏輯處理模塊并行操作的整體架構(gòu),并根據(jù)器件參數(shù)和模型參數(shù)的約束探索最佳設(shè)計(jì)參數(shù)。通過(guò)在Xilinx 軟硬件平臺(tái)上實(shí)現(xiàn)具體的稀疏化VGG 模型,驗(yàn)證本文方案的有效性和優(yōu)越性。

        1 卷積神經(jīng)網(wǎng)絡(luò)及其稀疏性分析

        1.1 卷積神經(jīng)網(wǎng)絡(luò)

        卷積神經(jīng)網(wǎng)絡(luò)是一種前饋網(wǎng)絡(luò),包含由卷積層和子采樣層構(gòu)成的特征抽取器以及由全連接層組成的分類器。在卷積層中,有多個(gè)卷積濾波器(卷積核)掃過(guò)該層的特征圖像做卷積操作得到下一級(jí)特征圖,如式(1)所示,卷積濾波器中的參數(shù)即為參與運(yùn)算的權(quán)重。式(1)的基本變量和參數(shù)在表1 中做詳細(xì)說(shuō)明。

        表1 卷積層參數(shù)定義Table 1 Definition of parameters in convolutional layer

        實(shí)際上,子采樣層和全連接層也可以看作是特殊的卷積層統(tǒng)一到式(1)的表述中,例如全連接層就是卷積濾波器大小等于上層特征圖大小的卷積運(yùn)算,每個(gè)卷積濾波器做卷積運(yùn)算的結(jié)果對(duì)應(yīng)全連接層的一個(gè)神經(jīng)元。

        1.2 算法模型參數(shù)的稀疏性分析

        在本文中,CNN 網(wǎng)絡(luò)的稀疏度定義為卷積濾波器矩陣以及特征圖矩陣中零值的比例。一方面,利用特征圖和權(quán)重參數(shù)的稀疏化特性可降低參數(shù)規(guī)模,進(jìn)而減小系統(tǒng)存儲(chǔ)壓力;另一方面,設(shè)計(jì)硬件電路避免稀疏矩陣中“0”參與的運(yùn)算,可降低運(yùn)算代價(jià),進(jìn)而提高實(shí)時(shí)性。

        神經(jīng)網(wǎng)絡(luò)中特征圖和權(quán)重的稀疏性分析如圖1所示。權(quán)重的稀疏性主要來(lái)源于剪枝優(yōu)化技術(shù),該技術(shù)被證實(shí)可以在保證神經(jīng)網(wǎng)絡(luò)精度的前提下有效地壓縮模型。以文獻(xiàn)[16-18]為代表的研究發(fā)現(xiàn),訓(xùn)練時(shí)根據(jù)特定的規(guī)則將權(quán)重參數(shù)中不重要的值剪除(即置為0),不會(huì)損壞模型的識(shí)別精度。

        圖1 權(quán)重剪枝優(yōu)化及激活產(chǎn)生的稀疏性分析Fig.1 Analysis of sparsity by weight pruning optimization and activation

        此外,特征圖的稀疏性主要來(lái)源于激活函數(shù)ReLU,因?yàn)镽eLU 將卷積操作的中間結(jié)果中非正值均置為0。以VGG16 網(wǎng)絡(luò)為例,文獻(xiàn)[17]實(shí)驗(yàn)結(jié)果表明,卷積層中特征圖0 值點(diǎn)的比例最多可以達(dá)到80%,平均比例也在50%以上。與權(quán)重稀疏性不同,特征圖的0 值點(diǎn)都是運(yùn)行時(shí)獲取且依賴于輸入圖像數(shù)據(jù),而前者在訓(xùn)練后便成為可線下分析的靜態(tài)數(shù)據(jù)。

        2 加速器實(shí)現(xiàn)方案

        2.1 卷積計(jì)算流程與權(quán)重壓縮

        在本文的設(shè)計(jì)中,神經(jīng)網(wǎng)絡(luò)卷積操作計(jì)算流程簡(jiǎn)化示意圖如圖2所示,共有N組C×K×K的卷積核在C×W×H的特征圖上滑動(dòng)(示意圖中僅展示一組)。卷積層參數(shù)有輸入特征圖(Xc,w,h)和對(duì)應(yīng)的權(quán)重濾波器(Fc,w,h)以及輸出(Yn,w,h)。在每組運(yùn)算中,先做C通道間向量-向量乘,得到K×K個(gè)中間結(jié)果后再進(jìn)行累加,產(chǎn)生最終輸出特征圖點(diǎn)。

        圖2 卷積操作簡(jiǎn)化示意圖Fig.2 Simplified schematic diagram of convolution operation

        在數(shù)據(jù)稀疏的情況下,K×K個(gè)邏輯模塊負(fù)責(zé)篩選出輸入特征圖和權(quán)重均為有效值的位置,然后傳輸給乘累加器(Multiplication Accumulator,MACC)。在基于FPGA 的設(shè)計(jì)中,通常采用片上DSP 來(lái)完成這項(xiàng)工作。圖3為K=3時(shí)3×3個(gè)通道間向量-向量乘計(jì)算操作,其中每個(gè)方格代表1 對(duì)有效的特征圖和權(quán)重?cái)?shù)據(jù),需要做1 次有效計(jì)算。在圖3 中,假設(shè)每個(gè)邏輯模塊后接了2 個(gè)DSP,則這組運(yùn)算占用5 個(gè)cycle 時(shí)間。

        圖3 通道間向量-向量乘計(jì)算操作示意圖Fig.3 Schematic diagram of vector-vector multiplication calculation operation among channels

        對(duì)權(quán)重訓(xùn)練和剪枝后,使其成為固定的數(shù)據(jù),在此基礎(chǔ)上,可以在線下對(duì)權(quán)重進(jìn)行分析并以壓縮格式存儲(chǔ)和傳輸。如圖4所示,采用二維掩碼Mask 的格式對(duì)權(quán)重進(jìn)行索引,每組卷積核共有K×K個(gè)lbC位寬的權(quán)重索引數(shù)據(jù)。特征圖數(shù)據(jù)是動(dòng)態(tài)數(shù)據(jù),需要線上實(shí)時(shí)產(chǎn)生,因此,處理方式為線上實(shí)時(shí)判斷。

        圖4 權(quán)重?cái)?shù)據(jù)及其Mask 索引Fig.4 Weight data and its Mask index

        2.2 加速器整體架構(gòu)設(shè)計(jì)

        本文基于FPGA 器件設(shè)計(jì)稀疏神經(jīng)網(wǎng)絡(luò)加速器,其整體架構(gòu)如圖5所示。

        圖5 稀疏神經(jīng)網(wǎng)絡(luò)加速器整體架構(gòu)Fig.5 Overall architecture of sparse CNN accelerator

        在圖5 中,特征圖和權(quán)重通過(guò)FPGA 的AXI4 接口從片外傳入片上緩存,然后片上緩存再將數(shù)據(jù)傳入處理模塊(Processing Unit,PU)。為利用FPGA的并行特性,多個(gè)PU 在輸入特征圖的橫向尺寸W、縱向尺寸H和輸出通道N方向做并行操作,因此,共有PW×PH×PN個(gè)PU 單元參與運(yùn)算。每個(gè)處理模塊承擔(dān)C通道K×K尺寸的輸入特征圖與其對(duì)應(yīng)的權(quán)重做卷積以及通道間累加的計(jì)算工作,從而產(chǎn)生某一輸出通道的輸出特征圖點(diǎn)。由于輸入特征圖和權(quán)重的稀疏特性,PU 會(huì)主要通過(guò)邏輯單元來(lái)提取出有效的值參與運(yùn)算。PU 單元得到的結(jié)果通過(guò)輸出特征圖緩存,并且同樣通過(guò)AXI4 接口輸出到片外。

        2.3 處理單元設(shè)計(jì)

        每個(gè)PU 需要進(jìn)行有效數(shù)據(jù)提取和計(jì)算工作,圖6 為處理單元PU 的具體結(jié)構(gòu)。

        圖6 處理單元的具體結(jié)構(gòu)Fig.6 Detailed structure of the processing unit

        如上文所述,在本文設(shè)計(jì)的加速器中,每個(gè)PU單元實(shí)現(xiàn)C×K×K個(gè)乘加運(yùn)算。首先,每個(gè)K×K尺寸的輸入特征與其對(duì)應(yīng)權(quán)重的運(yùn)算操作分到K×K個(gè)計(jì)算單元中;然后,每個(gè)計(jì)算單元做C通道乘累加操作得到中間輸出;最后,將所有中間輸出通過(guò)加法樹得到最終輸出結(jié)果。

        計(jì)算單元的設(shè)計(jì)是稀疏神經(jīng)網(wǎng)絡(luò)加速的核心,需要達(dá)到選取有效數(shù)據(jù)參與運(yùn)算的目標(biāo)。圖6 右半部分為計(jì)算單元的結(jié)構(gòu)圖。對(duì)于特征圖向量,由于通過(guò)比較器判斷是否為有效值(非零值),因此輸出值i為0 或者為1。本文設(shè)計(jì)未采用文獻(xiàn)[13]為特征圖數(shù)據(jù)建立二維掩碼索引的方案,因?yàn)榻⑺饕墓ぷ鞒吮匾挠行е蹬袛?,還要對(duì)索引數(shù)據(jù)進(jìn)行存儲(chǔ)、傳輸?shù)炔僮鳌通道的權(quán)重Mask 索引可以使用lbC位寬的定點(diǎn)數(shù)Ik,k來(lái)表示(右側(cè)圖中使用的索引為I2,2)。每判斷一個(gè)特征圖點(diǎn),會(huì)有局部計(jì)數(shù)器來(lái)輸出計(jì)數(shù)count。有效地址判定器模塊獲取i、I2,2和count 值并執(zhí)行邏輯運(yùn)算sign3=(I2,2>>count)&i。該運(yùn)算的功能是判斷權(quán)重和特征圖點(diǎn)是否同時(shí)為有效值。邏輯計(jì)算的結(jié)果反饋給控制單元,控制單元會(huì)提取有效的輸入值給后端的乘累加單元。在FPGA 器件中,乘累加單元采用片上DSP 資源來(lái)實(shí)現(xiàn)。計(jì)算單元的結(jié)果會(huì)輸出到加法樹做最后的累加。

        需要注意的是,做計(jì)算單元內(nèi)部的并行,計(jì)算單元后端可以占用多個(gè)DSP 模塊,假設(shè)為α 個(gè)。因此,DSP 資源的占用量DDSP可以根據(jù)以上討論做預(yù)估,如式(2)所示:

        其中:PW×PH×PN是指PU 陣列中PU 的個(gè)數(shù);K×K是指PU 內(nèi)部計(jì)算單元的個(gè)數(shù),該值是固定的且這些計(jì)算單元中的DSP 除了計(jì)算輸入通道方向最后幾個(gè)數(shù),在多數(shù)情況下不會(huì)出現(xiàn)“閑置”狀態(tài);α值與模型數(shù)據(jù)的稀疏特征有關(guān),該值的獲取將在下文進(jìn)行討論。

        2.4 片上緩存與BRAM 存儲(chǔ)塊劃分

        片上緩存采用的是FPGA 片上BRAM 資源,主要考慮存儲(chǔ)塊劃分和數(shù)據(jù)復(fù)用這2 點(diǎn)。存儲(chǔ)塊劃分借鑒了文獻(xiàn)[19],核心思想是盡量將計(jì)算過(guò)程中需要并行獲取的參數(shù)值放到不同的BRAM Bank 中。表2 是根據(jù)該思想對(duì)特征圖矩陣和權(quán)重矩陣在各個(gè)維度上的劃分情況,表中的數(shù)字是指該維度下需要并行獲取的數(shù)據(jù)個(gè)數(shù)。例如輸入特征圖緩存的寬度方向,PU 每次需要同時(shí)獲?。≒W+K-1)個(gè)數(shù)參與運(yùn)算,那么該維度的數(shù)據(jù)可以平均分配到(PW+K-1)個(gè)BRAM 單元中。

        表2 BRAM 存儲(chǔ)器劃分情況Table 2 Partition of BRAM memory

        數(shù)據(jù)復(fù)用主要是為了減輕片上-片外傳輸?shù)膸拤毫Γ跐M足存儲(chǔ)塊上述劃分規(guī)則的情況下將盡量多的數(shù)據(jù)緩存在片上。以權(quán)重參數(shù)為例,片上PU陣列每批次運(yùn)算需要K×K×PN×α個(gè)BRAM 單元,當(dāng)該批次運(yùn)算計(jì)算完成后,依然希望這些數(shù)存儲(chǔ)在片上,以便于在輸入特征圖窗口滑動(dòng)到下個(gè)位置時(shí)再?gòu)?fù)用這些數(shù)據(jù)。因此,添加一個(gè)與K×K×PN×α相乘的參數(shù)χweight來(lái)表征復(fù)用情況。

        綜上所述,根據(jù)表2 以及數(shù)據(jù)復(fù)用的考慮預(yù)估出片上BRAM 資源的占用情況,如式(3)所示:

        需要注意的是,式(3)中輸出特征圖的復(fù)用參數(shù)χout是根據(jù)χin和χweight來(lái)確定的。

        2.5 設(shè)計(jì)參數(shù)分析

        本文加速器系統(tǒng)的設(shè)計(jì)參數(shù)有PW、PH、PN和α,這些參數(shù)都與并行操作相關(guān)。由2.2 節(jié)和2.3 節(jié)可知,加速系統(tǒng)共有(PW×PH×PN)×(K×K)個(gè)計(jì)算單元并行操作。α的值則與算法模型參數(shù)的稀疏化特征有關(guān):α越大,并行操作的計(jì)算單元之間需要等待的時(shí)間會(huì)越短,但是DSP 模塊的閑置越嚴(yán)重;α越小則相反??梢酝ㄟ^(guò)小規(guī)模實(shí)驗(yàn)實(shí)現(xiàn)不同α參數(shù)下的處理模塊來(lái)確定最佳的設(shè)計(jì)參數(shù)。假設(shè)某卷積層參數(shù)為<W=224,H=224,C=64,N=64>,本文在具有不同數(shù)量DSP 的3 個(gè)典型的Xilinx 器件上實(shí)現(xiàn)單個(gè)PU,可獲取的計(jì)算性能(GOPS)的計(jì)算如式(4)所示:

        其中:λ表示在C方向上權(quán)重和輸入特征圖的的稀疏程度,實(shí)踐中一般為20%~50%;I和L分別表示對(duì)PU做流水線優(yōu)化后的啟動(dòng)間隔(Initiation Interval,III)和啟動(dòng)延遲(Initiation Latency,IL),它們均通過(guò)實(shí)驗(yàn)獲得;f表示頻率,設(shè)置為200 MHz。

        初步實(shí)驗(yàn)結(jié)果如圖7所示,可以看出,在不同的稀疏度情況下,PU 中的每個(gè)計(jì)算單元α取1 或者3 可以達(dá)到最佳的性能。需要注意的是,對(duì)于不同的器件和不同算法模型,以及同一算法模型中的不同層,均可使用該方法預(yù)估最佳性能。

        圖7 不同α 參數(shù)下處理單元的計(jì)算性能Fig.7 Computational performance of processing unit under different α parameters

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

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

        本文實(shí)驗(yàn)在GPU 平臺(tái)訓(xùn)練了VGG16[20]網(wǎng)絡(luò)并使用文獻(xiàn)[16]的方法進(jìn)行剪枝和再訓(xùn)練,最終采用的神經(jīng)網(wǎng)絡(luò)卷積層參數(shù)稀疏情況如表3所示。在Xilinx 硬軟件環(huán)境下實(shí)現(xiàn)卷積層前向推理的加速,硬件平臺(tái)為Xilinx Zynq XC7Z045,軟件環(huán)境為Vivado HLx(v2018.3)。對(duì)于功耗,本文使用Xilinx 的Xpower工具給出評(píng)估結(jié)果。根據(jù)前文中的分析,設(shè)計(jì)參數(shù)設(shè)置為:PW=2,PH=2,PN=8,α=3,χin=2,Zweight=2。

        表3 VGG16 卷積層稀疏情況Table 3 Sparsity of convolutional layer of VGG16 %

        3.2 結(jié)果分析

        表4 統(tǒng)計(jì)了最終的實(shí)驗(yàn)結(jié)果中FPGA 內(nèi)部資源的使用情況。從中可以看出:LUT 占用量達(dá)到了93%,這是因?yàn)镻U 為了處理稀疏的數(shù)據(jù)而增加了邏輯單元模塊,這些邏輯單元模塊主要都是由LUT 來(lái)實(shí)現(xiàn);同時(shí)DSP 的數(shù)目達(dá)到了占比最多,這是因?yàn)橛布卧浞挚紤]了并行。

        表4 實(shí)現(xiàn)VGG16 FPGA 的內(nèi)部資源使用情況Table 4 Statistics of FPGA resource usage when implementing VGG16

        計(jì)算性能和功耗比實(shí)驗(yàn)結(jié)果如表5所示,其中,本文設(shè)計(jì)的加速器對(duì)卷積層加速的總體性能為678.2 GOPS,性能功耗比為69.45 GOPS/W。此外,表5 也展示了本文方案與其他方案的比較結(jié)果,從中可以得出以下結(jié)論:

        表5 性能與功耗指標(biāo)實(shí)驗(yàn)結(jié)果及對(duì)比Table 5 Performance and energy efficiency experiment results and comparison

        1)與稠密神經(jīng)網(wǎng)絡(luò)的FPGA 加速器的對(duì)比:與使用相同器件的文獻(xiàn)[3]方案相比,本文計(jì)算性能和性能功耗比分別達(dá)到了它的2.9 倍和2.8 倍;與文獻(xiàn)[4,6]方案相比,本文DSP 的使用量約為它們的60%,但卻在計(jì)算性能指標(biāo)上表現(xiàn)更優(yōu)秀;與文獻(xiàn)[5]方案相比,按每個(gè)DSP 可以達(dá)到的GOPS,計(jì)算性能基本一致,但是本文方案的性能功耗比較文獻(xiàn)[5]方案低。

        2)與稀疏神經(jīng)網(wǎng)絡(luò)的FPGA 加速器的對(duì)比:文獻(xiàn)[7,14]均使用了ZCU102 平臺(tái),本文DSP 使用量分別是它們的75%和64%,計(jì)算性能指標(biāo)上本文與它們相比分別有2.1 和1.3 倍的提升;在性能功耗比上則分別有5.3 和2.3 倍的提升。

        4 結(jié)束語(yǔ)

        本文提出一種針對(duì)神經(jīng)網(wǎng)絡(luò)模型的稀疏化卷積層FPGA 硬件加速器。設(shè)計(jì)稀疏數(shù)據(jù)處理單元避免無(wú)效計(jì)算,同時(shí)通過(guò)提高多個(gè)處理單元的并行度和探索最佳設(shè)計(jì)參數(shù)提高計(jì)算性能。在Xilinx 平臺(tái)上的實(shí)驗(yàn)結(jié)果表明,本文設(shè)計(jì)能夠有效提高稀疏化卷積層的實(shí)現(xiàn)性能和性能功耗比。下一步將對(duì)稀疏神經(jīng)網(wǎng)絡(luò)做軟硬件協(xié)同優(yōu)化:在軟件方面,在剪枝過(guò)程就預(yù)先考慮硬件并行的需求,做面向硬件的平衡剪枝;在硬件方面,使用已有的并行、流水線等技術(shù),將平衡剪枝后模型映射到FPGA 上。

        猜你喜歡
        加速器運(yùn)算卷積
        輪滑加速器
        化學(xué)工業(yè)的“加速器”
        重視運(yùn)算與推理,解決數(shù)列求和題
        基于3D-Winograd的快速卷積算法設(shè)計(jì)及FPGA實(shí)現(xiàn)
        全民小康路上的“加速器”
        有趣的運(yùn)算
        從濾波器理解卷積
        電子制作(2019年11期)2019-07-04 00:34:38
        基于傅里葉域卷積表示的目標(biāo)跟蹤算法
        “整式的乘法與因式分解”知識(shí)歸納
        撥云去“誤”學(xué)乘除運(yùn)算
        国产成人亚洲合集青青草原精品| 无码人妻一区二区三区兔费| 亚洲av片一区二区三区| 欧美成人一级视频| 青青手机在线视频观看| 精品国产一区二区三区性色| 欧美成人看片一区二区三区尤物| 精品国产18久久久久久| 免费国产一级片内射老| 亚洲精品国产熟女久久久| 亚洲av无码乱码国产麻豆| 97久久人人超碰超碰窝窝| 久久精品国产亚洲不av麻豆| 精品人妻夜夜爽一区二区| 亚洲国产成人av二区| 熟女少妇在线视频播放| 国产精品久久码一区二区 | 国产成人精品成人a在线观看| 第十色丰满无码| 久久精品国产亚洲av天美| 成年女人a级毛片免费观看| 人妻无码一区二区三区四区 | 国产成人自拍高清在线| 久久丫精品国产亚洲av不卡 | 天堂影院久久精品国产午夜18禁| 欧美xxxxx高潮喷水| 婷婷久久久亚洲欧洲日产国码av| 中文字幕avdvd| 丝袜美腿在线观看视频| √天堂中文官网在线| 亚洲国产精品久久久久久久| 亚洲中文字幕有综合久久| 日本系列中文字幕99| 亚洲综合色区另类av| 国产熟女亚洲精品麻豆| 在线久草视频免费播放| 成人精品一区二区三区电影| 欧美喷潮久久久xxxxx| 亚洲乱码中文字幕综合| 国产一区二区三区在线综合视频| 国产精品嫩草影院av|