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

    基于張量虛擬機(jī)的深度神經(jīng)網(wǎng)絡(luò)模型加速方法

    2023-09-27 06:31:34申云飛
    計(jì)算機(jī)應(yīng)用 2023年9期
    關(guān)鍵詞:模擬器加速器算子

    申云飛,申 飛,李 芳,張 俊*

    (1.安徽大學(xué) 物質(zhì)科學(xué)與信息技術(shù)研究院,合肥 230031;2.中國科學(xué)院合肥物質(zhì)科學(xué)研究院 強(qiáng)磁場科學(xué)中心,合肥 230031;3.強(qiáng)磁場安徽省實(shí)驗(yàn)室,合肥 230031)

    0 引言

    近年來,隨著深度學(xué)習(xí)技術(shù)的快速發(fā)展與物聯(lián)網(wǎng)邊緣設(shè)備的普及,卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)成功應(yīng)用于圖像檢測與識別[1-2]、語音識別[3-4]、自然語言處理[5-6]等領(lǐng)域,并在自動駕駛、移動支付和公共安全等實(shí)際場景中得到廣泛應(yīng)用?,F(xiàn)有的網(wǎng)絡(luò)模型部署方式主要分為云端部署和終端部署。其中,云端部署方式是將模型部署在云數(shù)據(jù)中心,計(jì)算結(jié)果通過網(wǎng)絡(luò)返回到用戶端,具有推理速度快、對終端設(shè)備算力要求低的特點(diǎn),但同時(shí)也存在數(shù)據(jù)傳輸網(wǎng)絡(luò)延遲、用戶隱私泄露等問題。終端部署方式則是在終端直接實(shí)現(xiàn)模型推理,避免了云端部署存在的問題,但對終端設(shè)備算力、功耗要求較高。

    為解決終端部署方式存在的算力與功耗問題,工業(yè)界相繼推出高算力、低功耗的專用芯片(Application Specific Integrated Circuit,ASIC),如華為昇騰910、寒武紀(jì)1H8、華米“黃山1 號”等。專用ASIC 芯片具有開發(fā)成本高、靈活性低、制造周期長等特點(diǎn),適用于芯片需求量大、算法穩(wěn)定的場景。同時(shí),硬件廠商陸續(xù)推出用于硬件設(shè)備優(yōu)化部署的推理引擎,如Intel OpenVINO、Nvidia TensorRT、Google Mediapipe 和百度PaddleLite 等。但上述推理引擎只針對特定硬件,如Nvidia TensorRT 只支持Nvidia GPU、百度PaddleLite 只支持百度Edgeboard 開發(fā)板等。此外,由于ASIC 芯片設(shè)計(jì)固化后無法再調(diào)整,難以滿足模型快速迭代與升級的要求。

    現(xiàn)場可編程門陣列(Field-Programmable Gate Array,F(xiàn)PGA)是一種低成本、高性能、可重構(gòu)的可編程邏輯器件[7],填補(bǔ)了ASIC 芯片的空缺,是促進(jìn)模型從理論到落地應(yīng)用的優(yōu)良載體[8]。作為半定制化芯片,F(xiàn)PGA 通常需要對硬件結(jié)構(gòu)進(jìn)行二次設(shè)計(jì),將模型描述轉(zhuǎn)換成FPGA 可執(zhí)行的硬件代碼,并針對推理性能進(jìn)行多種優(yōu)化才能實(shí)現(xiàn)模型在FPGA 上的部署運(yùn)行。在FPGA 上實(shí)現(xiàn)深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Network,DNN)模型的優(yōu)化和部署,需要開發(fā)人員同時(shí)掌握人工智能(Artificial Intelligence,AI)技術(shù)和FPGA 設(shè)計(jì)編程技術(shù),存在準(zhǔn)入門檻較高、開發(fā)效率低下的問題。針對該現(xiàn)狀,部分FPGA 廠商適時(shí)推出了AI 加速平臺,如Xilinx Vitis AI 通過集成模型庫和軟件設(shè)計(jì)工具提供AI 開發(fā)功能,但它的算子覆蓋有限,并且主要應(yīng)用于Xilinx 的高端FPGA 型號。因此,DNN 模型的軟硬件適配、協(xié)同與融合仍是制約AI 技術(shù)大規(guī)模推廣應(yīng)用的關(guān)鍵問題。

    針對FPGA 存在的模型優(yōu)化部署問題,本文基于張量虛擬機(jī)(Tensor Virtual Machine,TVM)[9]提出一種DNN 模型在FPGA 上部署與加速的方法,并在PYNQ-Z2 開發(fā)板上實(shí)現(xiàn)了基于殘差網(wǎng)絡(luò)(Residual Network,ResNet)的分心駕駛行為分類算法,并驗(yàn)證了算法的有效性。TVM 是一個(gè)應(yīng)用于深度學(xué)習(xí)領(lǐng)域的端到端自動編譯優(yōu)化器,將不同框架(如PyTorch、TensorFlow、ONNX(Open Neural Network Exchange)等)訓(xùn)練的模型編譯為對應(yīng)目標(biāo)硬件(如CPU、GPU、FPGA、ASIC 等)的可執(zhí)行語言[9]。為更好支持FPGA 類終端設(shè)備,TVM 集成了一個(gè)通用的、可定制的多功能張量加速器(Versatile Tensor Accelerator,VTA)[10]。通過構(gòu)建端到端、以加速器為中心的DNN 編譯平臺,TVM 可實(shí)現(xiàn)硬件跨平臺編譯,并有效降低模型部署難度,同時(shí)保證模型的推理時(shí)間和推理精度,為CNN 在終端設(shè)備上的快速部署提供了新方案。

    本文利用TVM 編譯器,實(shí)現(xiàn)基于ResNet 的分心駕駛分類模型在高性價(jià)比FGPA 上的加速計(jì)算,既保證了檢測精度和實(shí)時(shí)性要求,又降低了模型落地成本,為分心駕駛行為分類應(yīng)用的落地提供了新的方案。分心駕駛是指駕駛員將注意力從駕駛上移開,進(jìn)行諸如發(fā)短信、打電話、和乘客聊天等分心駕駛行為。圖像分類任務(wù)廣泛使用的深度卷積神經(jīng)網(wǎng)絡(luò),由于模型參數(shù)量大,在分心駕駛這類移動場景應(yīng)用時(shí)無法滿足實(shí)時(shí)性需求,而現(xiàn)有的輕量化模型如MobileNet 系列,在解決模型參數(shù)問題的同時(shí)也帶來精度下降的問題,經(jīng)驗(yàn)證分析表明它并不適用于分心駕駛行為分類場景。分心駕駛行為分類的落地應(yīng)用,離不開對硬件成本的考量,而現(xiàn)有研究大多集中在提升分心駕駛模型精度方面[11-14],較少關(guān)注模型的快速、低成本部署應(yīng)用。本文聚焦于模型在邊緣端硬件的加速計(jì)算,使用ResNet 實(shí)現(xiàn)分心駕駛行為分類,并選取成本低廉的PYNQ-Z2 開發(fā)板作為搭載硬件,取得較好成效。

    1 相關(guān)工作

    當(dāng)前,深度神經(jīng)網(wǎng)絡(luò)(DNN)模型在FPGA 上部署與加速的方法如下:1)使用專用FPGA 加速器,針對FPGA 和DNN模型進(jìn)行優(yōu)化映射,生成高層綜合(High-Level Synthesis,HLS)、Verilog 或硬件描述語言(Very-High-speed integrated circuit hardware Description Language,VHDL),最后生成比特流;2)使用通用FPGA 加速器,將DNN 模型轉(zhuǎn)換為多級中間表示,并針對多級中間表示優(yōu)化編譯,最后生成硬件代碼。

    1.1 專用型FPGA加速器

    專用型FPGA 加速器根據(jù)體系架構(gòu)分為兩類:流式架構(gòu)FPGA 加速器和處理器架構(gòu)FPGA 加速器。

    流式架構(gòu)FPGA 加速器如圖1(a)所示,由多個(gè)不同的硬件塊組成,模型的每一層對應(yīng)生成一個(gè)硬件塊,各硬件塊的性能分別進(jìn)行優(yōu)化,并將所有塊串聯(lián)形成管道,再利用層之間的并行性實(shí)現(xiàn)并發(fā)執(zhí)行。流式架構(gòu)的FPGA 加速器如fpgaConvNet[15]、DeepBurning[16]、Haddoc2[17]和AutoCodeGen[18]。fpgaConvNet 框架利用同步數(shù)據(jù)流模型執(zhí)行設(shè)計(jì)空間搜索,生成可合成的Vivado HLS 硬件設(shè)計(jì),將CNN 模型映射到FPGA 上[15];DeepBurning 根據(jù)網(wǎng)絡(luò)模型數(shù)據(jù)、訪存特性和芯片資源約束,為特定模型自動實(shí)現(xiàn)最優(yōu)FPGA 設(shè)計(jì)[16];Haddoc2 使用直接硬件映射方法實(shí)現(xiàn)CNN,為CNN 自動設(shè)計(jì)基于FPGA 的硬件加速器[17];AutoCodeGen 根據(jù)高級硬件描述語言自動生成Verilog HDL 代碼[18]。流式架構(gòu)FPGA 加速器并發(fā)性較高,但加速器要為每個(gè)模型生成比特流,編譯時(shí)間較長。

    圖1 專用型FPGA加速器架構(gòu)Fig.1 Architecture of dedicated FPGA accelerator

    處理器架構(gòu)FPGA 加速器如圖1(b)所示,由一個(gè)固定的架構(gòu)模板組成,主要包括處理單元、控制單元和直接存儲器訪問(Direct Memory Access,DMA)三部分,以脈動陣列或矩陣乘法的形式,依次處理CNN 層,基于FPGA 資源進(jìn)行配置和擴(kuò)展,實(shí)現(xiàn)一次編譯生成的比特流對應(yīng)多個(gè)CNN 模型。處理器架構(gòu)的FPGA 加速器如DNN Weaver[19]、Angel-Eye[20]、ALAMO[21]和 FP-DNN(FPGAs-Deep Neural Network)[22]。DNN Weaver 開源框架使用手動優(yōu)化的基于寄存器轉(zhuǎn)換級(Register Transfer Level,RTL)的設(shè)計(jì)模板,為給定的(DNN,F(xiàn)PGA)組合,自動生成高性能可合成的加速器[19];Angel-Eye使用數(shù)據(jù)量化策略將數(shù)據(jù)量化到8 b,并自動生成指令序列描述CNN 執(zhí)行過程[20];ALAMO 兼顧HLS 的靈活、易編程和RTL 的高性能、高能效的特性,自動將模型推理過程映射成FPGA 可執(zhí)行的RTL 代碼[21];FP-DNN 框架以TensorFlow 構(gòu)造的DNN 模型作為輸入,使用RTL-HLS 混合模板自動生成FPGA 硬件設(shè)計(jì),無須人工干預(yù),自動完成DNN 模型到FPGA的映射[22]。處理器架構(gòu)FPGA 加速器靈活、可擴(kuò)展、低定制化,但由于一次編譯生成的比特流對應(yīng)多個(gè)CNN 模型,可能導(dǎo)致加速性能不穩(wěn)定。

    1.2 通用型FPGA加速器

    通用型FPGA 加速器可分為商用深度學(xué)習(xí)編譯器和開源深度學(xué)習(xí)編譯器兩種。商用深度學(xué)習(xí)編譯器由硬件廠商推出,以庫的方式提供給用戶,將模型中間表示(Intermediate Representation,IR)轉(zhuǎn)換成編譯器內(nèi)部IR,再映射到對應(yīng)硬件的算子實(shí)現(xiàn),最后完成推理計(jì)算。OpenVINO和Vitis AI 是商用深度學(xué)習(xí)編譯器的代表。OpenVINO 是Intel 推出的針對計(jì)算機(jī)視覺加速優(yōu)化的深度學(xué)習(xí)編譯器,支持PyTorch、TensorFlow、ONNX 等前端框架訓(xùn)練的模型,通過模型轉(zhuǎn)換后可實(shí)現(xiàn)在Intel 平臺下的CPU、GPU、FPGA、視頻處理單元(Video Processing Unit,VPU)等硬件環(huán)境上部署,并具有一次寫入、處處部署的特點(diǎn)。Vitis AI 是Xilinx 推出的一款綜合推理開發(fā)平臺,支持最新的深度學(xué)習(xí)模型和主流訓(xùn)練框架,能夠完成各種深度學(xué)習(xí)任務(wù)。商用深度學(xué)習(xí)編譯器可以最大化地提升性能,但存在硬件適配和算子覆蓋率等問題。為解決上述問題,以TVM、nGraph-PlaidML[23]、XLA(Accelerated Linear Algebra)[24]、Glow[25]和 TC(Tensor Comprehensions)[26]為代表的開源深度學(xué)習(xí)編譯器應(yīng)運(yùn)而生。這類編譯器支持根據(jù)模板或自定義IR 實(shí)現(xiàn)算子的自動生成,由此解決算子覆蓋率問題;并支持將輸入模型轉(zhuǎn)換為多級IR 優(yōu)化編譯,實(shí)現(xiàn)不同硬件適配。開源深度學(xué)習(xí)編譯器結(jié)構(gòu)如圖2 所示,支持多前端輸入和多后端部署。前端將不同框架訓(xùn)練的模型描述轉(zhuǎn)換為高級中間表示(High-level IR),并通過實(shí)現(xiàn)與硬件無關(guān)的計(jì)算圖優(yōu)化,以減少計(jì)算圖冗余、提高計(jì)算效率。優(yōu)化后的High-level IR 傳入后端轉(zhuǎn)化為低級中間表示(Low-level IR),并可針對特定硬件進(jìn)行優(yōu)化,優(yōu)化后的Low-level IR 編譯即可生成目標(biāo)硬件可執(zhí)行代碼。

    TVM 是一個(gè)開源的端到端的深度學(xué)習(xí)編譯器,將不同框架訓(xùn)練的模型作為輸入,經(jīng)過Relay 執(zhí)行圖級優(yōu)化和算子級優(yōu)化后,生成特定硬件的可執(zhí)行代碼。TVM 中包含一個(gè)多功能可編程張量加速器VTA,VTA 由一個(gè)可參數(shù)化的體系結(jié)構(gòu)、兩級ISA 和一個(gè)即時(shí)編譯器(Just-In-Time compiler,JIT)組成,共同實(shí)現(xiàn)可編程可擴(kuò)展功能。VTA 結(jié)構(gòu)如圖3 所示,包括獲取模塊(fetch)、加載模塊(load)、計(jì)算模塊(compute)和存儲模塊(store)。四個(gè)模塊通過先進(jìn)先出隊(duì)列與片上共享內(nèi)存進(jìn)行模塊間的通信,可在計(jì)算受限和內(nèi)存受限的工作負(fù)載上實(shí)現(xiàn)高計(jì)算資源利用率和高內(nèi)存帶寬利用率。TVMVTA 共同構(gòu)成軟件-硬件堆棧,實(shí)現(xiàn)模型在FPGA 上的部署與加速。

    圖3 VTA結(jié)構(gòu)Fig.3 VTA structure

    2 模型優(yōu)化與部署方法

    本文基于TVM 深度學(xué)習(xí)編譯器,實(shí)現(xiàn)ResNet 的分心駕駛分類模型在PYNQ-Z2 開發(fā)板上的編譯、優(yōu)化與加速。模型編譯流程如圖4 所示,卷積神經(jīng)網(wǎng)絡(luò)(CNN)模型首先通過前端轉(zhuǎn)換,生成模型計(jì)算圖的高級中間表示Relay IR,再對Relay IR 進(jìn)行優(yōu)化、量化和計(jì)算圖打包操作,接著將Relay IR轉(zhuǎn)換為低級張量中間表示(Tensor Intermediate Representation,TIR),最后生成硬件平臺可執(zhí)行代碼。硬件代碼打包后,通過RPC(Remote Procedure Call)協(xié)議發(fā)送到遠(yuǎn)程目標(biāo)設(shè)備上,即可在目標(biāo)設(shè)備的微處理器(MicroProcessor Unit,MPU)+FPGA 上運(yùn)行,實(shí)現(xiàn)模型推理加速。下面將模型編譯流程分為模型前端轉(zhuǎn)換、模型優(yōu)化和模型硬件代碼生成與部署三個(gè)模塊詳細(xì)介紹。

    圖4 模型編譯流程Fig.4 Model compilation flow

    2.1 模型前端轉(zhuǎn)換模塊

    TVM 支持多種深度學(xué)習(xí)框架,鑒于PyTorch 框架在學(xué)術(shù)界應(yīng)用相對廣泛,本文以PyTorch 訓(xùn)練的模型為例,介紹TVM 的編譯流程。由于PyTorch 采用動態(tài)圖機(jī)制提供非固定的網(wǎng)絡(luò)結(jié)構(gòu),在性能優(yōu)化時(shí)不利于開展網(wǎng)絡(luò)結(jié)構(gòu)的分析和優(yōu)化,因此PyTorch 模型首先需要通過torch 提供的應(yīng)用程序編程接口(Application Programming Interface,API)轉(zhuǎn)換為TorchScript 格式的計(jì)算圖中間表示(IR),以使模型具備可理解、編譯和序列化能力。其次,TVM 使用前端轉(zhuǎn)換模塊將TorchScript 格式的IR 轉(zhuǎn)換為TVM 的Relay IR。前端轉(zhuǎn)換流程如圖5 所示。

    圖5 前端轉(zhuǎn)換流程Fig.5 Front end conversion flow

    2.2 模型優(yōu)化模塊

    2.2.1 計(jì)算圖優(yōu)化

    計(jì)算圖優(yōu)化通過改變數(shù)據(jù)布局、融合算子結(jié)構(gòu)等方式減小訪存和計(jì)算開銷,提高模型推理速度,提升模型的性能。針對前端轉(zhuǎn)換生成的Realy IR 執(zhí)行計(jì)算圖優(yōu)化,并返回優(yōu)化后的mod 模塊和參數(shù)。計(jì)算圖優(yōu)化流程如圖6 所示:構(gòu)建優(yōu)化上下文(context)用于存儲優(yōu)化信息,查找預(yù)調(diào)整優(yōu)化記錄,執(zhí)行計(jì)算圖優(yōu)化。計(jì)算圖優(yōu)化操作如下:

    圖6 計(jì)算圖優(yōu)化流程Fig.6 Computational graph optimization flow

    簡化數(shù)據(jù)流圖(SimplifyInference):若模型中存在正則化算子,則將正則化算子拆分為基礎(chǔ)算子(如加減乘除),并在后續(xù)優(yōu)化中與其他算子融合,減少模型計(jì)算量。

    剔除冗余函數(shù)(RemoveUnusedFunctions):若存在函數(shù)既沒有引用其他函數(shù),也沒有被其他函數(shù)調(diào)用,則此函數(shù)是冗余函數(shù),可從代碼中剔除此函數(shù)。

    消除公共子表達(dá)式(EliminateCommonSubexpr):若表達(dá)式E的計(jì)算結(jié)果為常量C,且E再次出現(xiàn)時(shí)E中所有變量的值都不變,則再次出現(xiàn)的E是公共子表達(dá)式,用常量C代替表達(dá)式E,減小模型的訪存和計(jì)算開銷。

    常量折疊(FoldConstant):用具體常量值代替出現(xiàn)在表達(dá)式中的常量參數(shù),減少訪存開銷。

    算子融合(FuseOps):將多個(gè)簡單算子融合為一個(gè)算子,如Conv+BN+ReLU 三個(gè)算子融合為一個(gè)CBR 算子,簡化計(jì)算流程,減少訪存開銷。

    變換操作布局(AlterOpLayout):根據(jù)硬件特性將數(shù)據(jù)布局轉(zhuǎn)換為硬件友好的布局方式。

    2.2.2 量化

    量化操作將高精度浮點(diǎn)計(jì)算轉(zhuǎn)換為低精度定點(diǎn)計(jì)算,可有效降低硬件的內(nèi)存消耗,提高模型的推理速度。TVM 編譯模型時(shí),為適配VTA 的低精度數(shù)值類型,將數(shù)值精度從float32 量化為int8。將優(yōu)化后的mod 模塊和參數(shù)輸入到量化模塊中,實(shí)現(xiàn)數(shù)值精度轉(zhuǎn)換,并返回量化后的mod 模塊。量化過程分兩步執(zhí)行:1)配置量化環(huán)境,基于量化配置模塊設(shè)置配置參數(shù),如不執(zhí)行量化操作的卷積層、量化校準(zhǔn)范圍等。2)執(zhí)行量化操作,首先執(zhí)行基礎(chǔ)優(yōu)化(如簡化數(shù)據(jù)流圖、折疊比例軸、常量折疊),再執(zhí)行分割、注釋、校準(zhǔn)和實(shí)現(xiàn)四種量化操作:遍歷計(jì)算圖,分割(partion)操作在預(yù)量化的計(jì)算圖中插入分割節(jié)點(diǎn)(cast_hint、stop_fustion);注釋(annotate)操作在預(yù)量化計(jì)算圖中插入模擬量化算子(simulate_quantize);校準(zhǔn)(calibrate)操作收集存儲量化信息;實(shí)現(xiàn)(realize)操作用基礎(chǔ)算子替換模擬量化算子,完成量化變換。

    2.2.3 計(jì)算圖打包

    TVM 根據(jù)目標(biāo)硬件特性轉(zhuǎn)換數(shù)據(jù)布局格式,執(zhí)行計(jì)算圖打包,并將矩陣計(jì)算卸載到FPGA 上,實(shí)現(xiàn)模型在目標(biāo)硬件上的推理加速計(jì)算。將量化后的mod 模塊輸入到圖形打包模塊中,設(shè)置圖形打包的起始和結(jié)束的節(jié)點(diǎn)名稱、索引值,返回打包后的mod 模塊。圖形打包模塊從三個(gè)方面實(shí)現(xiàn)計(jì)算圖的數(shù)據(jù)布局轉(zhuǎn)換,使用的參數(shù)bfactor、cfactor 由VTA 配置文件(vta_config.json)中的“LOG_BATCH”“LOG_BLOCK”控制,默認(rèn)bfactor=1,cfactor=16。計(jì)算圖打包流程如圖7 所示:

    圖7 計(jì)算圖打包流程Fig.7 Computational graph packaging flow

    1)打包權(quán)重,更改權(quán)重參數(shù)布局。首先判斷權(quán)重參數(shù)的第一、二維能否整除cfactor,若不能整除cfactor,則填充權(quán)重參數(shù)形狀,再將權(quán)重維度從4 維擴(kuò)展為6 維,維度擴(kuò)展規(guī)則如表1 所示。

    表1 計(jì)算圖打包的維度擴(kuò)展規(guī)則Tab.1 Dimension expansion rules of computational graph packing

    2)打包通道,更改通道數(shù)據(jù)布局。首先判斷數(shù)據(jù)通道是否滿足條件:數(shù)據(jù)通道參數(shù)第一維整除bfactor,第二維整除cfactor,若滿足條件,則將通道維度從4 維擴(kuò)展為6 維;若不滿足條件,則計(jì)算圖打包失敗,程序停止運(yùn)行。

    3)打包常量,更改常量參數(shù)布局。首先判斷常量參數(shù)第一維能否整除cfactor,若不能整除cfactor,則填充常量參數(shù)形狀,再將常量參數(shù)維度從3 維擴(kuò)展為5 維。

    2.3 模型硬件代碼生成與部署模塊

    2.3.1 硬件代碼生成

    模型在目標(biāo)設(shè)備上部署時(shí)需要將模型描述轉(zhuǎn)化為硬件可執(zhí)行代碼,TVM 基于硬件代碼生成模塊將打包后的mod 模塊編譯為硬件代碼庫,并通過RPC 協(xié)議發(fā)送到遠(yuǎn)程設(shè)備上執(zhí)行。硬件代碼生成流程如圖8 所示:將打包后的mod 模塊輸入到硬件代碼生成模塊中,首先執(zhí)行計(jì)算圖編譯,實(shí)現(xiàn)計(jì)算圖優(yōu)化和圖代碼生成;再將Realy IR 轉(zhuǎn)換為低級張量中間表示TIR,執(zhí)行TIR 優(yōu)化,分離出主機(jī)模塊和目標(biāo)設(shè)備模塊,并分別為主機(jī)端和目標(biāo)設(shè)備端生成代碼;最后將目標(biāo)設(shè)備模塊導(dǎo)入主機(jī)模塊中,生成運(yùn)行時(shí)模塊,返回生成的硬件推理庫文件。

    圖8 硬件代碼生成流程Fig.8 Hardware code generation flow

    2.3.2 配置硬件參數(shù)與模型計(jì)算

    1)配置參數(shù)。在主機(jī)端定義目標(biāo)模型和模型執(zhí)行平臺,當(dāng)目標(biāo)硬件為FPGA 后端時(shí),重新配置FPGA 和JIT 運(yùn)行時(shí)。配置目標(biāo)硬件IP 地址和對應(yīng)端口號,將VTA 配置文件中的設(shè)備目標(biāo)“TARGET”設(shè)置為“pynq”,其余參數(shù)保持不變。連接硬件設(shè)備,在主機(jī)端構(gòu)建完整的TVM 環(huán)境,目標(biāo)設(shè)備端構(gòu)建VTA 運(yùn)行環(huán)境。主機(jī)端連接目標(biāo)設(shè)備,并開啟RPC 服務(wù),完成基于TVM 的RPC 服務(wù)程序構(gòu)建和預(yù)編譯比特流下載,通過RPC 將預(yù)編譯比特流發(fā)送到目標(biāo)設(shè)備上,實(shí)現(xiàn)目標(biāo)設(shè)備上的FPGA 編程和VTA 運(yùn)行時(shí)構(gòu)建,最后發(fā)送可執(zhí)行文件到目標(biāo)硬件上執(zhí)行。

    2)運(yùn)行程序。將模型和權(quán)重參數(shù)輸入到主機(jī)端,經(jīng)過TVM 編譯優(yōu)化生成可執(zhí)行代碼,開啟RPC 服務(wù),將代碼發(fā)送到目標(biāo)硬件上執(zhí)行推理,測試模型推理速度和精度,并將結(jié)果返回主機(jī)。

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

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

    實(shí)驗(yàn)環(huán)境分為模型訓(xùn)練環(huán)境與模型部署環(huán)境,模型部署環(huán)境又包括模型部署主機(jī)端環(huán)境和目標(biāo)硬件環(huán)境。

    3.1.1 訓(xùn)練環(huán)境

    實(shí)驗(yàn)平臺安裝Ubuntu14.04 操作系統(tǒng),采用PyTorch 1.10.1 框架,以及Python3.6 運(yùn)行環(huán)境,硬件配置為Intel Core i5-10500 CPU@3.10 GHz,采 用NVIDIA GeFore GTX 1080Ti GPUs,內(nèi)存16 GB(3 200 MHz)。訓(xùn)練參數(shù)設(shè)置如下:訓(xùn)練batch size=64,輸入圖片大小為224×224,訓(xùn)練迭代次數(shù)Epoch=100,初始權(quán)重為ImageNet 預(yù)訓(xùn)練權(quán)重,使用隨機(jī)梯度下 降(Stochastic Gradient Descent,SGD)優(yōu)化器,其中:learning rate=0.01,momentum=0.9,weight_decay=5E-4。

    3.1.2 部署環(huán)境

    本文模型部署時(shí)主機(jī)端的軟件環(huán)境Ubuntu 20.04,TVM版本為0.8,硬件環(huán)境為Intel Core i5-10500 CPU@ 3.10 GHz,內(nèi)存16 GB(3 200 MHz)。

    本文模型部署的目標(biāo)硬件為Xilinx 發(fā)布的一款FPGA 開發(fā)板PYNQ-Z2(芯片型號ZYNQ XC7Z020-1CLG400C),如圖9所示,PYNQ-Z2 內(nèi)部資源包括:650 MHz 雙核Cortex-A9 處理器、DDR3 內(nèi)存控制器、高/低帶寬外設(shè)控制器和Artix-7 系列可編程邏輯器件??删幊踢壿嬈骷?3 300 個(gè)邏輯片、630 KB 快速block RAM、4 個(gè)時(shí)鐘管理片和220 個(gè)DSP 切片組成。價(jià)格150~200 $,尺寸87 mm×137 mm,適合用于搭載分心駕駛分類模型。PYNQ-Z2 板鏡像版本為Pynq 官方提供的PYNQ-Z2 v2.5,根據(jù)TVM 官方教程在PYNQ-Z2 板上安裝VTA,一根網(wǎng)線用于數(shù)據(jù)傳輸,一根USB 用于供電。

    圖9 PYNQ-Z2開發(fā)板Fig.9 PYNQ-Z2 development board

    3.2 數(shù)據(jù)集

    本文使用了AUC(American University in Cairo)[27]和StateFarm[28]兩個(gè)開源數(shù)據(jù)集訓(xùn)練分心駕駛行為分類模型。

    3.2.1 AUC數(shù)據(jù)集

    AUC 數(shù)據(jù)集采集了來自7 個(gè)國家的31 名參與者共17 308 張駕駛圖片,圖像尺寸為1 080×1 920,包含c0~c9 共10類分心駕駛行為(如圖10 所示),分別是正常駕駛、右手發(fā)消息、右手打電話、左手發(fā)消息、左手打電話、調(diào)收音機(jī)、喝水、向后取東西、整理頭發(fā)/化妝、和乘客說話。本文將25%(4 331 張)的圖片用于測試,剩余75%(12 977 張)圖片的90%(11 680 張)用于訓(xùn)練,10%(1 297 張)用于驗(yàn)證,數(shù)據(jù)分布情況如圖11 所示,訓(xùn)練時(shí)將圖像尺寸調(diào)整為224×224。

    圖10 分心駕駛數(shù)據(jù)集樣例Fig.10 Samples of distracted driving dataset

    圖11 AUC和StateFarm數(shù)據(jù)分布Fig.11 AUC and StateFarm data distribution

    3.2.2 StateFarm數(shù)據(jù)集

    StateFarm 數(shù)據(jù)集是由kaggle 競賽公布的分心駕駛數(shù)據(jù)集,比賽提供了22 424 張已標(biāo)注訓(xùn)練集和79 729 張未標(biāo)注測試集,共有10 個(gè)分類(與AUC 數(shù)據(jù)集分類相同),圖像尺寸為640×480。本文使用22 424 張標(biāo)注圖像用于訓(xùn)練,訓(xùn)練時(shí)將圖像尺寸調(diào)整為224×224。測試和驗(yàn)證數(shù)據(jù)使用文獻(xiàn)[29]中標(biāo)注的8 350 張圖像,其中50%(4 175 張)圖像用于測試,50%(4 175 張)圖像用于驗(yàn)證。

    3.3 ResNet

    殘差網(wǎng)絡(luò)(ResNet)[30]是為了解決DNN 退化問題而提出的新型網(wǎng)絡(luò)結(jié)構(gòu),引入的殘差結(jié)構(gòu)(Residual Block)如圖12所示。將輸入信息直接通過支路(shortcut)傳到輸出,以緩解傳統(tǒng)卷積層數(shù)據(jù)傳輸時(shí)的信息損失,在模型訓(xùn)練時(shí)只需關(guān)注輸入與輸出間的差異,降低了網(wǎng)絡(luò)學(xué)習(xí)的難度。本文基于ResNet 設(shè)計(jì)分心駕駛行為分類模型,并將模型部署到FPGA 上。

    圖12 殘差結(jié)構(gòu)Fig.12 Residual blocks

    3.4 結(jié)果分析

    3.4.1 AUC和StateFarm數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果

    ResNet 模型在AUC 和StateFarm 的測試準(zhǔn)確率如表2 所示。ResNet18、34、50 在AUC 數(shù)據(jù)集上的準(zhǔn)確率都達(dá)到了95%以上,說明AUC 數(shù)據(jù)集數(shù)據(jù)量小、數(shù)據(jù)復(fù)雜程度低。ResNet18、34、50 在StateFarm 數(shù)據(jù)集上的表現(xiàn)比在AUC 上差,準(zhǔn)確率分別下降了6.15、5.04 和4.64 個(gè)百分點(diǎn),說明StateFarm 數(shù)據(jù)集數(shù)據(jù)構(gòu)成更復(fù)雜、更具有挑戰(zhàn)性。

    表2 ResNet模型在AUC和StateFarm數(shù)據(jù)集上的測試準(zhǔn)確率 單位:%Tab.2 Test accuracies of ResNet models on AUC and StateFarm datasets unit:%

    3.4.2 模型推理時(shí)間分析

    測試ResNet 模型在VTA 模擬器、PYNQ-Z2 的MPU 和MPU+FPGA 上的推理時(shí)間,batch-size=1,測試過程如下:

    VTA 模擬器是TVM 提供的一種硬件模擬環(huán)境,在主機(jī)端構(gòu)建VTA 模擬環(huán)境,更改VTA 配置文件,將“TARGET”設(shè)置為“sim”,將TVM 編譯優(yōu)化和VTA 量化打包的模型部署到VTA 模擬器上,所有TVM 工作負(fù)載都在VTA 模擬器上執(zhí)行;MPU 系統(tǒng),將TVM 編譯優(yōu)化的模型部署到PYNQ-Z2 上,在PYNQ-Z2 的MPU 上執(zhí)行矩陣計(jì)算;MPU+FPGA 系統(tǒng),將TVM編譯優(yōu)化和VTA 量化打包的模型部署到PYNQ-Z2 上,在PYNQ-Z2 的MPU+FPGA 上執(zhí)行矩陣計(jì)算。

    測試結(jié)果如表3 所示。模型在PYNQ-Z2 的MPU 上執(zhí)行推理時(shí),所有矩陣計(jì)算都在MPU 上執(zhí)行,由于模型參數(shù)量大且MPU 資源有限,所以模型在PYNQ-Z2 的MPU 上的推理速度最小。模型在VTA 模擬器和PYNQ-Z2 的MPU+FPGA 上執(zhí)行推理時(shí),都使用了量化和計(jì)算圖打包操作,壓縮了模型體積,并分別將卷積計(jì)算卸載到模擬器和FPGA 上執(zhí)行。與MPU 相比,ResNet18、50 在VTA 模擬器上的推理時(shí)間減少了39.15% 和59.66%;在MPU+FPGA 上的推理時(shí)間減少了77.53%和88.63%。與VTA 模擬器相比,ResNet34 在MPU+FPGA 上的推理時(shí)間減少了73.96%。因此,基于TVM 的DNN 模型加速方法能有效減少模型在FPGA 上的推理時(shí)間,加快模型推理。

    表3 ResNet模型在不同硬件上的推理時(shí)間對比 單位:msTab.3 Comparison of inference time of ResNet models on different hardware unit:ms

    3.4.3 模型推理精度分析

    在AUC 和StateFarm 數(shù)據(jù)集上,ResNet 模型在VTA 模擬器、PYNQ-Z2 的MPU 和MPU+FPGA 上的推理精度如表4 所示。當(dāng)模型部署平臺為PYNQ-Z2 的MPU 時(shí),模型的推理精度與在PyTorch 下的精度相同,說明基于TVM 的編譯優(yōu)化不會降低模型的推理精度。當(dāng)模型部署平臺為VTA 模擬器和PYNQ-Z2 的MPU+FPGA 時(shí),由于模型編譯優(yōu)化時(shí)使用了相同的量化和計(jì)算圖打包操作,兩個(gè)部署平臺的模型推理精度下降趨勢一致。與MPU 相比,模型部署平臺為MPU+FPGA時(shí),在AUC 數(shù)據(jù)集上,ResNet50 的top1 和top5 分別下降了0.26、0.03 個(gè)百分點(diǎn);ResNet18 的top1 和top5 分別下降了0.16 和0.04 個(gè)百分點(diǎn)。在StateFarm 數(shù)據(jù)集上,ResNet50 的精度下降趨勢最明顯,top1 和top5 精度分別下降了2.93、0.65 個(gè)百分點(diǎn)。ResNet34 在兩個(gè)數(shù)據(jù)集上的表現(xiàn)最穩(wěn)定。除了StateFarm 數(shù)據(jù)集上的ResNet50,采用本文方法后,ResNet18、34 的推理精度的下降都維持在了1 個(gè)百分點(diǎn)以內(nèi),驗(yàn)證了該方法能夠保持模型在FPGA 上的推理準(zhǔn)確性。

    表4 AUC、StateFarm數(shù)據(jù)集訓(xùn)練的ResNet模型在不同硬件上的推理精度對比 單位:%Tab.4 Comparison of inference accuracy of ResNet models trained on AUC and StateFarm datasets on different hardware unit:%

    3.4.4 模型優(yōu)化性能分析

    本節(jié)將優(yōu)化操作分為3 個(gè)方案:方案1 僅使用計(jì)算圖優(yōu)化操作;方案2 使用計(jì)算圖優(yōu)化和量化操作;方案3 同時(shí)使用計(jì)算圖優(yōu)化、量化和計(jì)算圖打包操作。分別在VTA 模擬器和PYNQ-Z2 的MPU+FPGA 上,測試使用不同優(yōu)化方案的模型的推理時(shí)間和精度情況,并分析實(shí)驗(yàn)結(jié)果。

    ResNet 在VTA 模擬器和PYNQ-Z2 的MPU+FPGA 上使用不同優(yōu)化方案的推理時(shí)間如表5 所示。ResNet18、34 和50 在VTA 模擬器上使用方案2 時(shí)推理速度最快,與方案1 相比推理時(shí)間分別減少了27.68%、18.26%和26.36%,這是因?yàn)榱炕僮鲏嚎s了模型的數(shù)據(jù)精度,提升了模型的推理速度。與方案2 相比,雖然方案3 在模型優(yōu)化時(shí)增加了計(jì)算圖打包操作,但由于計(jì)算圖打包操作將數(shù)據(jù)布局由nchw 轉(zhuǎn)換為nchwinic,匹配FPGA 的硬件規(guī)范,轉(zhuǎn)換后的數(shù)據(jù)布局不適用于VTA 模擬器,導(dǎo)致模型的推理速度降低。在MPU+FPGA上使用方案3 時(shí),ResNet18、34 和50 的推理時(shí)間比在VTA 模擬器上減小了63.08%、73.96%和71.82%,驗(yàn)證了在MPU+FPGA 上更適合使用優(yōu)化方案3。

    表5 ResNet模型在不同硬件上使用不同優(yōu)化方案的推理時(shí)間對比 單位:msTab.5 Comparison of inference time of ResNet models using different optimization schemes on different hardware unit:ms

    在AUC 和StateFarm 數(shù)據(jù)集上,ResNet 在VTA 模擬器和PYNQ-Z2 的MPU+FPGA 上使用不同優(yōu)化方案的推理精度如表6 所示。在VTA 模擬器和PYNQ-Z2 的MPU+FPGA 上分別使用方案2 和方案3 優(yōu)化時(shí),模型在兩個(gè)平臺上的推理精度變化趨勢一致,且同一平臺不同方案推理精度相同,說明計(jì)算圖打包操作不會影響模型精度。在VTA 模擬器上,與方案1 相比,使用方案2 和方案3 的推理精度略有下降,說明量化操作壓縮了模型的數(shù)據(jù)精度,會降低模型的推理精度。

    表6 AUC和StateFram數(shù)據(jù)集訓(xùn)練的ResNet模型在不同硬件上使用不同方案的推理精度對比 單位:%Tab.6 Inference accuracy comparison of ResNet models trained on AUC and StateFram datasets using different schemes on different hardwares unit:%

    硬件加速平臺Xilinx Vitis AI 支持深度學(xué)習(xí)模型在Xilinx高端FPGA(如ZCU102、ZCU104 和VCK190 等)上推理加速,這些FPGA 的計(jì)算資源豐富但價(jià)格昂貴。通過對比Vitis AI支持的FPGA 與PYNQ-Z2 的硬件價(jià)格、硬件資源和 ResNet50的推理時(shí)間(表7 所示),折中權(quán)衡之下PYNQ-Z2 的性價(jià)比更高,更適合作為分心駕駛行為分類應(yīng)用落地的載體。

    表7 Vitis AI支持的FPGA與PYNQ-Z2的硬件價(jià)格、硬件資源數(shù)和ResNet50推理時(shí)間的對比Tab.7 Comparison of hardware price,hardware resources and ResNet50 inference time of Vitis AI-supported FPGA and PYNQ-Z2

    4 結(jié)語

    本文提出了基于TVM 的深度神經(jīng)網(wǎng)絡(luò)模型加速方法,通過計(jì)算圖優(yōu)化減少模型的計(jì)算和訪存開銷,量化方法壓縮模型的體積,計(jì)算圖打包將復(fù)雜的卷積計(jì)算加載到FPGA 上執(zhí)行。本文以分心駕駛行為分類應(yīng)用為例,在FPGA 上驗(yàn)證了檢測模型的推理速度和精度。利用本文所提加速方法,在AUC 數(shù)據(jù)集上,ResNet50 在PYNQ-Z2 的MPU+FPGA 上的推理時(shí)間相比只使用MPU 減少了88.63%,而推理精度只下降了0.26 個(gè)百分點(diǎn);ResNet18 的推理時(shí)間減少了77.53%,推理一張圖片的時(shí)間減少至355.67 ms,而推理精度只降低了0.16 個(gè)百分點(diǎn)。本文方法可以降低不同訓(xùn)練框架訓(xùn)練的模型在FPGA 上的部署難度,提高模型在FPGA 上的推理速度并保持推理精度,為深度神經(jīng)網(wǎng)絡(luò)模型在FPGA 上的部署提供了新的方案。

    本文實(shí)現(xiàn)了ResNet 模型在PYNQ-Z2 上的部署加速,但是ResNet 模型中存在大量冗余參數(shù),不但增加硬件開銷還影響推理速度,下一步擬使用輕量化方法進(jìn)一步減少模型參數(shù)量,進(jìn)而提升模型在硬件上的推理速度。此外,TVM 提供的預(yù)編譯的VTA 比特流(bitstream),并不能良好適用于帶有深度可分離卷積的深度神經(jīng)網(wǎng)絡(luò)模型,下一步擬根據(jù)硬件規(guī)范,更改VTA 配置,生成更高效且適用于深度可分離卷積的VTA 比特流,從而實(shí)現(xiàn)對更多深度學(xué)習(xí)模型的支持。

    猜你喜歡
    模擬器加速器算子
    輪滑加速器
    化學(xué)工業(yè)的“加速器”
    了不起的安檢模擬器
    全民小康路上的“加速器”
    擬微分算子在Hp(ω)上的有界性
    盲盒模擬器
    劃船模擬器
    各向異性次Laplace算子和擬p-次Laplace算子的Picone恒等式及其應(yīng)用
    一類Markov模算子半群與相應(yīng)的算子值Dirichlet型刻畫
    Roper-Suffridge延拓算子與Loewner鏈
    日韩av在线免费看完整版不卡| 一区二区三区激情视频| 欧美 日韩 精品 国产| 乱人伦中国视频| 久久毛片免费看一区二区三区| 国产成人精品在线电影| 这个男人来自地球电影免费观看 | 97精品久久久久久久久久精品| 国产日韩欧美亚洲二区| 亚洲,欧美,日韩| 久久天躁狠狠躁夜夜2o2o | 一本久久精品| 免费黄频网站在线观看国产| 日韩熟女老妇一区二区性免费视频| 国产精品成人在线| 亚洲精品国产色婷婷电影| 国产老妇伦熟女老妇高清| 三上悠亚av全集在线观看| a级片在线免费高清观看视频| 亚洲七黄色美女视频| 日韩伦理黄色片| 青青草视频在线视频观看| 久热爱精品视频在线9| 国产又爽黄色视频| 欧美精品一区二区大全| 成年女人毛片免费观看观看9 | 飞空精品影院首页| 老汉色av国产亚洲站长工具| av在线观看视频网站免费| svipshipincom国产片| 女性被躁到高潮视频| 在线观看人妻少妇| 90打野战视频偷拍视频| 日韩一本色道免费dvd| 国产黄频视频在线观看| 日韩精品有码人妻一区| 91精品伊人久久大香线蕉| 国产精品久久久久久久久免| 美女高潮到喷水免费观看| 午夜av观看不卡| 国产高清国产精品国产三级| 啦啦啦啦在线视频资源| 欧美黑人欧美精品刺激| 一区在线观看完整版| 久久人人爽av亚洲精品天堂| 国产成人欧美| 欧美人与善性xxx| 十八禁人妻一区二区| www.熟女人妻精品国产| 丰满饥渴人妻一区二区三| 国产精品国产av在线观看| 国产女主播在线喷水免费视频网站| 中国三级夫妇交换| 2021少妇久久久久久久久久久| 女人高潮潮喷娇喘18禁视频| 亚洲欧美一区二区三区黑人| 多毛熟女@视频| 欧美日韩av久久| 青春草视频在线免费观看| 成年美女黄网站色视频大全免费| 免费久久久久久久精品成人欧美视频| 侵犯人妻中文字幕一二三四区| 精品国产一区二区三区四区第35| 中文字幕人妻丝袜制服| 制服丝袜香蕉在线| 看非洲黑人一级黄片| 欧美国产精品一级二级三级| 女人爽到高潮嗷嗷叫在线视频| 悠悠久久av| 宅男免费午夜| 亚洲一码二码三码区别大吗| 只有这里有精品99| 少妇人妻 视频| 日韩中文字幕视频在线看片| 国产亚洲最大av| 日日摸夜夜添夜夜爱| 国产黄色视频一区二区在线观看| 999久久久国产精品视频| 国产精品麻豆人妻色哟哟久久| 午夜免费观看性视频| 欧美黄色片欧美黄色片| 亚洲人成77777在线视频| 老鸭窝网址在线观看| 观看av在线不卡| 色综合欧美亚洲国产小说| 久久午夜综合久久蜜桃| 精品少妇内射三级| 亚洲欧美日韩另类电影网站| 日本91视频免费播放| 国产不卡av网站在线观看| 美女脱内裤让男人舔精品视频| 久久性视频一级片| 国产成人啪精品午夜网站| 亚洲国产最新在线播放| 在线亚洲精品国产二区图片欧美| 国产又色又爽无遮挡免| 极品少妇高潮喷水抽搐| 中文字幕色久视频| 青春草亚洲视频在线观看| 国产精品女同一区二区软件| 黑人欧美特级aaaaaa片| 成年女人毛片免费观看观看9 | 亚洲婷婷狠狠爱综合网| 水蜜桃什么品种好| 国产精品蜜桃在线观看| 99久久人妻综合| 成人午夜精彩视频在线观看| 国产淫语在线视频| 亚洲成av片中文字幕在线观看| 欧美激情高清一区二区三区 | 青春草国产在线视频| 国产伦理片在线播放av一区| bbb黄色大片| 9191精品国产免费久久| 精品一品国产午夜福利视频| 18在线观看网站| 久久久久久久久免费视频了| 免费黄网站久久成人精品| 免费高清在线观看日韩| 多毛熟女@视频| 亚洲熟女毛片儿| 99国产精品免费福利视频| 日韩伦理黄色片| av国产久精品久网站免费入址| 久久久国产欧美日韩av| 肉色欧美久久久久久久蜜桃| 国产男人的电影天堂91| 一级黄片播放器| 亚洲,欧美,日韩| 国产极品粉嫩免费观看在线| 在线 av 中文字幕| 熟女av电影| 69精品国产乱码久久久| 亚洲成人手机| 在线观看人妻少妇| 天天躁夜夜躁狠狠久久av| 久久久久人妻精品一区果冻| 女的被弄到高潮叫床怎么办| 国产福利在线免费观看视频| 黄色怎么调成土黄色| 天天躁夜夜躁狠狠躁躁| 精品国产露脸久久av麻豆| 爱豆传媒免费全集在线观看| 国产日韩欧美视频二区| 午夜福利在线免费观看网站| 国产亚洲欧美精品永久| 好男人视频免费观看在线| 国产野战对白在线观看| 满18在线观看网站| 多毛熟女@视频| 超碰97精品在线观看| 国产免费现黄频在线看| 一本—道久久a久久精品蜜桃钙片| 老司机影院成人| 国产精品国产av在线观看| 欧美日韩视频精品一区| 中文字幕高清在线视频| 亚洲欧美色中文字幕在线| 国产精品 国内视频| 天美传媒精品一区二区| 国产又爽黄色视频| 99精品久久久久人妻精品| 午夜91福利影院| 男人添女人高潮全过程视频| 欧美日韩福利视频一区二区| 欧美日韩精品网址| 久久女婷五月综合色啪小说| 久久久久人妻精品一区果冻| 午夜福利视频在线观看免费| 日韩大码丰满熟妇| 欧美乱码精品一区二区三区| 国产av一区二区精品久久| 波多野结衣一区麻豆| 99九九在线精品视频| 男女无遮挡免费网站观看| 成人手机av| 国产免费视频播放在线视频| 另类亚洲欧美激情| 日本vs欧美在线观看视频| 9热在线视频观看99| 深夜精品福利| 久久久国产一区二区| 热re99久久精品国产66热6| 90打野战视频偷拍视频| 国产日韩一区二区三区精品不卡| 午夜福利视频在线观看免费| 观看av在线不卡| 欧美 亚洲 国产 日韩一| 国产成人午夜福利电影在线观看| 国产97色在线日韩免费| 老汉色∧v一级毛片| 99国产综合亚洲精品| 国产精品欧美亚洲77777| 女人被躁到高潮嗷嗷叫费观| 精品国产乱码久久久久久男人| 国产精品欧美亚洲77777| 纯流量卡能插随身wifi吗| 亚洲第一区二区三区不卡| 亚洲精品国产色婷婷电影| 成年av动漫网址| 国产成人精品久久二区二区91 | 久久婷婷青草| 日韩一卡2卡3卡4卡2021年| 国产精品一区二区精品视频观看| 岛国毛片在线播放| 久久久久人妻精品一区果冻| 国产日韩欧美在线精品| 日本一区二区免费在线视频| 99热全是精品| 制服丝袜香蕉在线| 国产1区2区3区精品| 天天躁狠狠躁夜夜躁狠狠躁| 久久精品亚洲av国产电影网| 午夜福利影视在线免费观看| www.av在线官网国产| 亚洲国产欧美在线一区| 成年av动漫网址| 美女大奶头黄色视频| 国精品久久久久久国模美| 精品一区二区三卡| 亚洲国产av新网站| 亚洲欧美激情在线| 亚洲欧美一区二区三区黑人| 99久久综合免费| 国产av一区二区精品久久| 人人妻人人澡人人看| 9热在线视频观看99| www.av在线官网国产| 熟女少妇亚洲综合色aaa.| 18禁动态无遮挡网站| 国产有黄有色有爽视频| 国精品久久久久久国模美| 美女中出高潮动态图| 亚洲美女黄色视频免费看| 我要看黄色一级片免费的| 国产xxxxx性猛交| 肉色欧美久久久久久久蜜桃| 男男h啪啪无遮挡| 欧美黑人精品巨大| 成年女人毛片免费观看观看9 | av免费观看日本| 欧美 亚洲 国产 日韩一| 深夜精品福利| 亚洲精品国产一区二区精华液| 国产精品蜜桃在线观看| 亚洲精品,欧美精品| 老司机深夜福利视频在线观看 | 国产色婷婷99| 日本vs欧美在线观看视频| 青春草国产在线视频| 亚洲第一区二区三区不卡| 久久青草综合色| avwww免费| 少妇人妻 视频| 欧美成人午夜精品| 国产女主播在线喷水免费视频网站| 91精品国产国语对白视频| 欧美黑人精品巨大| 亚洲av福利一区| 午夜精品国产一区二区电影| 在线观看免费日韩欧美大片| 97人妻天天添夜夜摸| 黑丝袜美女国产一区| 欧美日韩视频高清一区二区三区二| 青春草视频在线免费观看| 日韩不卡一区二区三区视频在线| 亚洲五月色婷婷综合| 99国产综合亚洲精品| 日本爱情动作片www.在线观看| 精品视频人人做人人爽| 一本色道久久久久久精品综合| 妹子高潮喷水视频| 这个男人来自地球电影免费观看 | 汤姆久久久久久久影院中文字幕| 五月天丁香电影| 成人免费观看视频高清| 久久久久久久精品精品| 国产伦理片在线播放av一区| 国产人伦9x9x在线观看| 亚洲精品久久成人aⅴ小说| 精品久久久久久电影网| 天天躁夜夜躁狠狠躁躁| 观看av在线不卡| 亚洲精品第二区| 你懂的网址亚洲精品在线观看| 久久99热这里只频精品6学生| 午夜免费观看性视频| 成人国产av品久久久| 亚洲激情五月婷婷啪啪| 国产精品嫩草影院av在线观看| 欧美激情极品国产一区二区三区| 国产成人av激情在线播放| 在线观看免费视频网站a站| 性少妇av在线| 亚洲图色成人| 别揉我奶头~嗯~啊~动态视频 | 91aial.com中文字幕在线观看| 国产精品熟女久久久久浪| 久久精品人人爽人人爽视色| 一二三四中文在线观看免费高清| 精品人妻熟女毛片av久久网站| 午夜久久久在线观看| 精品亚洲成a人片在线观看| 波多野结衣一区麻豆| 久久久久国产精品人妻一区二区| 精品福利永久在线观看| 一边摸一边抽搐一进一出视频| av有码第一页| 国产1区2区3区精品| 国产伦理片在线播放av一区| 制服人妻中文乱码| 午夜免费观看性视频| 狂野欧美激情性xxxx| 日韩制服丝袜自拍偷拍| 日韩精品有码人妻一区| 久久久久久人妻| 男人操女人黄网站| 国产成人欧美| 观看av在线不卡| 在线观看www视频免费| 亚洲国产欧美一区二区综合| 黄色视频在线播放观看不卡| 午夜福利网站1000一区二区三区| 老司机亚洲免费影院| 老司机影院毛片| 黄色毛片三级朝国网站| 岛国毛片在线播放| 国产免费视频播放在线视频| 五月开心婷婷网| 看免费av毛片| 看免费成人av毛片| 国产1区2区3区精品| 国产精品二区激情视频| 青青草视频在线视频观看| 考比视频在线观看| www.熟女人妻精品国产| 亚洲视频免费观看视频| 国产人伦9x9x在线观看| 亚洲,欧美精品.| 欧美少妇被猛烈插入视频| 精品一区二区三卡| 美女扒开内裤让男人捅视频| 秋霞伦理黄片| 免费av中文字幕在线| 男人添女人高潮全过程视频| 美女扒开内裤让男人捅视频| 久热这里只有精品99| 国产精品亚洲av一区麻豆 | 欧美少妇被猛烈插入视频| 青春草视频在线免费观看| 国产精品人妻久久久影院| 丁香六月天网| 大码成人一级视频| 欧美av亚洲av综合av国产av | 国产午夜精品一二区理论片| 亚洲精品国产色婷婷电影| 人妻 亚洲 视频| 国产男人的电影天堂91| 午夜福利乱码中文字幕| 国产片内射在线| 人妻 亚洲 视频| 多毛熟女@视频| 欧美黑人精品巨大| 中文字幕最新亚洲高清| 国产成人一区二区在线| 亚洲av电影在线观看一区二区三区| 欧美黑人精品巨大| 国产人伦9x9x在线观看| 一本一本久久a久久精品综合妖精| 在线观看国产h片| 80岁老熟妇乱子伦牲交| 成人18禁高潮啪啪吃奶动态图| 亚洲精华国产精华液的使用体验| 精品第一国产精品| 亚洲在久久综合| 久久99热这里只频精品6学生| 亚洲在久久综合| 日韩成人av中文字幕在线观看| 深夜精品福利| 啦啦啦在线免费观看视频4| 19禁男女啪啪无遮挡网站| 亚洲,一卡二卡三卡| www.av在线官网国产| 日日爽夜夜爽网站| 老司机影院毛片| 亚洲欧美一区二区三区久久| 欧美xxⅹ黑人| 九色亚洲精品在线播放| 久久天躁狠狠躁夜夜2o2o | 亚洲成人国产一区在线观看 | 久久久精品区二区三区| 99精品久久久久人妻精品| 三上悠亚av全集在线观看| 又大又黄又爽视频免费| 十八禁高潮呻吟视频| 七月丁香在线播放| 日韩 欧美 亚洲 中文字幕| 国产激情久久老熟女| av视频免费观看在线观看| 男女国产视频网站| 亚洲国产精品999| 久久综合国产亚洲精品| 国产一区二区三区综合在线观看| 中文字幕高清在线视频| 午夜福利在线免费观看网站| 精品少妇久久久久久888优播| 一区福利在线观看| 在线观看国产h片| 久久毛片免费看一区二区三区| e午夜精品久久久久久久| 晚上一个人看的免费电影| 日韩精品有码人妻一区| 免费黄频网站在线观看国产| 一级片'在线观看视频| 秋霞伦理黄片| 久久综合国产亚洲精品| 性高湖久久久久久久久免费观看| 天天躁日日躁夜夜躁夜夜| 亚洲第一区二区三区不卡| 国产片特级美女逼逼视频| 久久久亚洲精品成人影院| 青春草国产在线视频| 日本午夜av视频| 免费黄网站久久成人精品| 日日撸夜夜添| h视频一区二区三区| 久久久精品94久久精品| 精品少妇黑人巨大在线播放| 精品卡一卡二卡四卡免费| 欧美日韩亚洲综合一区二区三区_| 热99国产精品久久久久久7| 欧美精品一区二区大全| 性色av一级| 99热国产这里只有精品6| 精品人妻一区二区三区麻豆| 欧美日韩亚洲国产一区二区在线观看 | 一级片'在线观看视频| 午夜福利一区二区在线看| 成人漫画全彩无遮挡| 黄片小视频在线播放| 欧美另类一区| 捣出白浆h1v1| 欧美日韩国产mv在线观看视频| 成年美女黄网站色视频大全免费| 97精品久久久久久久久久精品| 街头女战士在线观看网站| 999久久久国产精品视频| 亚洲av男天堂| 人妻 亚洲 视频| 天堂8中文在线网| 亚洲精品美女久久av网站| 好男人视频免费观看在线| 亚洲欧美精品自产自拍| 欧美成人午夜精品| bbb黄色大片| 免费黄频网站在线观看国产| 欧美少妇被猛烈插入视频| 亚洲成av片中文字幕在线观看| 卡戴珊不雅视频在线播放| 欧美日本中文国产一区发布| 午夜91福利影院| 亚洲欧美一区二区三区黑人| 亚洲欧美激情在线| 精品国产一区二区久久| 美女中出高潮动态图| 麻豆乱淫一区二区| 日韩伦理黄色片| 亚洲成人免费av在线播放| 成人三级做爰电影| 深夜精品福利| 午夜91福利影院| 人成视频在线观看免费观看| 亚洲成人一二三区av| 极品人妻少妇av视频| 免费少妇av软件| 在线观看国产h片| 伦理电影大哥的女人| 又黄又粗又硬又大视频| 这个男人来自地球电影免费观看 | 可以免费在线观看a视频的电影网站 | 亚洲欧洲国产日韩| 国产又爽黄色视频| 久久久久久久久免费视频了| 99精国产麻豆久久婷婷| 97精品久久久久久久久久精品| 欧美人与性动交α欧美精品济南到| 国产乱人偷精品视频| 国产精品免费大片| 成年人免费黄色播放视频| 丰满少妇做爰视频| 久久天躁狠狠躁夜夜2o2o | 亚洲av日韩精品久久久久久密 | 丰满饥渴人妻一区二区三| 久久久久精品久久久久真实原创| 日韩 欧美 亚洲 中文字幕| 黑人欧美特级aaaaaa片| 美女脱内裤让男人舔精品视频| 九色亚洲精品在线播放| 国产极品粉嫩免费观看在线| 国产xxxxx性猛交| 久久综合国产亚洲精品| 欧美日韩亚洲综合一区二区三区_| 国产黄色视频一区二区在线观看| 久久精品久久久久久噜噜老黄| 乱人伦中国视频| 男女边吃奶边做爰视频| 黄色一级大片看看| 亚洲精品日本国产第一区| 日本av免费视频播放| 91成人精品电影| 伦理电影免费视频| 午夜福利在线免费观看网站| 一级a爱视频在线免费观看| 最黄视频免费看| 久久国产精品男人的天堂亚洲| 精品第一国产精品| 在线天堂最新版资源| 韩国av在线不卡| 国产一区二区在线观看av| 精品人妻在线不人妻| 最近中文字幕高清免费大全6| 国产伦人伦偷精品视频| 久久精品久久久久久久性| 日韩一卡2卡3卡4卡2021年| 欧美变态另类bdsm刘玥| av卡一久久| 纵有疾风起免费观看全集完整版| 国产成人欧美| 成人三级做爰电影| 啦啦啦 在线观看视频| 国产老妇伦熟女老妇高清| 国产 一区精品| 国产日韩欧美在线精品| xxxhd国产人妻xxx| 亚洲一码二码三码区别大吗| 国产成人欧美| 高清av免费在线| 国产一区二区激情短视频 | netflix在线观看网站| 久久久亚洲精品成人影院| 嫩草影视91久久| 国产亚洲午夜精品一区二区久久| 亚洲av日韩精品久久久久久密 | 亚洲精品国产av蜜桃| 日韩av免费高清视频| 国产在线免费精品| 九色亚洲精品在线播放| 亚洲国产av新网站| 亚洲精品一二三| 丰满少妇做爰视频| 91国产中文字幕| 无遮挡黄片免费观看| 国产精品女同一区二区软件| 久久人妻熟女aⅴ| 欧美亚洲日本最大视频资源| 在线观看三级黄色| 国产欧美亚洲国产| 午夜激情av网站| 国产麻豆69| 亚洲欧美成人精品一区二区| 婷婷色综合www| 91aial.com中文字幕在线观看| 午夜影院在线不卡| 黑人欧美特级aaaaaa片| 亚洲欧美一区二区三区黑人| 久久久久久久大尺度免费视频| 精品久久蜜臀av无| 啦啦啦 在线观看视频| 黄色视频在线播放观看不卡| 精品国产一区二区久久| 欧美老熟妇乱子伦牲交| 老司机深夜福利视频在线观看 | 丝袜人妻中文字幕| 日本91视频免费播放| 校园人妻丝袜中文字幕| 交换朋友夫妻互换小说| 亚洲图色成人| 黑人欧美特级aaaaaa片| 亚洲av日韩在线播放| 国产爽快片一区二区三区| 男女国产视频网站| 中文字幕另类日韩欧美亚洲嫩草| 婷婷成人精品国产| 国产成人啪精品午夜网站| 久久国产精品大桥未久av| 建设人人有责人人尽责人人享有的| 少妇的丰满在线观看| 欧美日本中文国产一区发布| 最近2019中文字幕mv第一页| 女人精品久久久久毛片| 日本黄色日本黄色录像| 亚洲欧美精品综合一区二区三区| 99久久精品国产亚洲精品| 一本一本久久a久久精品综合妖精| 老司机影院成人| 国产精品秋霞免费鲁丝片| 免费在线观看完整版高清| 在现免费观看毛片| 亚洲色图 男人天堂 中文字幕| 精品一品国产午夜福利视频| av国产久精品久网站免费入址| 欧美精品一区二区免费开放| 男女无遮挡免费网站观看| 好男人视频免费观看在线| 久久性视频一级片| 久久精品熟女亚洲av麻豆精品| netflix在线观看网站| 亚洲色图 男人天堂 中文字幕| h视频一区二区三区| 国语对白做爰xxxⅹ性视频网站| 91国产中文字幕| 日日啪夜夜爽| 欧美另类一区| 日韩熟女老妇一区二区性免费视频| 亚洲三区欧美一区|