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

    結(jié)合算子選擇的卷積神經(jīng)網(wǎng)絡(luò)顯存優(yōu)化算法

    2024-05-15 17:43:18魏曉輝周博文李洪亮徐哲文

    魏曉輝 周博文 李洪亮 徐哲文

    摘要: 針對(duì)卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練中自動(dòng)算子選擇算法在較大的顯存壓力下性能下降的問(wèn)題, 將卸載、 重計(jì)算與卷積算子選擇統(tǒng)一建模, 提出一種智能算子選擇算法。該算法權(quán)衡卸載和重計(jì)算引入的時(shí)間開(kāi)銷(xiāo)與更快的卷積算子節(jié)省的時(shí)間, 尋找卸載、 重計(jì)算和卷積算子選擇的調(diào)度, 解決了自動(dòng)算子選擇算法性能下降的問(wèn)題. 實(shí)驗(yàn)結(jié)果表明, 該智能算子選擇算法比重計(jì)算-自動(dòng)算子選擇算法縮短了13.53%訓(xùn)練時(shí)間, 比已有的卸載/重計(jì)算-自動(dòng)算子選擇算法縮短了4.36%的訓(xùn)練時(shí)間.

    關(guān)鍵詞: 顯存; 卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練; 卷積算子; 卸載; 重計(jì)算

    中圖分類(lèi)號(hào): TP391文獻(xiàn)標(biāo)志碼: A文章編號(hào): 1671-5489(2024)02-0302-09

    Memory Optimization Algorithm for Convolutional Neural Networks with Operator Selection

    WEI Xiaohui, ZHOU Bowen, LI Hongliang, XU Zhewen

    (College of Computer Science and Technology, Jilin University, Changchun 130012, China)

    Abstract: Aiming at the problem of? the performance degradation of the automatic operator selection algorithm in convolutional neural network training under high memory pressure, we modelled offloading, recomputing and convolutional operator selecting in a unified manner and proposed an intelligent operator selection algorithm. The algorithm weighed the time overhead introduced by offloading and recomputing against the time saved by faster convolutional operators, found the scheduling of offloading, recomputing and convolutional operator selecting, and solved the performancedegradation problem of the automatic operator selection algorithm. The experimental results? show that the intelligent operator selection algorithm reduces training time by 13.53% over the recomputing-automatic operator selection algorithm and by 4.36% over the existing offloading/recomputing-automatic operator selection algorithm.

    Keywords: memory; convolutional neural network training; convolutional operator; offloading; recomputing

    由于卷積神經(jīng)網(wǎng)絡(luò)卓越的性能, 越來(lái)越多的應(yīng)用使用了卷積神經(jīng)網(wǎng)絡(luò), 如圖像識(shí)別、 語(yǔ)義分割等. 為加速卷積計(jì)算, 研究人員提出了不同的卷積算子, 它們需要不同的工作空間和卷積耗時(shí). 在訓(xùn)練時(shí), 對(duì)于卷積算子的選擇, 主流的訓(xùn)練框架如Tensorflow[1], 會(huì)根據(jù)空閑顯存自動(dòng)選擇合適的卷積算子. 但卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練需要保存大量的張量以計(jì)算梯度, 訓(xùn)練的顯存壓力隨網(wǎng)絡(luò)規(guī)模的增大而增加. 當(dāng)顯存壓力變大, 空閑顯存匱乏時(shí), 已有的自動(dòng)算子選擇算法就會(huì)選擇工作空間需求少但耗時(shí)長(zhǎng)的卷積算子, 進(jìn)而延長(zhǎng)了訓(xùn)練時(shí)間.

    目前緩解訓(xùn)練顯存壓力的主流方法是卸載和重計(jì)算張量. 卸載方法[2-5]將顯存中暫時(shí)不用的張量通過(guò)PCIE總線傳輸?shù)饺萘扛蟮腃PU內(nèi)存, 等再次使用時(shí)再?gòu)腃PU的內(nèi)存?zhèn)骰谿PU的顯存, 從而緩解訓(xùn)練的存儲(chǔ)壓力, 運(yùn)行效率受PCIE總線傳輸速度的影響. 重計(jì)算方法[6-7]保留部分張量作為檢查點(diǎn), 等使用被釋放的張量時(shí)再?gòu)臋z查點(diǎn)重新計(jì)算回來(lái), 運(yùn)行效率受檢查點(diǎn)機(jī)制的影響. 通過(guò)卸載和重計(jì)算釋放更多的顯存, 本文選擇工作空間大但耗時(shí)短的卷積算子, 可有效減少訓(xùn)練時(shí)間, 但也會(huì)引入更多的卸載和重計(jì)算時(shí)間開(kāi)銷(xiāo). 所以將卸載、 重計(jì)算和算子選擇開(kāi)銷(xiāo)統(tǒng)一建模, 并基于開(kāi)銷(xiāo)模型進(jìn)行綜合考慮設(shè)計(jì)算法已經(jīng)成為目前該領(lǐng)域重要的研究?jī)?nèi)容.

    本文針對(duì)卷積算子選擇的問(wèn)題, 進(jìn)行整數(shù)規(guī)劃問(wèn)題的模型設(shè)計(jì). 在此基礎(chǔ)上, 本文提出智能算子選擇算法, 綜合考慮卸載、 重計(jì)算和卷積算子選擇, 使卸載和重計(jì)算為更快的卷積算子的工作空間騰出顯存, 進(jìn)而縮短訓(xùn)練時(shí)間. 本文使用大規(guī)模求解器Gurobi搜索整數(shù)規(guī)劃模型的結(jié)果作為建模整數(shù)規(guī)劃問(wèn)題的可行解, 并將求解器結(jié)果轉(zhuǎn)化為顯存管理調(diào)度, 在訓(xùn)練時(shí)通過(guò)調(diào)度管理顯存. 本文對(duì)實(shí)際AI生產(chǎn)環(huán)境下的多種網(wǎng)絡(luò)進(jìn)行測(cè)試, 并將智能算子選擇與自動(dòng)算子選擇進(jìn)行對(duì)比. 實(shí)驗(yàn)結(jié)果表明, 本文的MO-SOS(memory optimization with smart operator selection)算法可以顯著提升GPU運(yùn)算性能.

    1 研究背景

    1.1 自動(dòng)算子選擇與卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練顯存壓力

    由于計(jì)算量大, 卷積計(jì)算是卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練中最耗時(shí)的計(jì)算. 為加速卷積計(jì)算, 研究人員提出了不同的卷積算子實(shí)現(xiàn)卷積計(jì)算, 如快速Fourier變換卷積[8]和Winograd變換卷積[9]等. 它們?cè)诩铀倬矸e計(jì)算時(shí)需額外的空間保存計(jì)算過(guò)程中的臨時(shí)變量, 即神經(jīng)網(wǎng)絡(luò)算子的工作空間. 在訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)時(shí), 現(xiàn)有的訓(xùn)練框架如Tensorflow, 會(huì)根據(jù)空閑顯存自動(dòng)選擇合適的卷積算子.

    近年來(lái), 卷積神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)規(guī)模越來(lái)越大, 使訓(xùn)練的顯存壓力變得越來(lái)越嚴(yán)峻. 訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)是尋找一組網(wǎng)絡(luò)參數(shù)使神經(jīng)網(wǎng)絡(luò)的輸出盡可能接近期望值. 圖1為一個(gè)多層卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過(guò)程, 包括卷積層CONV、 批標(biāo)準(zhǔn)化層BN、 激活層ReLU和全連接層FC等. 目前尋找網(wǎng)絡(luò)參數(shù)常用的方法是梯度下降法, 需要計(jì)算神經(jīng)網(wǎng)絡(luò)的損失(Loss)和參數(shù)的梯度.

    Loss是神經(jīng)網(wǎng)絡(luò)輸出與期望值之間的差距, 這種差距可通過(guò)計(jì)算損失函數(shù)得到, 即圖1中的Loss層. Loss是通過(guò)前向傳播計(jì)算的, 前向傳播是圖1中實(shí)線表示的方向. 神經(jīng)網(wǎng)絡(luò)訓(xùn)練可通過(guò)Loss計(jì)算出模型的參數(shù)梯度, 從而使用參數(shù)梯度更新模型參數(shù).

    計(jì)算梯度是通過(guò)后向傳播完成的, 即圖1中虛線表示的方向. 計(jì)算梯度使用鏈?zhǔn)椒▌t依次計(jì)算出每層的參數(shù)梯度. 計(jì)算參數(shù)梯度依賴(lài)張量[WTHX]a[WTBX]i, 所以卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練會(huì)保存前向傳播的輸出張量. 目前, 卷積神經(jīng)網(wǎng)絡(luò)通過(guò)增加層數(shù)以獲得更高準(zhǔn)確率, 所以它們的訓(xùn)練顯存需求也會(huì)越來(lái)越大, 如Vgg19[10]和Resnet1001等. 當(dāng)顯存壓力較大, 空閑顯存匱乏時(shí), 自動(dòng)算子選擇算法會(huì)選擇工作空間少但耗時(shí)較長(zhǎng)的卷積算子, 增加訓(xùn)練時(shí)間. 但卷積神經(jīng)網(wǎng)絡(luò)的張量在訓(xùn)練中大部分時(shí)間內(nèi)都是空閑的, 未被訪問(wèn)[2], 所以可將張量卸載或重計(jì)算減輕訓(xùn)練顯存壓力.

    1.2 緩解顯存壓力方案與智能卷積算子選擇動(dòng)機(jī)

    卸載將CPU的內(nèi)存作為GPU的緩存, 暫存訓(xùn)練中的張量. 目前的GPU通常作為CPU的外設(shè)設(shè)備, 它是通過(guò)PCIE總線與CPU相連, 它們通過(guò)PCIE總線相互傳輸數(shù)據(jù). 由于CPU的內(nèi)存比GPU的顯存容量大, 所以可以把張量卸載到CPU主存, 再次需要張量時(shí)預(yù)取回GPU顯存. 目前的主流顯卡如3090,P40等, 都支持計(jì)算、 卸載和預(yù)取張量并行. 所以為不阻塞訓(xùn)練中的計(jì)算, 需要提前卸載或預(yù)取張量. VDNN(virtualized deep neural networks)[2]在前向傳播中的卷積計(jì)算時(shí)卸載它的輸入張量, 當(dāng)后向傳播需要已卸載的輸入張量時(shí)再提前預(yù)取回. SwapAdvisor[4]通過(guò)進(jìn)化計(jì)算選擇卸載的張量、 卸載開(kāi)始時(shí)間和預(yù)取開(kāi)始時(shí)間, 進(jìn)一步減少阻塞時(shí)間. STR(swap dominated tensor re-generation)[11]發(fā)現(xiàn)以前的工作未考慮到多次預(yù)取張量, 因?yàn)榘岩粋€(gè)張量卸載到CPU的內(nèi)存后, CPU的內(nèi)存中便有了該張量的備份, 當(dāng)在訓(xùn)練中多次訪問(wèn)這個(gè)張量時(shí), STR認(rèn)為可以把張量多次預(yù)取回GPU顯存.

    隨著GPU計(jì)算能力越來(lái)越強(qiáng), 張量的卸載和預(yù)取的阻塞可能比計(jì)算更耗時(shí), 因此研究人員又提出了另一種緩解顯存壓力的方法——重計(jì)算. 重計(jì)算保留一部分張量作為檢查點(diǎn), 釋放其他的張量騰出顯存空間, 當(dāng)被釋放的張量再次需要訪問(wèn)時(shí), 從現(xiàn)有的檢查點(diǎn)開(kāi)始重新計(jì)算. 由于引入了重計(jì)算, 訓(xùn)練會(huì)引入額外的計(jì)算時(shí)間, 該方法是一種用時(shí)間換取空間的方法, 所以保留不同的檢查點(diǎn)會(huì)引入不同的重計(jì)算時(shí)間. Chen等[6]把網(wǎng)絡(luò)分成多個(gè)部分, 每部分只保留其輸入, 對(duì)于每部分的其他張量都重新計(jì)算. Checkmate[7]不同于文獻(xiàn)[6]的工作, 其探究了在顯存容量的限制下, 哪些張量作為檢查點(diǎn)能引入最小的額外計(jì)算時(shí)間, 將重計(jì)算問(wèn)題抽象為線性規(guī)劃問(wèn)題, 用現(xiàn)有的求解器解決重計(jì)算問(wèn)題.

    卸載和預(yù)取會(huì)導(dǎo)致額外的阻塞時(shí)間, 而重計(jì)算會(huì)引入額外的計(jì)算時(shí)間. 文獻(xiàn)[12]認(rèn)為卷積計(jì)算時(shí)間較長(zhǎng), 不適合用于重計(jì)算, 所以卸載和預(yù)取卷積計(jì)算的輸出張量, 而對(duì)于激活、 批標(biāo)準(zhǔn)化的輸出張量, 它們的計(jì)算時(shí)間相對(duì)較少, 適合用于重計(jì)算. 文獻(xiàn)[13]研究表明, 以往的卸載和重計(jì)算的結(jié)合都是以神經(jīng)網(wǎng)絡(luò)層的粒度管理顯存, 然而一個(gè)網(wǎng)絡(luò)層中也會(huì)存在多個(gè)計(jì)算, 所以提出了張量粒度的顯存管理方案. STR認(rèn)為在非線性卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練時(shí), 一個(gè)張量會(huì)被多次訪問(wèn), 所以STR通過(guò)多次預(yù)取已卸載的張量減少重計(jì)算的時(shí)間.

    當(dāng)顯存壓力較大, 空閑顯存匱乏時(shí), 可通過(guò)卸載和重計(jì)算釋放更多的顯存, 為卷積算子增加空閑顯存. 如圖2所示, 它們是Vgg19在Tesla P40平臺(tái)上訓(xùn)練時(shí)的6個(gè)前向傳播的卷積計(jì)算, 使用了主流的CUDNN作為卷積算子庫(kù). 不可釋放顯存是當(dāng)前卷積計(jì)算依賴(lài)的輸入和輸出張量占用的顯存, 而可釋放顯存是暫時(shí)不用的張量顯存. 與現(xiàn)有的工作相同, 本文主要對(duì)前向傳播的輸出張量進(jìn)行顯存優(yōu)化, 所以圖2只統(tǒng)計(jì)了前向傳播的輸出張量. 在訓(xùn)練時(shí), 卸載和重計(jì)算可釋放的顯存, 為卷積計(jì)算騰出空閑顯存. 但卸載和重計(jì)算會(huì)引入更多的額外時(shí)間開(kāi)銷(xiāo), 所以將卸載和重計(jì)算引入的時(shí)間開(kāi)銷(xiāo)與更快卷積算子節(jié)省的時(shí)間權(quán)衡. 本文拓展了STR的模型, 對(duì)卸載、 重計(jì)算和卷積算子選擇進(jìn)行統(tǒng)一建模, 尋找卸載、 重計(jì)算和卷積算子的調(diào)度, 以減少訓(xùn)練時(shí)間.

    2 問(wèn)題模型與算法設(shè)計(jì)

    2.1 考慮卷積算子選擇的顯存優(yōu)化問(wèn)題描述

    由于深度神經(jīng)網(wǎng)絡(luò)框架如Tensorflow和Pytorch等的使用方便與性能強(qiáng)大, 神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)者常使用它們?cè)O(shè)計(jì)和訓(xùn)練網(wǎng)絡(luò). 這些主流的框架將深度神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過(guò)程表示成計(jì)算圖, 如有向無(wú)環(huán)圖(DAG). 計(jì)算圖由節(jié)點(diǎn)和邊組成, 節(jié)點(diǎn)表示計(jì)算, 如卷積、 矩陣相乘等, 邊表示數(shù)據(jù)依賴(lài), 如圖3中的DAG計(jì)算圖. 在訓(xùn)練時(shí), 訓(xùn)練框架會(huì)按照計(jì)算圖的拓?fù)渑判颍?依次執(zhí)行節(jié)點(diǎn)的計(jì)算[4,7].

    圖3中v18節(jié)點(diǎn)是Vgg19模型的一個(gè)卷積計(jì)算, 運(yùn)行在Tesla P40平臺(tái)上, 算子庫(kù)使用了8.0.5版本的CUDNN. 當(dāng)顯存壓力變大, 空閑顯存匱乏時(shí), 自動(dòng)算子選擇只能選擇不需要工作空間但耗時(shí)最長(zhǎng)的算子Implicit GEMM, 增加訓(xùn)練耗費(fèi)的時(shí)間. 所以MO-SOS算法要通過(guò)卸載和重計(jì)算為工作空間釋放顯存, 選擇更快的卷積算子. 選擇最快的算子Winograd Nonfused, 則需要通過(guò)卸載和重計(jì)算為工作空間釋放約2 GB的顯存. 相應(yīng)地, 卸載和重計(jì)算也會(huì)引入更多的額外時(shí)間開(kāi)銷(xiāo). 若引入的額外時(shí)間開(kāi)銷(xiāo)大于最快卷積算子節(jié)省的訓(xùn)練時(shí)間, 反而會(huì)增加訓(xùn)練時(shí)間. 另一種算子的選擇是工作空間少但耗時(shí)較長(zhǎng)的卷積算子Winograd. Winograd算子只需要通過(guò)卸載和重計(jì)算為工作空間釋放約6 MB的顯存.

    選擇最快或最慢的卷積算子都有可能增加訓(xùn)練時(shí)間, 所以需要對(duì)卷積算子、 卸載和重計(jì)算進(jìn)行統(tǒng)一建模, 尋找一個(gè)卷積算子和卸載/重計(jì)算的調(diào)度, 使得從v1計(jì)算節(jié)點(diǎn)到vn計(jì)算節(jié)點(diǎn)執(zhí)行時(shí)間最短. 針對(duì)卷積算子的選擇問(wèn)題, 本文從考慮卷積算子選擇問(wèn)題的定義、 卸載和預(yù)取建模及工作空間的顯存限制三方面進(jìn)行問(wèn)題模型的設(shè)計(jì).

    2.2 考慮卷積算子選擇問(wèn)題的定義

    設(shè)一個(gè)訓(xùn)練計(jì)算圖為G=(V,E), 其中V={v1,v2,…,vn}表示該計(jì)算圖有n個(gè)計(jì)算節(jié)點(diǎn), E表示計(jì)算節(jié)點(diǎn)之間的依賴(lài)關(guān)系. 每個(gè)計(jì)算節(jié)點(diǎn)vi的輸出需要Mi顯存存儲(chǔ)輸出張量. 每個(gè)計(jì)算節(jié)點(diǎn)vi依賴(lài)于其他計(jì)算節(jié)點(diǎn)的輸出vj

    /St+1,j≤∑aj/v=1Rt,j,v+Pss(t,j),j, t,j,(5)其中: ?ak表示k計(jì)算節(jié)點(diǎn)有多少種算子實(shí)現(xiàn); O和P變量表示卸載和預(yù)取的決策; 式(2)表示v1到vn計(jì)算節(jié)點(diǎn)都要計(jì)算一次; 式(3)約束了對(duì)于不同的計(jì)算節(jié)點(diǎn), 算子的選擇最多只能有一種. 如上所述, 每個(gè)計(jì)算節(jié)點(diǎn)都依賴(lài)于其他計(jì)算節(jié)點(diǎn)的輸出張量. 本文使用卸載和重計(jì)算釋放顯存空間, 在某個(gè)節(jié)點(diǎn)計(jì)算時(shí), 它依賴(lài)的張量可能并不存在于顯存中, 它可能未重計(jì)算或者預(yù)取回顯存. 所以MO-SOS算法使用St,j變量表示在t階段時(shí), j張量是否可以訪問(wèn). 式(4)表示在計(jì)算每個(gè)節(jié)點(diǎn)時(shí)它依賴(lài)的張量必須可以訪問(wèn), DEPS[k]表示k計(jì)算節(jié)點(diǎn)的依賴(lài)張量. 而式(5)表示如果在t階段重計(jì)算或者預(yù)取回了j張量, 則j張量在之后的計(jì)算中能被其他計(jì)算節(jié)點(diǎn)訪問(wèn).

    2.3 卸載和預(yù)取建模

    由于卸載、 預(yù)取與重計(jì)算可以并行, 因此MO-SOS算法可通過(guò)卸載和預(yù)取減少需要重計(jì)算的張量. 但為保證卸載與預(yù)取的正確性, MO-SOS算法需要對(duì)卸載和預(yù)取進(jìn)行約束. 本文規(guī)定在每個(gè)節(jié)點(diǎn)計(jì)算的開(kāi)端, 開(kāi)始卸載或預(yù)取張量. Ot,j表示在t階段是否開(kāi)始卸載j張量, Pt,j表示在t階段是否開(kāi)始預(yù)取j張量, 則∑n/t=1Ot,j≤1, j,(6)

    式(6)表示每個(gè)張量只能卸載一次, 因?yàn)閺埩勘恍遁d到CPU內(nèi)存后, 內(nèi)存中的張量可作為備份多次預(yù)取. 式(7)表示在卸載時(shí)張量的數(shù)據(jù)必須是可以訪問(wèn)的, 否則會(huì)傳輸臟數(shù)據(jù). ss(t,i)表示在t階段完整地卸載或預(yù)取i張量, 需要在哪個(gè)階段開(kāi)始卸載或預(yù)取; sf(t,i)表示在t階段開(kāi)始卸載或預(yù)取i張量, 會(huì)在哪個(gè)階段完成. 這兩個(gè)函數(shù)可以根據(jù)PCIE總線帶寬、 張量大小和每個(gè)節(jié)點(diǎn)的計(jì)算時(shí)間計(jì)算得出. 但不同的卷積算子耗費(fèi)不同的卷積時(shí)間. 為解決上述問(wèn)題, 在計(jì)算ss和sf函數(shù)時(shí), 可根據(jù)最快的卷積算子計(jì)算, 保證卸載和預(yù)取不會(huì)阻塞計(jì)算. 式(8)表示如果沒(méi)有預(yù)取就不會(huì)卸載張量, 且m是可設(shè)置的參數(shù). 式(9)表示預(yù)取必須在張量卸載完成后開(kāi)始. 此外, 本文限制了每個(gè)階段只能卸載或預(yù)取一個(gè)張量, 即Ot,j≤∑

    2.4 考慮工作空間的顯存限制

    為約束每個(gè)節(jié)點(diǎn)運(yùn)行時(shí)顯存不會(huì)溢出, 需要定義一個(gè)變量表示每個(gè)節(jié)點(diǎn)計(jì)算時(shí)需要的顯存. 所以用Ut,k表示在t階段計(jì)算k節(jié)點(diǎn)時(shí)需要的顯存, Ut,0表示在t階段開(kāi)始時(shí)需要的顯存, 它包括模型的輸入、 參數(shù)、 梯度以及作為檢查點(diǎn)的張量Ut,0=Minput+Mparam+Mgrad+∑n/j=1St,jMj+∑(x,y)∈OCC(t)MyPx,y.(14)此外, 預(yù)取也會(huì)占用顯存, 所以O(shè)CC(t)表示了哪些張量的預(yù)取在t階段占用顯存. 然后遞歸地計(jì)算t階段每個(gè)節(jié)點(diǎn)計(jì)算時(shí)需要的顯存Ut,k:Ut,k+1=Ut,k-mem_free(k)+∑ak+1/v=1Rt,k+1,vMk+1+∑

    MO-SOS算法希望通過(guò)卸載和重計(jì)算騰出更多的顯存空間, 以選擇更快的卷積算子, 進(jìn)而減少訓(xùn)練時(shí)間. 式(2)~(5)保證了重計(jì)算的正確性, 式(6)~(13)保證了卸載和預(yù)取的正確性, 且式(14)~(18)約束了顯存占用. 該問(wèn)題是難以解決的NP-難問(wèn)題, 求解空間巨大, 無(wú)法通過(guò)高復(fù)雜度的遍歷算法求解, 因此需要有針對(duì)性地進(jìn)行模型設(shè)計(jì).

    2.5 算法設(shè)計(jì)

    本文問(wèn)題可以使用求解器根據(jù)輸入的計(jì)算圖和GPU的顯存限制求解一個(gè)可行的方案. 目標(biāo)公式(1)中的R,S,O,P, Free都是0~1變量, 所以是一個(gè)整數(shù)規(guī)劃問(wèn)題. MO-SOS算法使用現(xiàn)有的求解器去搜索一個(gè)可行的結(jié)果, 例如Gurobi,Cplex,Scip等. Gurobi是大規(guī)模數(shù)學(xué)規(guī)劃優(yōu)化器, 在多個(gè)整數(shù)規(guī)劃問(wèn)題中有更快的優(yōu)化速度, 適合于本文的最小化問(wèn)題.

    根據(jù)Gurobi求解器給出的結(jié)果, MO-SOS算法會(huì)產(chǎn)生一個(gè)顯存管理調(diào)度L={l1,l2,…,lk}, 其中l(wèi)i是顯存管理的操作, 如計(jì)算張量、 釋放張量、 卸載張量和預(yù)取張量. MO-SOS算法如下.

    MO-SOS算法遍歷所有的R,O,P, Free變量去制定顯存管理調(diào)度. 如果Ri,j,v為1, 則在i階段, MO-SOS算法要計(jì)算j張量, 添加顯存管理操作計(jì)算張量j到L中, 使用v算子, 即代碼10)~12), Algoj表示j節(jié)點(diǎn)的算子數(shù)量. 如果Oi,k或Pi,k為1, 則在i階段, MO-SOS算法要卸載或預(yù)取k張量, 添加顯存管理操作卸載或預(yù)取k張量到L中, 即代碼4)~6). 如果Freei,j,t為1, 則在i階段, 計(jì)算j張量后, MO-SOS算法釋放t張量, 添加顯存管理操作釋放t張量到L中, 即代碼15)~17).

    3 實(shí) 驗(yàn)

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

    本文選取兩種卷積神經(jīng)網(wǎng)絡(luò)Vgg19和Unet, 使用C++,CUDA和CUDNN實(shí)現(xiàn)Vgg19和Unet的訓(xùn)練, CUDA的版本是11.1, CUDNN的版本是8.0.5. Vgg19在訓(xùn)練時(shí)使用數(shù)據(jù)集Imagenet, 圖片大小為227×227, Unet在訓(xùn)練時(shí)使用數(shù)據(jù)集Data Science Bowl, 圖片大小為256×256. 它們訓(xùn)練的批次大小分別為144和120. 實(shí)驗(yàn)環(huán)境采用Ubuntu18.04操作系統(tǒng), CPU為Intel(R) Xeon(R) CPU E5-2680 v4, 內(nèi)存為125 GB. 實(shí)驗(yàn)使用的GPU為英偉達(dá)的Tesla P40, 顯存為24 GB, 而PCIE總線的卸載和預(yù)取速度分別至少達(dá)12 GB/s和11 GB/s. 求解整數(shù)規(guī)劃問(wèn)題的求解器使用Gurobi, 版本為9.5.2.

    本文將智能算子選擇算法MO-SOS和自動(dòng)算子選擇算法Auto進(jìn)行比較. 為能在顯存壓力較大的情況下進(jìn)行實(shí)驗(yàn), 給自動(dòng)算子選擇算法配置兩種最新的顯存優(yōu)化方法: Checkmate(只有重計(jì)算)和STR(卸載和重計(jì)算相結(jié)合). 這兩種顯存優(yōu)化算法與自動(dòng)算子選擇結(jié)合后分別為Checkmate-Auto和STR-Auto算法. 本文設(shè)置了不同的顯存比例, 逐漸減少能使用的顯存, 增加訓(xùn)練的顯存壓力, 測(cè)試了Checkmate-Auto,STR-Auto和MO-SOS算法的訓(xùn)練時(shí)間. 由于訓(xùn)練是多個(gè)訓(xùn)練步組成的, 每個(gè)訓(xùn)練步執(zhí)行時(shí)間浮動(dòng)較小, 所以本文對(duì)每個(gè)神經(jīng)網(wǎng)絡(luò)測(cè)試了20個(gè)訓(xùn)練步, 取平均值作為每個(gè)神經(jīng)網(wǎng)絡(luò)一個(gè)訓(xùn)練步的執(zhí)行時(shí)間. 本文測(cè)試了在不同的顯存壓力下, 智能算子選擇算法和自動(dòng)算子選擇算法訓(xùn)練步的執(zhí)行時(shí)間, 以考察智能算子選擇算法能否縮短訓(xùn)練時(shí)間.

    [HT5H〗3.2 實(shí)驗(yàn)結(jié)果分析

    圖4為不同算法對(duì)Vgg19和Unet一個(gè)訓(xùn)練步的執(zhí)行時(shí)間. 由圖4可見(jiàn), 智能算子選擇算法在多種顯存壓力下都優(yōu)于自動(dòng)算子選擇算法. 本文的智能算子選擇算法MO-SOS平均比只有重計(jì)算的Checkmate-Auto算法減少了13.53%的訓(xùn)練時(shí)間, 比卸載和重計(jì)算結(jié)合的STR-Auto算法減少了4.36%的訓(xùn)練時(shí)間. 在顯存比例為0.8和0.7, 顯存壓力較小時(shí), MO-SOS和STR-Auto算法的訓(xùn)練時(shí)間基本相當(dāng), 而結(jié)合了卸載的MO-SOS和STR-Auto算法仍比Checkmate-Auto算法減少約11.2%的訓(xùn)練時(shí)間, 這主要是前者使用卸載減少了需要重計(jì)算的張量.

    隨著顯存壓力變大, MO-SOS算法的訓(xùn)練時(shí)間逐漸比STR-Auto算法減少. 這是因?yàn)轱@存壓力變大, STR-Auto算法沒(méi)有為更快的卷積算子釋放更多的顯存, 選擇了更慢的卷積算子, 增加了訓(xùn)練時(shí)間. 但對(duì)于Unet網(wǎng)絡(luò), 在顯存比例為0.4時(shí), MO-SOS與STR-Auto算法的訓(xùn)練時(shí)間差距縮小. 不同于Vgg19, Unet是非線性網(wǎng)絡(luò), 前向傳播的輸出張量不僅在后向傳播計(jì)算梯度時(shí)多次使用, 并且在前向傳播中也會(huì)多次使用. 所以Unet在訓(xùn)練時(shí)需要長(zhǎng)時(shí)間保存多個(gè)張量, 導(dǎo)致更大的顯存壓力, 難以選擇更快的卷積算子.

    MO-SOS和STR-Auto算法訓(xùn)練時(shí)間比Checkmate-Auto算法少, 這是因?yàn)榍罢咄ㄟ^(guò)卸載減少了重計(jì)算的張量. 如圖5所示, 在Vgg19訓(xùn)練時(shí), MO-SOS和STR-Auto算法在顯存比例為0.7時(shí)只有卸載, 而Checkmate-Auto算法只有重計(jì)算. MO-SOS和STR-Auto算法通過(guò)卸載騰出了足夠的顯存, 所以它們的卷積計(jì)算和其他計(jì)算的耗時(shí)都明顯少于Checkmate-Auto算法.

    MO-SOS算法訓(xùn)練時(shí)間比STR-Auto算法少, 是因?yàn)镸O-SOS算法卸載和重計(jì)算更多的張量以增加空閑顯存, 選擇更快的卷積算子減少訓(xùn)練時(shí)間. 由圖5可見(jiàn), 當(dāng)顯存比例為0.7時(shí), MO-SOS算法比STR-Auto算法卸載的張量更多. 所以MO-SOS算法的卷積計(jì)算耗時(shí)少于STR-Auto算法. 隨著顯存壓力增大, MO-SOS和STR-Auto算法逐漸增加了重計(jì)算的張量以釋放顯存. 當(dāng)顯存比例為0.5時(shí), 為給卷積計(jì)算的工作空間騰出更多的顯存, MO-SOS算法卸載和重計(jì)算的張量多于STR-Auto算法. 所以MO-SOS算法的其他計(jì)算耗時(shí)多于STR-Auto算法, 但MO-SOS算法的卷積計(jì)算耗時(shí)明顯少于STR-Auto算法, 總體訓(xùn)練時(shí)間也少于STR-Auto算法.

    實(shí)驗(yàn)結(jié)果表明, 可以通過(guò)卸載和重計(jì)算為卷積計(jì)算增加空閑顯存, 選擇更快的卷積算子減少訓(xùn)練時(shí)間. 在顯存壓力較小時(shí), 減少的訓(xùn)練時(shí)間并不明顯. 但隨著顯存壓力增大, 自動(dòng)算子選擇算法的空閑顯存逐漸減少, 選擇了更慢的卷積算子. 而智能算子選擇算法通過(guò)卸載和重計(jì)算釋放了更多的顯存, 選擇了更快的卷積算子, 進(jìn)而縮短了訓(xùn)練時(shí)間.

    綜上所述, 針對(duì)自動(dòng)算子選擇算法在空閑顯存匱乏時(shí)會(huì)選擇工作空間需求少但耗時(shí)長(zhǎng)的卷積算子, 降低了訓(xùn)練的性能、 增加了訓(xùn)練時(shí)間的問(wèn)題, 本文提出了一種智能算子選擇算法, 通過(guò)卸載和重計(jì)算增加空閑顯存. 本文對(duì)卸載、 重計(jì)算和卷積算子選擇進(jìn)行了統(tǒng)一的整數(shù)規(guī)劃建模, 使用現(xiàn)有的求解器進(jìn)行求解, 并對(duì)多種網(wǎng)絡(luò)在各種顯存壓力下進(jìn)行實(shí)驗(yàn). 實(shí)驗(yàn)結(jié)果表明, 智能算子選擇算法在多種顯存壓力下優(yōu)于自動(dòng)算子選擇算法.

    參考文獻(xiàn)

    [1]ABADI M, BARHAM P, CHEN J, et al. Tensorflow: A System for Large-Scale Machine Learning [C]//Proceedings of the 12th USENIX Conference on Operating Systems Design and Implementation. New York: ACM, 2016: 265-283.

    [2]RHU M, GIMELSHEIN N, CLEMONS J, et al. vDNN: Virtualized Deep Neural Networks for Scalable, Memory-Efficient Neural Network Design [C]//2016 49th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO). Piscataway, NJ: IEEE, 2016: 1-13.

    [3]SHRIRAM S B, GARG A, KULKARNI P. Dynamic Memory Management for GPU-Based Training of Deep Neural Networks [C]//2019 IEEE International Parallel and Distributed Processing Symposium (IPDPS). Piscataway, NJ: IEEE, 2019: 200-209.

    [4]HUANG C C, JIN G, LI J. Swapadvisor: Pushing Deep Learning Beyond the GPU Memory Limit via Smart Swapping [C]//Proceedings of the Twenty-Fifth International Conference on Architectural Support for ProgrammingLanguages and Operating Systems. New York: ACM, 2020: 1341-1355.

    [5]BAE J, LEE J, JIN Y, et al. FlashNeuron: SSD-Enabled Large-Batch Training of Very Deep Neural Networks [C]//Proceedings of the 12th USENIX Conference on Operating Systems Design and Implementation. New York: ACM, 2021: 387-401.

    [6]CHEN T Q, XU B, ZHANG C Y, et al. Training Deep Nets with Sublinear Memory Cost [EB/OL]. (2016-04-21)[2023-02-01]. https://arxiv.org/abs/1604.06174.

    [7]JAIN P, JAIN A, NRUSIMHA A, et al. Checkmate: Breaking the Memory Wall with Optimal Tensor Rematerialization [EB/OL]. (2019-10-07)[2023-02-01]. https://arxiv.org/abs/1910.02653.

    [8]MATHIEU M, HENAFF M, LeCUN Y. Fast Training of Convolutional Networks through Ffts [EB/OL]. (2013-12-20)[2023-02-15]. https://arxiv.org/abs/1312.5851.

    [9]LAVIN A, GRAY S. Fast Algorithms for Convolutional Neural Networks [C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Piscataway, NJ: IEEE, 2016: 4013-4021.

    [10]SIMONYAN K, ZISSERMAN A. Very Deep Convolutional Networks for Large-Scale Image Recognition [EB/OL]. (2014-09-04)[2023-01-20]. https://arxiv.org/abs/1409.1556.

    [11]WEN L J, ZONG Z, LIN L, et al. A Swap Dominated Tensor Re-generation Strategy for Training Deep Learning Models [C]//2022 IEEE International Parallel and Distributed Processing Symposium (IPDPS). Piscataway, NJ: IEEE, 2022: 996-1006.

    [12]WANG L N, YE J M, ZHAO Y Y, et al. Superneurons: Dynamic GPU Memory Management for Training Deep Neural Networks [C]//Proceedings of the 23rd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming. New York: ACM, 2018: 41-53.

    [13]PENG X, SHI X H, DAI H L, et al. Capuchin: Tensor-Based GPU Memory Management for Deep Learning [C]//Proceedings of the Twenty-Fifth International Conference on Architectural Support for Programming Languages and Operating Systems. New York: ACM, 2020: 891-905.

    (責(zé)任編輯:? 韓 嘯)

    收稿日期: 2023-04-06.

    第一作者簡(jiǎn)介: 魏曉輝(1972—), 男, 漢族, 博士, 教授, 博士生導(dǎo)師, 從事分布式系統(tǒng)、 網(wǎng)格系統(tǒng)與網(wǎng)絡(luò)安全的研究, E-mail: weixh@jlu.edu.cn.

    通信作者簡(jiǎn)介: 李洪亮(1983—), 男, 漢族, 博士, 副教授, 博士生導(dǎo)師, 從事分布式系統(tǒng)與虛擬化的研究, E-mail: lihongliang@jlu.edu.cn.

    基金項(xiàng)目: 吉林省自然科學(xué)基金面上項(xiàng)目(批準(zhǔn)號(hào): 20230101062JC).

    真人一进一出gif抽搐免费| 国产精品爽爽va在线观看网站| 看片在线看免费视频| 老师上课跳d突然被开到最大视频 久久午夜综合久久蜜桃 | 特级一级黄色大片| 精品无人区乱码1区二区| 欧美xxxx黑人xx丫x性爽| 免费高清视频大片| 亚洲av.av天堂| 国产av在哪里看| 国产高清三级在线| 亚洲人成电影免费在线| 亚洲美女视频黄频| 成人av一区二区三区在线看| 亚洲一区二区三区不卡视频| 又黄又爽又刺激的免费视频.| 亚洲国产色片| 嫁个100分男人电影在线观看| 在现免费观看毛片| 十八禁人妻一区二区| 成人性生交大片免费视频hd| 深爱激情五月婷婷| 在线观看美女被高潮喷水网站 | 日韩av在线大香蕉| 精品久久久久久久末码| 日韩亚洲欧美综合| 亚洲人成伊人成综合网2020| 色综合欧美亚洲国产小说| 国产精品亚洲av一区麻豆| 一级黄片播放器| 久久久久性生活片| 日韩有码中文字幕| 日日干狠狠操夜夜爽| a级毛片免费高清观看在线播放| 精品久久国产蜜桃| 久久久久久久久久黄片| 日本五十路高清| 在线观看免费视频日本深夜| 亚洲国产精品合色在线| 老女人水多毛片| 国产成人a区在线观看| 国产大屁股一区二区在线视频| 非洲黑人性xxxx精品又粗又长| 色播亚洲综合网| 亚洲av一区综合| 成人特级av手机在线观看| 久久这里只有精品中国| 亚洲av成人不卡在线观看播放网| 国产一区二区三区视频了| 免费av不卡在线播放| 窝窝影院91人妻| 丰满人妻熟妇乱又伦精品不卡| 舔av片在线| 国产精品久久久久久人妻精品电影| 十八禁人妻一区二区| 桃色一区二区三区在线观看| 又爽又黄无遮挡网站| 热99re8久久精品国产| 老司机午夜十八禁免费视频| 免费在线观看成人毛片| 亚洲第一欧美日韩一区二区三区| 国产精品一区二区免费欧美| 精品一区二区三区视频在线观看免费| 国产主播在线观看一区二区| 51午夜福利影视在线观看| 两人在一起打扑克的视频| 午夜免费男女啪啪视频观看 | 99国产精品一区二区三区| 我的老师免费观看完整版| 99国产极品粉嫩在线观看| 99视频精品全部免费 在线| 欧美绝顶高潮抽搐喷水| 一个人看视频在线观看www免费| 国产精品乱码一区二三区的特点| 亚洲电影在线观看av| 日韩中文字幕欧美一区二区| 97碰自拍视频| 五月伊人婷婷丁香| 国产高清有码在线观看视频| 国产久久久一区二区三区| 白带黄色成豆腐渣| 日本 av在线| 色播亚洲综合网| 丰满人妻熟妇乱又伦精品不卡| 在线a可以看的网站| 久久婷婷人人爽人人干人人爱| 一个人观看的视频www高清免费观看| 最新在线观看一区二区三区| 亚洲三级黄色毛片| 俄罗斯特黄特色一大片| 久久99热这里只有精品18| 搡老岳熟女国产| 一二三四社区在线视频社区8| 一区二区三区免费毛片| 最新在线观看一区二区三区| 真人做人爱边吃奶动态| 熟妇人妻久久中文字幕3abv| 嫩草影视91久久| 他把我摸到了高潮在线观看| 日日干狠狠操夜夜爽| 欧美色视频一区免费| 美女 人体艺术 gogo| 亚洲第一欧美日韩一区二区三区| 精品日产1卡2卡| 美女被艹到高潮喷水动态| 亚洲成人免费电影在线观看| 我的老师免费观看完整版| 精品一区二区三区人妻视频| 日韩人妻高清精品专区| 亚洲美女黄片视频| 91av网一区二区| 国产欧美日韩精品亚洲av| 97热精品久久久久久| 国产v大片淫在线免费观看| 高清在线国产一区| 色5月婷婷丁香| 国产精品国产高清国产av| 小说图片视频综合网站| 在线观看av片永久免费下载| 国产不卡一卡二| 他把我摸到了高潮在线观看| 国产精品一区二区三区四区久久| 免费观看人在逋| 国产成人影院久久av| 在线看三级毛片| 欧美国产日韩亚洲一区| 国产探花极品一区二区| 不卡一级毛片| 色综合亚洲欧美另类图片| 99国产综合亚洲精品| 日韩有码中文字幕| 日韩欧美国产在线观看| 欧美+日韩+精品| 免费在线观看影片大全网站| 国产不卡一卡二| 九九热线精品视视频播放| 久久久色成人| 别揉我奶头 嗯啊视频| 99精品在免费线老司机午夜| av福利片在线观看| 好男人电影高清在线观看| 亚洲美女视频黄频| 麻豆国产97在线/欧美| 69av精品久久久久久| 久久精品综合一区二区三区| 国产亚洲av嫩草精品影院| 一个人免费在线观看电影| 99久久精品国产亚洲精品| 国产伦精品一区二区三区四那| 每晚都被弄得嗷嗷叫到高潮| 亚洲av.av天堂| 欧美一区二区亚洲| 美女cb高潮喷水在线观看| 亚洲人成网站在线播| 伊人久久精品亚洲午夜| 神马国产精品三级电影在线观看| 九色成人免费人妻av| 麻豆成人午夜福利视频| 看免费av毛片| 亚洲专区国产一区二区| 日韩精品青青久久久久久| 日韩欧美国产一区二区入口| 国产精品一及| 亚洲av熟女| 精品欧美国产一区二区三| 国产成人影院久久av| 亚洲不卡免费看| 激情在线观看视频在线高清| 日韩成人在线观看一区二区三区| 亚洲av成人av| 欧美成人一区二区免费高清观看| 色视频www国产| 一本综合久久免费| 91av网一区二区| 国产精品自产拍在线观看55亚洲| 久99久视频精品免费| 国产色婷婷99| 久久国产精品影院| 精华霜和精华液先用哪个| 深爱激情五月婷婷| 18禁黄网站禁片午夜丰满| 波多野结衣巨乳人妻| 好男人电影高清在线观看| 天堂√8在线中文| 亚洲av熟女| 免费看日本二区| av黄色大香蕉| 激情在线观看视频在线高清| 精华霜和精华液先用哪个| 两个人视频免费观看高清| 久久九九热精品免费| 亚洲av电影不卡..在线观看| 久久久久久久久中文| 九九在线视频观看精品| 老熟妇乱子伦视频在线观看| 此物有八面人人有两片| 国产私拍福利视频在线观看| 色播亚洲综合网| 国产成人aa在线观看| 99精品在免费线老司机午夜| 欧美区成人在线视频| 中文字幕人成人乱码亚洲影| 国产精品三级大全| 能在线免费观看的黄片| 欧美3d第一页| 国产成+人综合+亚洲专区| 12—13女人毛片做爰片一| 最好的美女福利视频网| 91av网一区二区| 毛片一级片免费看久久久久 | 国产一区二区在线av高清观看| 亚洲黑人精品在线| 日本撒尿小便嘘嘘汇集6| 国产精品人妻久久久久久| 欧美又色又爽又黄视频| 噜噜噜噜噜久久久久久91| 午夜激情福利司机影院| 夜夜躁狠狠躁天天躁| 又紧又爽又黄一区二区| 黄色女人牲交| 国产精品女同一区二区软件 | 久久99热6这里只有精品| 好看av亚洲va欧美ⅴa在| 欧美又色又爽又黄视频| 亚洲综合色惰| 99精品久久久久人妻精品| 精品国内亚洲2022精品成人| 国产视频一区二区在线看| 日韩欧美三级三区| 一个人免费在线观看的高清视频| 久久精品影院6| 一夜夜www| 18禁裸乳无遮挡免费网站照片| 久久久色成人| 99久久精品一区二区三区| 男人舔奶头视频| av在线天堂中文字幕| 欧美黄色淫秽网站| 99久久精品一区二区三区| 九九在线视频观看精品| 亚洲激情在线av| 久久性视频一级片| 中文字幕人妻熟人妻熟丝袜美| 亚洲午夜理论影院| 久久热精品热| 国产不卡一卡二| 天美传媒精品一区二区| 非洲黑人性xxxx精品又粗又长| 中文字幕高清在线视频| 欧美又色又爽又黄视频| 九九热线精品视视频播放| 禁无遮挡网站| 99久国产av精品| 成人亚洲精品av一区二区| 乱码一卡2卡4卡精品| 欧美一级a爱片免费观看看| 欧美潮喷喷水| 免费av观看视频| 国产老妇女一区| 国产成年人精品一区二区| 欧美成狂野欧美在线观看| 国内久久婷婷六月综合欲色啪| 99视频精品全部免费 在线| 99在线人妻在线中文字幕| 免费在线观看亚洲国产| 日日摸夜夜添夜夜添小说| 两个人的视频大全免费| 国产黄色小视频在线观看| 别揉我奶头 嗯啊视频| 我的老师免费观看完整版| 亚洲精品成人久久久久久| 最新中文字幕久久久久| 美女xxoo啪啪120秒动态图 | 亚洲激情在线av| 国产麻豆成人av免费视频| 欧美激情国产日韩精品一区| 日本 av在线| 禁无遮挡网站| 国产又黄又爽又无遮挡在线| 天天一区二区日本电影三级| 久久精品国产亚洲av香蕉五月| 久久久色成人| 欧美乱色亚洲激情| 久久国产乱子伦精品免费另类| 男女床上黄色一级片免费看| 免费看日本二区| 亚洲最大成人中文| 国产精品影院久久| 精品国产三级普通话版| 亚洲美女视频黄频| 岛国在线免费视频观看| 日韩有码中文字幕| 久久久久久久亚洲中文字幕 | 久久久久久久久久黄片| 51国产日韩欧美| 免费观看精品视频网站| 日本黄色视频三级网站网址| 最新中文字幕久久久久| 欧美一区二区亚洲| 99久国产av精品| 99久久九九国产精品国产免费| 免费av毛片视频| 午夜免费激情av| 精品无人区乱码1区二区| 天堂影院成人在线观看| 免费一级毛片在线播放高清视频| 久久国产精品影院| 97人妻精品一区二区三区麻豆| 一级毛片久久久久久久久女| 首页视频小说图片口味搜索| 欧美+日韩+精品| 老熟妇仑乱视频hdxx| 少妇丰满av| 最近视频中文字幕2019在线8| 美女 人体艺术 gogo| 亚洲一区二区三区不卡视频| 国产高清激情床上av| 国产成人影院久久av| 熟女人妻精品中文字幕| 精品久久久久久久久久免费视频| 亚洲午夜理论影院| 国内少妇人妻偷人精品xxx网站| www日本黄色视频网| 国产伦人伦偷精品视频| 亚洲国产精品久久男人天堂| 亚洲av五月六月丁香网| 少妇被粗大猛烈的视频| 亚洲av美国av| 欧美成狂野欧美在线观看| 黄色丝袜av网址大全| 国产精品不卡视频一区二区 | 亚洲人成网站在线播放欧美日韩| 久久亚洲精品不卡| 日韩av在线大香蕉| 成熟少妇高潮喷水视频| 全区人妻精品视频| 国产高清视频在线播放一区| 九九久久精品国产亚洲av麻豆| 免费电影在线观看免费观看| www.www免费av| 亚洲av电影不卡..在线观看| 亚洲av成人精品一区久久| 日日摸夜夜添夜夜添av毛片 | 亚洲成人久久性| 99久久九九国产精品国产免费| 男人舔奶头视频| 极品教师在线免费播放| 日韩有码中文字幕| 免费人成在线观看视频色| 亚洲av二区三区四区| 国产免费av片在线观看野外av| 一个人观看的视频www高清免费观看| 狂野欧美白嫩少妇大欣赏| 看十八女毛片水多多多| 丰满的人妻完整版| 亚洲欧美清纯卡通| 亚洲男人的天堂狠狠| 午夜视频国产福利| 日韩欧美 国产精品| 亚洲最大成人av| 亚洲一区高清亚洲精品| 国产淫片久久久久久久久 | 禁无遮挡网站| 成人av在线播放网站| 亚洲在线自拍视频| 国产极品精品免费视频能看的| 国产免费av片在线观看野外av| 免费人成视频x8x8入口观看| 欧美丝袜亚洲另类 | 亚洲真实伦在线观看| 长腿黑丝高跟| 亚洲五月天丁香| 精品久久久久久成人av| 国产伦一二天堂av在线观看| 国产三级中文精品| a级毛片免费高清观看在线播放| 久久午夜亚洲精品久久| 国产精品一区二区免费欧美| 日韩免费av在线播放| 女生性感内裤真人,穿戴方法视频| 久久午夜福利片| 亚洲美女搞黄在线观看 | 免费av毛片视频| 日日干狠狠操夜夜爽| 国产精品亚洲av一区麻豆| 久久久久久久久中文| 伦理电影大哥的女人| 男人舔奶头视频| 黄色女人牲交| 欧美黑人巨大hd| 免费黄网站久久成人精品 | 精品久久久久久久久av| 99热这里只有是精品在线观看 | 国产伦精品一区二区三区视频9| 一边摸一边抽搐一进一小说| 成人精品一区二区免费| 亚洲欧美日韩无卡精品| 欧美xxxx黑人xx丫x性爽| 丁香六月欧美| 美女免费视频网站| 亚洲精华国产精华精| 中文字幕久久专区| 久久婷婷人人爽人人干人人爱| 亚洲久久久久久中文字幕| 免费av不卡在线播放| 十八禁网站免费在线| 简卡轻食公司| 国产精品一区二区三区四区免费观看 | 国产男靠女视频免费网站| www.999成人在线观看| 日日干狠狠操夜夜爽| 首页视频小说图片口味搜索| 免费人成在线观看视频色| 久久精品国产清高在天天线| 97热精品久久久久久| 国产探花在线观看一区二区| 精品人妻1区二区| 制服丝袜大香蕉在线| 国产精品久久电影中文字幕| 久久久久国产精品人妻aⅴ院| 色综合亚洲欧美另类图片| 日本一二三区视频观看| 9191精品国产免费久久| 一级a爱片免费观看的视频| 在线观看午夜福利视频| 亚洲天堂国产精品一区在线| 动漫黄色视频在线观看| 成人特级av手机在线观看| 又爽又黄无遮挡网站| 日本黄色视频三级网站网址| 天美传媒精品一区二区| 久久久久精品国产欧美久久久| 全区人妻精品视频| 变态另类丝袜制服| 国产精品亚洲av一区麻豆| 午夜福利高清视频| 国产精品自产拍在线观看55亚洲| 蜜桃亚洲精品一区二区三区| .国产精品久久| 国产欧美日韩精品亚洲av| 午夜激情福利司机影院| 日本成人三级电影网站| 国产欧美日韩一区二区三| 欧美xxxx性猛交bbbb| 熟妇人妻久久中文字幕3abv| 国产精品久久久久久精品电影| 欧美日韩福利视频一区二区| 亚洲人与动物交配视频| 男女那种视频在线观看| 国产高清视频在线播放一区| 免费大片18禁| 99久久成人亚洲精品观看| 午夜免费成人在线视频| 久久久久国内视频| 欧美潮喷喷水| 搡老岳熟女国产| 老鸭窝网址在线观看| 99久久99久久久精品蜜桃| 九九久久精品国产亚洲av麻豆| 亚洲av免费高清在线观看| 脱女人内裤的视频| 日韩欧美精品v在线| 俺也久久电影网| 九色国产91popny在线| 国产精品影院久久| 性色avwww在线观看| av在线老鸭窝| 国产精品久久久久久亚洲av鲁大| 啪啪无遮挡十八禁网站| 国产欧美日韩精品一区二区| 五月伊人婷婷丁香| 一本久久中文字幕| 欧美日韩国产亚洲二区| 国产不卡一卡二| 女人被狂操c到高潮| 婷婷精品国产亚洲av在线| 国产中年淑女户外野战色| 波多野结衣高清无吗| 如何舔出高潮| 男人舔女人下体高潮全视频| 精品99又大又爽又粗少妇毛片 | 搡女人真爽免费视频火全软件 | 91麻豆av在线| 3wmmmm亚洲av在线观看| 欧美一级a爱片免费观看看| 亚洲性夜色夜夜综合| 高潮久久久久久久久久久不卡| 国产精品精品国产色婷婷| 国产精品不卡视频一区二区 | 日本熟妇午夜| 国产黄色小视频在线观看| 国产精品亚洲美女久久久| av视频在线观看入口| 国产毛片a区久久久久| 成年人黄色毛片网站| 日本黄大片高清| 免费搜索国产男女视频| 一区二区三区高清视频在线| av女优亚洲男人天堂| 欧美+亚洲+日韩+国产| 两人在一起打扑克的视频| 国产三级在线视频| 国产aⅴ精品一区二区三区波| 深夜精品福利| 亚洲三级黄色毛片| 少妇裸体淫交视频免费看高清| 欧美日韩国产亚洲二区| 桃红色精品国产亚洲av| 色哟哟哟哟哟哟| 简卡轻食公司| 最新中文字幕久久久久| 国产aⅴ精品一区二区三区波| 久久这里只有精品中国| 啦啦啦韩国在线观看视频| 亚洲内射少妇av| 国产精品永久免费网站| 亚洲av日韩精品久久久久久密| 在线观看舔阴道视频| 99在线人妻在线中文字幕| 可以在线观看毛片的网站| 九色成人免费人妻av| 成人一区二区视频在线观看| 欧美激情在线99| 国语自产精品视频在线第100页| 精品熟女少妇八av免费久了| 此物有八面人人有两片| 又爽又黄无遮挡网站| 美女高潮喷水抽搐中文字幕| 免费人成在线观看视频色| 女生性感内裤真人,穿戴方法视频| 国产熟女xx| 久久久久久久精品吃奶| 精品福利观看| 在线免费观看不下载黄p国产 | 国产精品一区二区性色av| 久9热在线精品视频| 亚洲国产精品sss在线观看| 久久精品国产亚洲av天美| 88av欧美| 亚洲欧美日韩东京热| 久久天躁狠狠躁夜夜2o2o| 国产精品久久久久久亚洲av鲁大| 中出人妻视频一区二区| www日本黄色视频网| 免费人成在线观看视频色| a级毛片免费高清观看在线播放| 久久久久久久久中文| 欧美成人一区二区免费高清观看| 国产精品久久久久久久电影| 国产亚洲av嫩草精品影院| 精品人妻视频免费看| 欧美另类亚洲清纯唯美| 欧美精品国产亚洲| 搡老熟女国产l中国老女人| 性色av乱码一区二区三区2| 精品一区二区三区视频在线观看免费| 在线国产一区二区在线| 我要搜黄色片| 麻豆久久精品国产亚洲av| 久99久视频精品免费| 男女下面进入的视频免费午夜| 九色国产91popny在线| 亚洲av日韩精品久久久久久密| 亚洲,欧美,日韩| 天天躁日日操中文字幕| 日本熟妇午夜| 男插女下体视频免费在线播放| 两个人的视频大全免费| 校园春色视频在线观看| 国产私拍福利视频在线观看| 内射极品少妇av片p| 一个人免费在线观看电影| 又紧又爽又黄一区二区| 成人鲁丝片一二三区免费| av欧美777| 欧美潮喷喷水| 91在线精品国自产拍蜜月| 99国产精品一区二区三区| 国产人妻一区二区三区在| 欧美日本亚洲视频在线播放| 又黄又爽又刺激的免费视频.| 最近视频中文字幕2019在线8| 一本综合久久免费| 色播亚洲综合网| av福利片在线观看| 国产精品亚洲av一区麻豆| 少妇被粗大猛烈的视频| 亚洲国产精品久久男人天堂| 午夜两性在线视频| 我要看日韩黄色一级片| 搞女人的毛片| 老鸭窝网址在线观看| 午夜福利在线在线| 欧美日韩亚洲国产一区二区在线观看| 亚洲国产精品sss在线观看| 国产综合懂色| 欧美一区二区国产精品久久精品| 久久精品国产亚洲av涩爱 | 亚洲第一电影网av| 欧美一区二区亚洲| 黄色一级大片看看| 久久午夜福利片| 久久人人精品亚洲av| 蜜桃亚洲精品一区二区三区| 丰满乱子伦码专区| 免费无遮挡裸体视频| 午夜免费激情av| 18禁黄网站禁片免费观看直播| 丰满人妻熟妇乱又伦精品不卡| 制服丝袜大香蕉在线| 亚洲经典国产精华液单 | 黄色配什么色好看| 最近最新免费中文字幕在线| 亚洲欧美日韩无卡精品| 亚洲天堂国产精品一区在线|