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

        ?

        一種矩陣塊間提前切換的脈動陣列優(yōu)化策略*

        2023-02-08 02:31:14曹亞松
        關(guān)鍵詞:優(yōu)化

        鞠 鑫,曹亞松,文 梅,汪 志,馮 靜

        (國防科技大學(xué)計(jì)算機(jī)學(xué)院,湖南 長沙 410073)

        1 引言

        最近十多年里,深度學(xué)習(xí)驅(qū)動人工智能經(jīng)歷了一場學(xué)術(shù)和工業(yè)復(fù)興,深度神經(jīng)網(wǎng)絡(luò)DNN(Deep Nural Network)極大地推進(jìn)了計(jì)算機(jī)視覺、圖像處理、語音識別等應(yīng)用的發(fā)展,并交叉融合在眾多應(yīng)用和學(xué)科領(lǐng)域中[1,2]。其中,遞歸神經(jīng)網(wǎng)絡(luò)、長期短期記憶和卷積神經(jīng)網(wǎng)絡(luò)占據(jù)了95%的數(shù)據(jù)中心需求[3],而這3種類型的神經(jīng)網(wǎng)絡(luò)通常都是轉(zhuǎn)化為通用矩陣乘進(jìn)行運(yùn)算[4 - 7]。

        在提出的所有DNN加速器體系結(jié)構(gòu)中,脈動陣列SA(Systolic Array)因?yàn)槠洳僮鲾?shù)的移動僅出現(xiàn)在相鄰2個PE(Processing Element)之間,使得其結(jié)構(gòu)規(guī)整、控制簡單并且可以提供極高的計(jì)算密度,從而在工業(yè)界(例如Google TPU ASIC[3]、Xilinx FPGA overlays xDNN[8])和學(xué)術(shù)界[9]被廣泛采用。

        在脈動陣列執(zhí)行矩陣乘運(yùn)算時,片上緩沖通常不足以存放完整的輸入矩陣,因此需要在片下對其進(jìn)行分塊。脈動陣列大都會采用片上雙緩沖的結(jié)構(gòu),使脈動陣列的數(shù)據(jù)準(zhǔn)備沒有氣泡。而對于加載到片上緩沖的矩陣,需要根據(jù)脈動陣列的PE行/列數(shù)自動分塊,并且在運(yùn)行過程中頻繁地進(jìn)行片上塊間矩陣的切換。

        傳統(tǒng)的脈動陣列單周期輸入的數(shù)據(jù)量通常為2O(O為脈動陣列的PE行/列數(shù)),輸出的數(shù)據(jù)量通常為O。數(shù)據(jù)進(jìn)入脈動陣列后按照一定的方向流動,因此在填滿SA和清空SA的過程中會出現(xiàn)一定的流水線啟動和排空開銷,且與MAC單元(Multiply ACcumulate unit)延時正相關(guān)。對于支持訓(xùn)練的脈動陣列加速器,為了保證精度往往會采用支持浮點(diǎn)運(yùn)算的MAC單元,其計(jì)算延遲通常在4~6個周期[10,11],脈動陣列流水線的啟動和排空開銷較大。并且現(xiàn)有的脈動陣列總是在完成了當(dāng)前片上分塊矩陣的計(jì)算后才切換至下一分塊矩陣,在運(yùn)行過程中會頻繁地出現(xiàn)大量PE空閑,導(dǎo)致PE利用率低下。因此,對于支持浮點(diǎn)運(yùn)算的高性能脈動陣列,如何隱藏脈動陣列的啟動和排空開銷顯得尤為重要。

        文獻(xiàn)[12]分析了不同映射規(guī)則下SA的計(jì)算延時,并通過增加PE之間的連線,在一定程度上減少了SA的填充與排空延時,但其控制相當(dāng)復(fù)雜,丟失了脈動陣列結(jié)構(gòu)和控制簡單的特性,硬件難以實(shí)現(xiàn)。文獻(xiàn)[13]在不改變PE間連線的前提下,在PE內(nèi)部增加了一套緩沖和MAC單元,以提前加載和計(jì)算下一個矩陣分塊,從而縮短SA計(jì)算延時,同時將PE數(shù)目減少一半,使總面積幾乎不變。這表面上提高了PE利用率,但其緩存和計(jì)算資源的浪費(fèi)并沒有得到緩解。

        本文針對上述問題,首先分析了一種自然的優(yōu)化策略:基于雙緩沖結(jié)構(gòu)的設(shè)計(jì)思想,在PE內(nèi)部設(shè)置2套用來存放靜態(tài)矩陣的寄存器。這種基礎(chǔ)雙寄存器脈動陣列結(jié)構(gòu),可以隱藏靜態(tài)矩陣的加載延時,但在排空脈動陣列時仍然存在大量的PE空閑。

        通過對脈動陣列數(shù)據(jù)流進(jìn)行建模,本文分析與計(jì)算了不同場景下2個分塊矩陣間切換的最短時間間隔,提出了一種矩陣塊間提前切換的策略,可以減少塊間矩陣切換時空閑PE的數(shù)量。為了驗(yàn)證該策略,本文實(shí)現(xiàn)了一個特定脈動陣列的RTL設(shè)計(jì),并在真實(shí)的應(yīng)用負(fù)載下進(jìn)行了測試。測試結(jié)果表明,該策略在現(xiàn)有脈動陣列基礎(chǔ)上的硬件改動極小,增加的面積開銷幾乎可以忽略不計(jì),卻能在所有場景中得到顯著的性能提升。提升的效率與矩陣運(yùn)算的規(guī)模相關(guān),對于典型的AI網(wǎng)絡(luò)模型(例如AlexNet,ResNet50),一組片下分塊矩陣的計(jì)算延時可以縮短3 472~29 169個周期,PE利用率可以提升2.56%~33.43%。

        2 背景

        脈動陣列是一種由O行、O列PE組成的二維陣列,相鄰的PE之間相互連接,用于數(shù)據(jù)傳遞,如圖1中灰色陰影所示。其中,每個PE中又包含1個寄存器,用于存放靜態(tài)矩陣,和1個計(jì)算延時為R的MAC單元,用于乘加運(yùn)算。

        SA執(zhí)行通用矩陣乘運(yùn)算Y=AB+C時,共有3種數(shù)據(jù)流結(jié)構(gòu)[14]:靜態(tài)矩陣IS(Input Stationary),即A;靜態(tài)矩陣WS(Weight Stationary),即B;靜態(tài)矩陣OS(Output Stationary),即C。脈動陣列的性能和能效由數(shù)據(jù)流結(jié)構(gòu)、脈動陣列的參數(shù)(例如PE數(shù)量、MAC延時)和輸入矩陣規(guī)模共同決定[14]。對于MAC延時大于1的脈動陣列,OS的設(shè)計(jì)復(fù)雜且效率低,本文不予討論。WS因?yàn)閷矩陣的高效復(fù)用而被現(xiàn)代處理器廣泛采用[3],因此本文以WS為例進(jìn)行分析,但其結(jié)論對IS同樣適用。

        2.1 片下分塊

        由于片上存儲資源有限,需要在片下對輸入矩陣進(jìn)行分塊,然后將分塊矩陣搬移到片上參與運(yùn)算,如圖1所示。其中,A-offchip規(guī)模為M×K,按m行k列進(jìn)行分塊;B-offchip規(guī)模為K×N,按k行n列進(jìn)行分塊;C-offchip規(guī)模為M×N,按m行n列進(jìn)行分塊。虛線方框表示第1組搬移到片上緩沖參與運(yùn)算的片下分塊矩陣A-onchip、B-onchip和C-onchip,后文分別用A、B、C表示。

        Figure 1 Diagram of block calculation 圖1 SA分塊計(jì)算示意圖

        2.2 片上分塊

        以Ai、Bi、Ci和Yi分別表示A、B、C和Y矩陣第i次參與計(jì)算的分塊,mi×ki和ki×ni分別表示Ai和Bi的規(guī)模,mi×ni表示Ci和Yi的規(guī)模。Yi的中間結(jié)果更新至Ci中,Ci的最后一次計(jì)算結(jié)果即為Yi的最終結(jié)果,運(yùn)算過程如式(1)所示:

        (1)

        2.3 PE內(nèi)部雙寄存器基礎(chǔ)實(shí)現(xiàn)方案

        由式(1)可知,在計(jì)算片上分塊Y=AB+C的過程中,會頻繁地進(jìn)行塊間矩陣的切換,從而出現(xiàn)大量的SA填充和排空開銷,造成PE資源的浪費(fèi)。

        在塊間矩陣的切換過程中,首先加載下一塊靜態(tài)矩陣Bi+1,此時會產(chǎn)生ki+1個周期的靜態(tài)矩陣加載延時,同時動態(tài)矩陣流入必須等待靜態(tài)矩陣加載完成,所以本文考慮如何提前加載靜態(tài)矩陣。

        原始的PE內(nèi)部結(jié)構(gòu)如圖2a所示,包含1個用于存放矩陣Bi的寄存器和1個MAC單元?;陔p緩沖的設(shè)計(jì)思想,本文在PE內(nèi)部設(shè)置2套寄存器,用于存放Bi和Bi+1,如圖2b所示。相比于原始設(shè)計(jì),只增加了1個寄存器、 1個多路分配器DMUX(Demultiplexer)和一個數(shù)據(jù)選擇器MUX(Multiplexer),使得每一次分塊的切換時刻可以提前Ti+1個周期。

        Figure 2 Internal structure of PE圖2 PE內(nèi)部結(jié)構(gòu)

        2.4 基礎(chǔ)雙寄存器脈動陣列中的數(shù)據(jù)流動分析

        m=1,k=3,n=12,O=4,R=2時,SA的數(shù)據(jù)流動過程如圖3所示。0周期開始加載靜態(tài)矩陣B0到B_REG0;3個周期后B0加載完成,開始加載靜態(tài)矩陣B1到B_REG1,并分別從左至右和從上至下加載動態(tài)矩陣A0和C0;周期6B1加載完成;周期8A0全部進(jìn)入SA;周期13Y0計(jì)算完成并流出SA,然后開始加載靜態(tài)矩陣B2到B_REG0,并加載動態(tài)矩陣A1和C1;周期23Y1計(jì)算完成并流出SA,然后加載動態(tài)矩陣A2和C2;周期33Y2計(jì)算完成并流出SA。其平均PE利用率僅為6.61%。

        其計(jì)算時空圖如圖4a所示,橫坐標(biāo)為周期T,縱坐標(biāo)為行PE,tBi表示靜態(tài)矩陣Bi的加載周期數(shù),tCi表示動態(tài)矩陣Ci第1行的第1個元素完成運(yùn)算的周期數(shù),tYi表示動態(tài)矩陣Ci第1行的第1個元素完成運(yùn)算到流出SA的周期數(shù),tni表示動態(tài)矩陣Ci的最后一行元素完成運(yùn)算到流出SA的周期數(shù)。此例中,各周期數(shù)的計(jì)算分別如式(2)~式(6)所示:

        tB0=tB1=tB2=k=3

        (2)

        tC0=tC1=tC2=R×k=2×3=6

        (3)

        tY0=tY1=tY2=O-k=4-3=1

        (4)

        tn0=tn1=tn2=O-1=3

        (5)

        t=3×(tC0+tY0+tn0)+tB0=33

        (6)

        由圖4a可知,在矩陣B載入SA和矩陣Y流出SA的過程中,存在大量的空閑PE?;赟A的全流水特性,矩陣B2可以在第10個周期開始進(jìn)入SA,在第12個周期B0使用完畢,同時B2加載完成;A1和C1可以在B1加載完成后一個周期(第7個周期)流入SA,同理;A2和C2也可以在B2加載完成后一個周期(第13個周期)流入SA,如圖4b所示,此種情況下完成計(jì)算僅需要24個周期,PE利用率由6.61%提升至9.37%。

        Figure 4 Computational spatiotemporal graph of SA when m=1,k=3,n=12,O=4,R=2圖4 m=1,k=3,n=12,O=4,R=2時SA的計(jì)算時空圖

        3 塊間矩陣提前切換策略

        3.1 靜態(tài)矩陣提前加載

        由于本文在PE中配置了2套寄存器,相鄰2個靜態(tài)矩陣分塊Bi和Bi+1會分別加載到2個緩沖中,因此只需要關(guān)注Bi和Bi+2之間的切換時機(jī),使得Bi+2加載到SA時不會影響到當(dāng)前矩陣Yi的計(jì)算。

        根據(jù)ki和ki+2的大小關(guān)系可以分3種情況討論,即ki+2=ki,ki+2>ki和ki+2

        Figure 5 Loading timing of static matrix Bi+2圖5 靜態(tài)矩陣Bi+2的加載時機(jī)

        (1)ki+2=ki。

        對于ki+2=ki的情況,如圖5a所示,Bi+2在TP之后完成加載則不會影響到Y(jié)i的計(jì)算,所以Bi+2的加載起始時間為TP-ki+2,等于TP-ki。

        (2)ki+2>ki。

        對于ki+2>ki的情況,如圖5b所示,Bi+2也是在TP后可以完成加載,所以Bi+2的加載起始時間也為TP-ki+2,但小于TP-ki。

        (3)ki+2

        對于ki+2

        綜上所述,靜態(tài)矩陣Bi+2可以開始加載的時刻由式(7)計(jì)算:

        (7)

        同時,由于ki+2>ki和ki+2ki和ki+2ki和ki+2

        TBi+2=R×(ki-1)+ni-ki

        (8)

        T′Bi+2=R×(ki-1)+ni

        (9)

        3.2 動態(tài)矩陣提前加載

        基于SA的全流水機(jī)制,下一矩陣Yi+1的計(jì)算不用等到當(dāng)前塊Yi完全流出SA,而可以在動態(tài)矩陣Ai+1和Ci+1準(zhǔn)備完成后提前進(jìn)入SA參與運(yùn)算,前提是要保證靜態(tài)矩陣Bi+1加載完畢,并且Yi+1在流出SA的時候不與Yi沖突。類似地,根據(jù)ki+1和ki的大小關(guān)系,可分為以下3種情況討論:

        (1)ki+1=ki。

        對于ki+1=ki的情況,Yi+1與Yi的對應(yīng)元素在SA中流過的周期完全相同,所以只要靜態(tài)矩陣準(zhǔn)備完成后,第i+1塊動態(tài)矩陣可以緊跟第i塊動態(tài)矩陣流入SA。如圖6所示,圖的上、下2部分分別表示Yi和Yi+1的計(jì)算過程。其中,折線a表示動態(tài)矩陣C第1行的第1個元素流過SA第1列PE的過程,折線b表示動態(tài)矩陣C最后1行的第1個元素流過SA第1列PE的過程,折線c表示動態(tài)矩陣C最后1行的最后1個元素流過SA第n列PE的過程。第i+1塊動態(tài)矩陣在第i塊動態(tài)矩陣的下一個周期流入SA,其計(jì)算結(jié)果Yi+1也會在Yi后一個周期順序流出SA,此時第i+1塊動態(tài)矩陣的末行與第i塊動態(tài)矩陣的首行流入SA的間隔Tgap=1。

        不難發(fā)現(xiàn),只要保證動態(tài)矩陣Ci+1第1行的第1個元素流過SA第1列PE的過程中不與動態(tài)矩陣Ci最后1行的第1個元素沖突,整個矩陣分塊都不會沖突,因此后文只關(guān)注動態(tài)矩陣Ci最后1行的第1個元素(圖6中的折線b,后圖用虛線表示)和動態(tài)矩陣Ci+1第1行的第1個元素(圖6中的折線d,后圖用點(diǎn)畫線表示)在SA中第1列PE中的使用情況。

        Figure 6 Inflow timing of the i+1-th dynamic matrix when ki+1=ki圖6 ki+1=ki時第i+1塊動態(tài)矩陣的流入時機(jī)

        (2)ki+1>ki。

        對于ki+1>ki的情況,Yi+1的計(jì)算延時大于Yi的計(jì)算延時,所以第i+1塊動態(tài)矩陣可以緊跟第i塊動態(tài)矩陣進(jìn)入SA,此時Tgap=1,如圖7所示。

        Figure 7 Inflow timing of the i+1-th dynamic matrix when ki+1>ki圖7 ki+1>ki時第i+1塊動態(tài)矩陣的流入時機(jī)

        (3)ki+1

        對于ki+1

        所以,第i+1塊動態(tài)矩陣與第i塊動態(tài)矩陣的最小加載間隙Tgap由式(10)計(jì)算。類似地,對于基礎(chǔ)雙寄存器脈動陣列,其加載間隙T′gap由式(11)計(jì)算。

        (10)

        T′gap=(R-1)×ki+O+ni

        (11)

        Figure 8 Inflow timing of the i+1-th dynamic matrix when ki+1

        4 實(shí)驗(yàn)及結(jié)果分析

        為了評估提出的基于脈動陣列的矩陣塊間提前切換策略,本文實(shí)現(xiàn)了RTL設(shè)計(jì),并與現(xiàn)有的脈動陣列進(jìn)行了比較。出于實(shí)現(xiàn)復(fù)雜度考慮,本文實(shí)現(xiàn)的脈動陣列PE規(guī)模為16×16,每個PE中MAC的計(jì)算延時為6,數(shù)據(jù)流采用WS,A、B、C的片上雙緩沖大小分別為2×3 MB、2×1 MB、2×256 KB。同時,為了簡化設(shè)計(jì),靜態(tài)矩陣Bi+2與Bi的加載時刻采用式(8)計(jì)算獲取。

        4.1 實(shí)驗(yàn)負(fù)載下的PE利用率

        在真實(shí)的應(yīng)用負(fù)載下,M并不總是很大,K和N也并非總是O的整數(shù)倍。因此,為了涵蓋盡可能多的情況,即使評估結(jié)果更具有說服力,本節(jié)將人為生成一些負(fù)載規(guī)模,包括各種邊界情況,即使真實(shí)的應(yīng)用負(fù)載即使沒有被完全模擬,也能在其中找到適配的場景。

        本文令m取1,16,32,64,128,256和512。k分別取113,127和128:k=113時,B矩陣的最后1個行分塊只有1行,SA中有15行PE空閑;k=127時,B矩陣的最后1個行分塊有15行,SA中只有最后1行PE空閑;k=128時,沒有PE空閑。n固定為64,使每一個矩陣分塊都能填滿SA的每一列。

        圖9a~圖9c分別為k=113,127,128時SA優(yōu)化前后的PE利用率與m的關(guān)系。其中,橫軸為m,主縱軸為PE利用率,次縱軸為優(yōu)化后提升的PE利用率。

        Figure 9 Relationship between PE utilization and m before and after SA optimization圖9 SA優(yōu)化前后的PE利用率與m的關(guān)系

        由圖9可知,在m、n不變的情況下,k越接近O的整數(shù)倍,PE利用率越高。在k、n不變的情況下,PE利用率隨m單調(diào)遞增,但優(yōu)化后提升的PE利用率隨m先增后減,并在m=128時達(dá)到最大:k=113時為36.54%,k=127時為43.06%,k=128為43.54%。

        4.2 應(yīng)用級工作負(fù)載及其性能分析

        4.2.1 工作負(fù)載

        表1為幾種常見神經(jīng)網(wǎng)絡(luò)的部分層參數(shù),其中i_ch表示輸入通道數(shù),o_ch表示輸出通道數(shù),img表示輸入圖像尺寸,ksize表示卷積核尺寸,p表示填充尺寸,s表示滑動步長。

        由于片上緩存容量的限制,表1中的真實(shí)負(fù)載都需要在片下提前分塊,然后在片上計(jì)算分塊結(jié)果。只要片下分塊的m、k、n不超過片上緩沖大小都是合法的,因此允許的分塊規(guī)模有M×K×N種,但為了充分利用SA的計(jì)算資源,本文給出以下分塊建議:

        (1)分塊應(yīng)該盡量均勻,使負(fù)載均衡;

        (2)m應(yīng)該盡可能大,以提高B矩陣的復(fù)用率;

        (3)k、n盡量接近O的整數(shù)倍,減少塊內(nèi)計(jì)算時的PE空閑。

        基于上述分塊原則,表1最后1列給出網(wǎng)絡(luò)對應(yīng)的推薦分塊規(guī)模。

        4.2.2 性能分析

        優(yōu)化前后表1中推薦分塊的性能對比如表2所示,包括優(yōu)化前后的計(jì)算延時及優(yōu)化后減少的計(jì)算延時,優(yōu)化前后的PE利用率及優(yōu)化后PE利用率的提升。

        Table 1 Parameters of common network and size of recommended blocks

        由表2可知,在m足夠大的情況下,優(yōu)化減少的延時只與靜態(tài)矩陣的片上自動分塊數(shù)相關(guān),繼續(xù)增加m,優(yōu)化減少的延時不再變化,提升的PE利用率略有下降,但PE利用率更接近100%。減少的計(jì)算延時在3 472~29 169個周期,提升的PE利用率在2.56%~33.43%。

        Table 2 Performance comparison under load in table 1 before and after optimization

        4.3 硬件開銷對比

        本文在ASAP7[16]工藝下對RTL進(jìn)行了邏輯綜合和功耗評估,時鐘周期為0.35 ns,輸入輸出延時為0.1 ns,加上預(yù)留的30%后端布局布線延時,實(shí)現(xiàn)的時鐘主頻不低于2 GHz。優(yōu)化前后的面積/功耗如表3所示。

        由表3可知,提出的優(yōu)化設(shè)計(jì)的面積和功耗與基礎(chǔ)雙寄存器設(shè)計(jì)的都非常接近。而相比于原設(shè)計(jì),單個PE面積增加了0.6%,功耗增加了2.5%;切換控制面積減少了0.2%,功耗降低了0.9%;整體面積增加了0.4%,功耗增加了1.4%。

        Table 3 Area/power comparison before and after optimization

        4.4 擴(kuò)展性討論

        4.4.1 性能提升

        雖然本文的實(shí)驗(yàn)只評估了一個特定的脈動陣列,但本文提出的策略可以適用于任何參數(shù)的脈動陣列。并且根據(jù)脈動陣列PE間的數(shù)據(jù)流動特性,對于規(guī)模大、MAC延時長的脈動陣列,其性能提升會更顯著。因?yàn)殡S著SA規(guī)模的擴(kuò)大,靜態(tài)矩陣加載周期變長;MAC延時越大,流水線填充和排空的延時越長。

        4.4.2 硬件開銷

        本文策略涉及的硬件改動包括2個方面:PE外靜態(tài)矩陣加載和動態(tài)矩陣流入時刻的計(jì)算;PE內(nèi)增加了1個寄存器和2個數(shù)據(jù)控制器。

        對于前者,由于提出的策略需要的參數(shù)比原設(shè)計(jì)更少,實(shí)現(xiàn)面積略有降低;對于后者,雖然硬件開銷和PE的個數(shù)線性正相關(guān),但對于單個PE而言增加的面積很小,所以即使對于大規(guī)模的脈動陣列,其硬件開銷也不會劇烈增加。因此,本文提出的策略具有很好的可擴(kuò)展性。

        5 結(jié)束語

        本文針對脈動陣列矩陣塊間切換不及時導(dǎo)致計(jì)算過程中頻繁出現(xiàn)大量PE空閑,資源利用率不高的問題,提出了一種矩陣塊間提前切換的脈動陣列優(yōu)化策略。該策略能夠最大程度地將下一組分塊矩陣的流入延時隱藏在當(dāng)前組分塊矩陣的計(jì)算過程中,減少矩陣塊間切換時PE空閑的數(shù)量,提高脈動陣列性能。實(shí)驗(yàn)結(jié)果表明,優(yōu)化后的脈動陣列面積僅增加了0.4%,功耗增加了1.4%,但其性能在所有場景中均得到了顯著提升。在測試的規(guī)模中,當(dāng)m=k=128,n=64時提升的PE利用率達(dá)到最高,為43.54%。同時需要注意的是,本文提到的脈動陣列雖然是正方形的,但本文提出的策略對于長方形的脈動陣列也同樣適用。

        猜你喜歡
        優(yōu)化
        超限高層建筑結(jié)構(gòu)設(shè)計(jì)與優(yōu)化思考
        PEMFC流道的多目標(biāo)優(yōu)化
        能源工程(2022年1期)2022-03-29 01:06:28
        民用建筑防煙排煙設(shè)計(jì)優(yōu)化探討
        關(guān)于優(yōu)化消防安全告知承諾的一些思考
        一道優(yōu)化題的幾何解法
        由“形”啟“數(shù)”優(yōu)化運(yùn)算——以2021年解析幾何高考題為例
        圍繞“地、業(yè)、人”優(yōu)化產(chǎn)業(yè)扶貧
        事業(yè)單位中固定資產(chǎn)會計(jì)處理的優(yōu)化
        4K HDR性能大幅度優(yōu)化 JVC DLA-X8 18 BC
        幾種常見的負(fù)載均衡算法的優(yōu)化
        電子制作(2017年20期)2017-04-26 06:57:45
        曰本大码熟中文字幕| 日本女优在线观看一区二区三区| 蜜桃在线观看免费高清完整版| 中文在线天堂网www| 最新无码国产在线播放| 尤物AV无码色AV无码麻豆| 久久国产亚洲av高清色| 99久久婷婷国产精品网| 亚洲国产美女高潮久久久| 日本真人做爰免费视频120秒| 男女车车的车车网站w98免费| 亚洲av无码专区亚洲av桃| 久久久精品456亚洲影院| 人妻一区二区三区免费看| 丝袜av乱码字幕三级人妻| 人妻夜夜爽天天爽三区丁香花| 国产国产裸模裸模私拍视频| 国产人与禽zoz0性伦| 最新国产在线精品91尤物| 国产亚洲AV片a区二区| 久久亚洲国产高清av一级| 亚洲最近中文字幕在线| 久久久久亚洲精品无码蜜桃| 国产亚洲一区二区手机在线观看| 制服丝袜天堂国产日韩| 一区二区三区在线视频免费观看| 99麻豆久久精品一区二区| 久久精品国产亚洲av网| 国产啪亚洲国产精品无码| 亚洲精品国产福利一二区| 亚洲日韩AV秘 无码一区二区| 美女黄网站永久免费观看网站| sm免费人成虐漫画网站| 久久精品99国产精品日本| 久久久g0g0午夜无码精品| 国内少妇人妻丰满av| 香蕉亚洲欧洲在线一区| 巨臀精品无码AV在线播放| 日韩精品视频av在线观看| 在线观看一级黄片天堂| 果冻传媒2021精品一区|