• <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鏈
    精品少妇一区二区三区视频日本电影 | 亚洲在久久综合| 另类精品久久| 午夜91福利影院| 观看美女的网站| 极品人妻少妇av视频| 一区二区三区精品91| 在线观看免费高清a一片| 成人黄色视频免费在线看| 一区在线观看完整版| 亚洲av.av天堂| 亚洲av男天堂| 久久久久视频综合| 男女边摸边吃奶| 国产成人精品久久久久久| videosex国产| 国产一区二区三区综合在线观看| 久久久精品免费免费高清| tube8黄色片| 久久久国产欧美日韩av| 97在线人人人人妻| 美女视频免费永久观看网站| 最近的中文字幕免费完整| 咕卡用的链子| 天天躁日日躁夜夜躁夜夜| 精品国产国语对白av| 久久精品国产综合久久久| 国产成人免费无遮挡视频| 午夜免费鲁丝| 欧美日韩亚洲国产一区二区在线观看 | 久久精品国产鲁丝片午夜精品| 亚洲国产欧美日韩在线播放| 免费日韩欧美在线观看| 美国免费a级毛片| 精品国产国语对白av| 亚洲精品久久午夜乱码| 制服人妻中文乱码| av天堂久久9| 91久久精品国产一区二区三区| 亚洲内射少妇av| 国产成人精品婷婷| 午夜激情久久久久久久| 国产成人91sexporn| 一区二区av电影网| 精品国产乱码久久久久久小说| 如日韩欧美国产精品一区二区三区| 国产黄色免费在线视频| 如日韩欧美国产精品一区二区三区| 最黄视频免费看| av免费观看日本| 极品人妻少妇av视频| 一本—道久久a久久精品蜜桃钙片| 人人妻人人澡人人看| 亚洲精品自拍成人| 日韩av在线免费看完整版不卡| 最近最新中文字幕大全免费视频 | 不卡视频在线观看欧美| 18禁国产床啪视频网站| 亚洲精华国产精华液的使用体验| 考比视频在线观看| 亚洲视频免费观看视频| 午夜福利乱码中文字幕| 国产日韩欧美在线精品| 伊人久久大香线蕉亚洲五| 青春草国产在线视频| 人妻少妇偷人精品九色| 日韩一区二区三区影片| 亚洲av免费高清在线观看| 色播在线永久视频| 男男h啪啪无遮挡| 毛片一级片免费看久久久久| 国产免费视频播放在线视频| 大片免费播放器 马上看| 午夜日韩欧美国产| 亚洲精品av麻豆狂野| 观看美女的网站| 免费观看性生交大片5| 美女福利国产在线| 看免费av毛片| 久久韩国三级中文字幕| 久久青草综合色| 免费观看性生交大片5| av国产精品久久久久影院| 久久国产亚洲av麻豆专区| 免费观看无遮挡的男女| 国产1区2区3区精品| av国产久精品久网站免费入址| 亚洲婷婷狠狠爱综合网| 国产精品久久久久成人av| 日韩 亚洲 欧美在线| 超碰97精品在线观看| 久久久久久人妻| 亚洲五月色婷婷综合| 午夜免费鲁丝| 熟女少妇亚洲综合色aaa.| 最近中文字幕2019免费版| 欧美精品亚洲一区二区| 亚洲欧美成人综合另类久久久| 久久婷婷青草| 一二三四在线观看免费中文在| 久久午夜福利片| 老司机亚洲免费影院| 老司机亚洲免费影院| 最近2019中文字幕mv第一页| 精品少妇一区二区三区视频日本电影 | 国产成人精品久久久久久| 交换朋友夫妻互换小说| 丝袜美腿诱惑在线| 免费女性裸体啪啪无遮挡网站| 满18在线观看网站| 天天躁夜夜躁狠狠久久av| 国产精品一国产av| 午夜av观看不卡| 又大又黄又爽视频免费| 亚洲综合色惰| 一本色道久久久久久精品综合| 又粗又硬又长又爽又黄的视频| 欧美精品国产亚洲| 一边亲一边摸免费视频| 欧美少妇被猛烈插入视频| 亚洲av电影在线观看一区二区三区| 国产精品三级大全| 美女xxoo啪啪120秒动态图| 久久久久久久精品精品| 国产成人免费无遮挡视频| 日韩免费高清中文字幕av| 日日摸夜夜添夜夜爱| 午夜福利视频精品| 精品卡一卡二卡四卡免费| 99久久精品国产国产毛片| 免费黄色在线免费观看| 另类精品久久| 自线自在国产av| 国产成人精品一,二区| 两个人免费观看高清视频| 久久亚洲国产成人精品v| 人人妻人人爽人人添夜夜欢视频| 国产伦理片在线播放av一区| 精品国产一区二区三区久久久樱花| 香蕉国产在线看| 久久午夜综合久久蜜桃| 久久精品久久精品一区二区三区| videossex国产| 在线 av 中文字幕| 最近的中文字幕免费完整| 欧美成人午夜精品| 亚洲精品国产av蜜桃| 成年av动漫网址| 久久国产精品男人的天堂亚洲| 亚洲精品久久成人aⅴ小说| 午夜福利,免费看| 免费大片黄手机在线观看| 亚洲国产精品一区二区三区在线| 男女边摸边吃奶| 69精品国产乱码久久久| 国产成人免费观看mmmm| www.熟女人妻精品国产| 欧美另类一区| 热re99久久国产66热| 亚洲色图综合在线观看| 久久热在线av| av片东京热男人的天堂| 自拍欧美九色日韩亚洲蝌蚪91| 精品一区在线观看国产| 亚洲精品av麻豆狂野| 在现免费观看毛片| 在现免费观看毛片| 最近2019中文字幕mv第一页| 在线亚洲精品国产二区图片欧美| 男人添女人高潮全过程视频| 亚洲在久久综合| 寂寞人妻少妇视频99o| 哪个播放器可以免费观看大片| 搡女人真爽免费视频火全软件| www.精华液| 国产成人免费无遮挡视频| 日本欧美国产在线视频| 丝袜在线中文字幕| 亚洲国产毛片av蜜桃av| 亚洲人成网站在线观看播放| 性高湖久久久久久久久免费观看| 永久免费av网站大全| 日本av免费视频播放| 国产成人91sexporn| 91在线精品国自产拍蜜月| av女优亚洲男人天堂| 另类精品久久| 午夜影院在线不卡| 尾随美女入室| 国产精品av久久久久免费| 亚洲精品aⅴ在线观看| 哪个播放器可以免费观看大片| 极品人妻少妇av视频| 一边亲一边摸免费视频| 一区二区三区四区激情视频| 我要看黄色一级片免费的| 久久久精品区二区三区| 久久久a久久爽久久v久久| 亚洲精华国产精华液的使用体验| 免费高清在线观看日韩| 亚洲激情五月婷婷啪啪| 一区二区av电影网| 亚洲精品国产色婷婷电影| 啦啦啦在线免费观看视频4| 国产精品久久久久久av不卡| 欧美国产精品va在线观看不卡| 天堂俺去俺来也www色官网| 伊人久久国产一区二区| 国产伦理片在线播放av一区| 人体艺术视频欧美日本| 亚洲av国产av综合av卡| 少妇被粗大猛烈的视频| 久久久国产一区二区| 欧美日韩国产mv在线观看视频| 日本欧美国产在线视频| 国产无遮挡羞羞视频在线观看| 国产乱人偷精品视频| 男人添女人高潮全过程视频| 黄色一级大片看看| 视频在线观看一区二区三区| 国产麻豆69| 久久人人爽av亚洲精品天堂| 亚洲精品国产av成人精品| 免费看av在线观看网站| 日日啪夜夜爽| 久久亚洲国产成人精品v| 国产精品av久久久久免费| 婷婷色综合大香蕉| 亚洲综合色网址| av国产精品久久久久影院| 国产成人aa在线观看| 婷婷成人精品国产| 久久国产精品男人的天堂亚洲| 欧美+日韩+精品| 国产成人精品久久二区二区91 | 青春草视频在线免费观看| 国产精品.久久久| 亚洲精品aⅴ在线观看| 色吧在线观看| 亚洲,一卡二卡三卡| 亚洲精品第二区| 在线观看人妻少妇| 久久鲁丝午夜福利片| 视频在线观看一区二区三区| 午夜激情久久久久久久| 一本久久精品| 超碰97精品在线观看| 日本欧美视频一区| 美女高潮到喷水免费观看| 2022亚洲国产成人精品| 久久久久国产一级毛片高清牌| 国精品久久久久久国模美| 在线免费观看不下载黄p国产| 在线观看人妻少妇| 久久精品人人爽人人爽视色| 超色免费av| 精品一区在线观看国产| 超碰成人久久| 99久久人妻综合| 久久久久久久久久久免费av| 两性夫妻黄色片| 国产高清国产精品国产三级| 亚洲精品国产av成人精品| 在线观看www视频免费| av在线老鸭窝| 大香蕉久久网| 一区二区三区精品91| 一边亲一边摸免费视频| 天天躁日日躁夜夜躁夜夜| 亚洲av在线观看美女高潮| 老汉色av国产亚洲站长工具| 麻豆av在线久日| 亚洲精品乱久久久久久| 亚洲国产最新在线播放| 亚洲av在线观看美女高潮| 日韩熟女老妇一区二区性免费视频| 99香蕉大伊视频| 高清av免费在线| 中文字幕精品免费在线观看视频| 伊人久久国产一区二区| 欧美xxⅹ黑人| 极品人妻少妇av视频| 少妇猛男粗大的猛烈进出视频| 青春草国产在线视频| 亚洲视频免费观看视频| 伊人亚洲综合成人网| 国产亚洲欧美精品永久| 美国免费a级毛片| 涩涩av久久男人的天堂| 成人免费观看视频高清| 精品国产乱码久久久久久小说| 青春草亚洲视频在线观看| 久久精品夜色国产| 午夜影院在线不卡| 亚洲欧美精品自产自拍| 亚洲欧洲国产日韩| 国产成人av激情在线播放| 久久人人爽人人片av| 日本欧美视频一区| 最近中文字幕2019免费版| 日韩精品有码人妻一区| 看免费av毛片| 啦啦啦啦在线视频资源| 成人午夜精彩视频在线观看| 男女下面插进去视频免费观看| 成人国语在线视频| 大片免费播放器 马上看| 黑人巨大精品欧美一区二区蜜桃| 亚洲中文av在线| 如日韩欧美国产精品一区二区三区| 人人澡人人妻人| 久久精品久久久久久久性| 男女无遮挡免费网站观看| 寂寞人妻少妇视频99o| 少妇的丰满在线观看| 日韩欧美精品免费久久| 涩涩av久久男人的天堂| 熟女电影av网| 爱豆传媒免费全集在线观看| 日本欧美国产在线视频| 亚洲欧美色中文字幕在线| 亚洲av日韩在线播放| 国产精品三级大全| 最近的中文字幕免费完整| 国产又色又爽无遮挡免| 国产成人精品无人区| 国产一区亚洲一区在线观看| av电影中文网址| 欧美av亚洲av综合av国产av | 高清视频免费观看一区二区| 亚洲精品,欧美精品| 熟女少妇亚洲综合色aaa.| 少妇 在线观看| 99re6热这里在线精品视频| av免费观看日本| 日日摸夜夜添夜夜爱| 国产无遮挡羞羞视频在线观看| 在线观看免费视频网站a站| 母亲3免费完整高清在线观看 | 亚洲av免费高清在线观看| 欧美97在线视频| 成人毛片60女人毛片免费| www.熟女人妻精品国产| 美女视频免费永久观看网站| 日韩,欧美,国产一区二区三区| 国产国语露脸激情在线看| 黄色毛片三级朝国网站| 天天躁夜夜躁狠狠躁躁| 久久女婷五月综合色啪小说| 国产97色在线日韩免费| 亚洲精品日本国产第一区| 国产精品麻豆人妻色哟哟久久| 国产有黄有色有爽视频| 久久久久视频综合| 人妻人人澡人人爽人人| 丝袜喷水一区| 午夜福利在线观看免费完整高清在| 18禁裸乳无遮挡动漫免费视频| av女优亚洲男人天堂| 亚洲精华国产精华液的使用体验| 欧美亚洲 丝袜 人妻 在线| 黄片播放在线免费| 纯流量卡能插随身wifi吗| 中文字幕另类日韩欧美亚洲嫩草| 亚洲综合色网址| 一边摸一边做爽爽视频免费| 免费在线观看完整版高清| 美女主播在线视频| 精品卡一卡二卡四卡免费| 老女人水多毛片| 一级,二级,三级黄色视频| 久久综合国产亚洲精品| 狠狠精品人妻久久久久久综合| 大香蕉久久网| 精品一区二区三区四区五区乱码 | 韩国精品一区二区三区| 亚洲经典国产精华液单| 啦啦啦在线观看免费高清www| 最近的中文字幕免费完整| 人人妻人人爽人人添夜夜欢视频| 男人操女人黄网站| 精品国产国语对白av| tube8黄色片| 这个男人来自地球电影免费观看 | 久久影院123| 丝瓜视频免费看黄片| 在线天堂最新版资源| 日韩一卡2卡3卡4卡2021年| 欧美日韩精品网址| 捣出白浆h1v1| 一级毛片 在线播放| 亚洲精品第二区| 日韩熟女老妇一区二区性免费视频| 成人国语在线视频| 亚洲精品成人av观看孕妇| 亚洲精品美女久久久久99蜜臀 | tube8黄色片| 亚洲精品日韩在线中文字幕| 天美传媒精品一区二区| 丁香六月天网| 男女边摸边吃奶| 日日摸夜夜添夜夜爱| 国产日韩欧美亚洲二区| 18在线观看网站| 少妇猛男粗大的猛烈进出视频| 久久久久久久亚洲中文字幕| 日产精品乱码卡一卡2卡三| 久久 成人 亚洲| 国产一区有黄有色的免费视频| 国产极品天堂在线| 一区福利在线观看| 国产成人免费观看mmmm| 欧美日韩亚洲高清精品| 久久久精品国产亚洲av高清涩受| 亚洲国产毛片av蜜桃av| 一本色道久久久久久精品综合| 日本欧美视频一区| 国产亚洲最大av| 尾随美女入室| 男男h啪啪无遮挡| 国产av码专区亚洲av| 欧美国产精品va在线观看不卡| av网站免费在线观看视频| 少妇人妻精品综合一区二区| 香蕉国产在线看| 纯流量卡能插随身wifi吗| 亚洲国产av影院在线观看| 99久久人妻综合| 最近最新中文字幕免费大全7| 日韩视频在线欧美| av天堂久久9| 捣出白浆h1v1| 人妻人人澡人人爽人人| 一级片免费观看大全| 建设人人有责人人尽责人人享有的| 波多野结衣一区麻豆| 另类精品久久| 男女边摸边吃奶| 久久久久网色| 日本-黄色视频高清免费观看| 久久 成人 亚洲| 99re6热这里在线精品视频| 国产一区二区 视频在线| 成年人免费黄色播放视频| av卡一久久| 天堂中文最新版在线下载| 国产黄色视频一区二区在线观看| 亚洲天堂av无毛| 国产乱人偷精品视频| 一级片'在线观看视频| 国产精品不卡视频一区二区| 91精品国产国语对白视频| 日本免费在线观看一区| 亚洲精品成人av观看孕妇| 哪个播放器可以免费观看大片| 精品亚洲乱码少妇综合久久| www.精华液| 深夜精品福利| 久久午夜福利片| 午夜福利网站1000一区二区三区| 韩国高清视频一区二区三区| 久久久精品国产亚洲av高清涩受| 日本猛色少妇xxxxx猛交久久| 国产野战对白在线观看| 丰满乱子伦码专区| 精品人妻熟女毛片av久久网站| 99久久综合免费| 免费观看av网站的网址| 日韩一区二区三区影片| 亚洲av成人精品一二三区| tube8黄色片| 国产亚洲最大av| 免费大片黄手机在线观看| 国产在视频线精品| 国产极品天堂在线| 亚洲av在线观看美女高潮| 一级片'在线观看视频| 免费在线观看完整版高清| 嫩草影院入口| 伊人亚洲综合成人网| 亚洲精品中文字幕在线视频| 十分钟在线观看高清视频www| 日韩精品免费视频一区二区三区| xxxhd国产人妻xxx| av.在线天堂| 99热全是精品| 精品久久久久久电影网| 80岁老熟妇乱子伦牲交| 国产成人免费无遮挡视频| 大陆偷拍与自拍| 国产精品久久久久成人av| 国产极品天堂在线| 久久精品国产鲁丝片午夜精品| 欧美中文综合在线视频| 欧美激情极品国产一区二区三区| 在线 av 中文字幕| av免费观看日本| 国产精品麻豆人妻色哟哟久久| 久久久久人妻精品一区果冻| 亚洲人成77777在线视频| 婷婷色综合www| 免费高清在线观看视频在线观看| 亚洲av在线观看美女高潮| 男女边吃奶边做爰视频| 美女高潮到喷水免费观看| 国产片特级美女逼逼视频| 国产 一区精品| videos熟女内射| 十分钟在线观看高清视频www| 免费黄频网站在线观看国产| 大码成人一级视频| 久久av网站| 精品久久久精品久久久| 18在线观看网站| av线在线观看网站| 激情五月婷婷亚洲| 国产成人精品在线电影| 久久久久国产精品人妻一区二区| 国产欧美日韩综合在线一区二区| 日韩精品免费视频一区二区三区| 日日摸夜夜添夜夜爱| 边亲边吃奶的免费视频| 国产精品蜜桃在线观看| 一边亲一边摸免费视频| 美女高潮到喷水免费观看| 9热在线视频观看99| av福利片在线| 秋霞伦理黄片| 嫩草影院入口| 2022亚洲国产成人精品| av在线app专区| 中国国产av一级| 国产精品av久久久久免费| 国产乱来视频区| 少妇人妻久久综合中文| 黄片小视频在线播放| 国产在视频线精品| 香蕉国产在线看| 国产成人精品一,二区| 我的亚洲天堂| 寂寞人妻少妇视频99o| 黄色 视频免费看| av网站在线播放免费| 欧美激情极品国产一区二区三区| 黄色视频在线播放观看不卡| 日韩不卡一区二区三区视频在线| 国产午夜精品一二区理论片| 9191精品国产免费久久| 亚洲精品久久久久久婷婷小说| 精品人妻一区二区三区麻豆| 亚洲情色 制服丝袜| 黄频高清免费视频| 女人被躁到高潮嗷嗷叫费观| 国产精品三级大全| 欧美最新免费一区二区三区| 一区二区三区激情视频| 久久久久国产一级毛片高清牌| 欧美日本中文国产一区发布| 午夜激情av网站| 精品久久久久久电影网| 尾随美女入室| 国产精品嫩草影院av在线观看| 中文字幕人妻熟女乱码| 一区二区日韩欧美中文字幕| 精品卡一卡二卡四卡免费| 国产极品天堂在线| 亚洲欧美色中文字幕在线| 亚洲 欧美一区二区三区| 母亲3免费完整高清在线观看 | 亚洲精品,欧美精品| 国产日韩欧美在线精品| 啦啦啦视频在线资源免费观看| 美女大奶头黄色视频| 韩国精品一区二区三区| 国产日韩一区二区三区精品不卡| 制服丝袜香蕉在线| 18禁观看日本| www.熟女人妻精品国产| 中文字幕另类日韩欧美亚洲嫩草| 飞空精品影院首页| 丰满乱子伦码专区| 国产有黄有色有爽视频| 国产精品久久久久久久久免| 多毛熟女@视频| 99国产综合亚洲精品| 亚洲精品中文字幕在线视频| 日本猛色少妇xxxxx猛交久久| 免费高清在线观看日韩| 国产无遮挡羞羞视频在线观看| 一边亲一边摸免费视频| 免费高清在线观看日韩| 亚洲成人一二三区av| 午夜久久久在线观看| 最近中文字幕2019免费版| 美女视频免费永久观看网站| 免费av中文字幕在线| 精品国产乱码久久久久久男人| 欧美日韩亚洲高清精品| 亚洲欧洲精品一区二区精品久久久 | 一区二区日韩欧美中文字幕| 日韩欧美精品免费久久| 一区在线观看完整版| 少妇被粗大的猛进出69影院| 夜夜骑夜夜射夜夜干| 看非洲黑人一级黄片| 亚洲精品一二三| 中文乱码字字幕精品一区二区三区| 日韩制服骚丝袜av| 99国产精品免费福利视频| 国产成人aa在线观看| 成人国语在线视频| 国产精品.久久久| 精品国产超薄肉色丝袜足j| av网站在线播放免费| 精品国产一区二区三区久久久樱花|