在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

測(cè)評(píng)分享 | 首嘗HPM6750運(yùn)行邊緣AI框架(含TFLM基準(zhǔn)測(cè)試)

先楫半導(dǎo)體HPMicro ? 2022-10-10 09:49 ? 次閱讀

本文內(nèi)容來(lái)自先楫開(kāi)發(fā)者 @Xusiwei1236,介紹了如何在HPM6750上運(yùn)行邊緣AI框架,感興趣的小伙伴快點(diǎn)來(lái)看看

--------------- 以下為測(cè)評(píng)內(nèi)容---------------

TFLM是什么?

你或許都聽(tīng)說(shuō)過(guò)TensorFlow——由谷歌開(kāi)發(fā)并開(kāi)源的一個(gè)機(jī)器學(xué)習(xí)庫(kù),它支持模型訓(xùn)練和模型推理。


今天介紹的TFLM,全稱是TensorFlow Lite for Microcontrollers,翻譯過(guò)來(lái)就是“針對(duì)微控制器的TensorFlow Lite”。那TensorFlow Lite又是什么呢?


TensorFlow Lite(通常簡(jiǎn)稱TFLite)其實(shí)是TensorFlow團(tuán)隊(duì)為了將模型部署到移動(dòng)設(shè)備而開(kāi)發(fā)的一套解決方案,通俗的說(shuō)就是手機(jī)版的TensorFlow。下面是TensorFlow官網(wǎng)上關(guān)于TFLite的一段介紹:

“TensorFlow Lite 是一組工具,可幫助開(kāi)發(fā)者在移動(dòng)設(shè)備、嵌入式設(shè)備和 loT 設(shè)備上運(yùn)行模型,以便實(shí)現(xiàn)設(shè)備端機(jī)器學(xué)習(xí)。”


而我們今天要介紹的TensorFlow Lite for Microcontrollers(TFLM)則是 TensorFlow Lite的微控制器版本。這里是官網(wǎng)上的一段介紹:

“ TensorFlow Lite for Microcontrollers (以下簡(jiǎn)稱TFLM)是 TensorFlow Lite 的一個(gè)實(shí)驗(yàn)性移植版本,它適用于微控制器和其他一些僅有數(shù)千字節(jié)內(nèi)存的設(shè)備。它可以直接在“裸機(jī)”上運(yùn)行,不需要操作系統(tǒng)支持、任何標(biāo)準(zhǔn) C/C++ 庫(kù)和動(dòng)態(tài)內(nèi)存分配。核心運(yùn)行時(shí)(core runtime)在 Cortex M3 上運(yùn)行時(shí)僅需 16KB,加上足以用來(lái)運(yùn)行語(yǔ)音關(guān)鍵字檢測(cè)模型的操作,也只需 22KB 的空間。”


這三者一脈相承,都出自谷歌,區(qū)別是TensorFlow同時(shí)支持訓(xùn)練和推理,而后兩者只支持推理。TFLite主要用于支持手機(jī)、平板等移動(dòng)設(shè)備,TFLM則可以支持單片機(jī)。從發(fā)展歷程上來(lái)說(shuō),后兩者都是TensorFlow項(xiàng)目的“支線項(xiàng)目”。或者說(shuō)這三者是一個(gè)樹(shù)形的發(fā)展過(guò)程,具體來(lái)說(shuō),TFLite是從TensorFlow項(xiàng)目分裂出來(lái)的,TFLite-Micro是從TFLite分裂出來(lái)的,目前是三個(gè)并行發(fā)展的。在很長(zhǎng)一段時(shí)間內(nèi),這三個(gè)項(xiàng)目的源碼都在一個(gè)代碼倉(cāng)中維護(hù),從源碼目錄的包含關(guān)系上來(lái)說(shuō),TensorFlow包含后兩者,TFLite包含tflite-micro。


HPMSDK中的TFLM

  • TFLM中間件

HPM SDK中集成了TFLM中間件(類似庫(kù),但是沒(méi)有單獨(dú)編譯為庫(kù)),位于hpm_sdk\middleware子目錄:

34b9a752-47b4-11ed-b116-dac502259ad0.png這個(gè)子目錄的代碼是由TFLM開(kāi)源項(xiàng)目裁剪而來(lái),刪除了很多不需要的文件。

TFLM示例

HPM SDK中也提供了TFLM示例,位于hpm_sdk\samples\tflm子目錄:

34d8d334-47b4-11ed-b116-dac502259ad0.png

示例代碼是從官方的persion_detection示例修改而來(lái),添加了攝像頭采集圖像和LCD顯示結(jié)果。
由于我手里沒(méi)有配套的攝像頭和顯示屏,所以本篇沒(méi)有以這個(gè)示例作為實(shí)驗(yàn)。

在HPM6750上運(yùn)行TFLM基準(zhǔn)測(cè)試

接下來(lái)以person detection benchmark為例,講解如何在HPM6750上運(yùn)行TFLM基準(zhǔn)測(cè)試。

將person detection benchmark源代碼添加到HPM SDK環(huán)境

按照如下步驟,在HPM SDK環(huán)境中添加person detection benchmark源代碼文件:

在HPM SDK的samples子目錄創(chuàng)建tflm_person_detect_benchmark目錄,并在其中創(chuàng)建src目錄;

從上文描述的已經(jīng)運(yùn)行過(guò)person detection benchmark的tflite-micro目錄中拷貝如下文件到src目錄:

tensorflow\lite\micro\benchmarks\person_detection_benchmark.cc

tensorflow\lite\micro\benchmarks\micro_benchmark.h

tensorflow\lite\micro\examples\person_detection\model_settings.h

tensorflow\lite\micro\examples\person_detection\model_settings.cc

在src目錄創(chuàng)建testdata子目錄,并將tflite-micro目錄下如下目錄中的文件拷貝全部到testdata中:

tensorflow\lite\micro\tools\make\gen\linux_x86_64_default\genfiles\tensorflow\lite\micro\examples\person_detection\testdata

修改person_detection_benchmark.cc、model_settings.cc、no_person_image_data.cc、person_image_data.cc 文件中部分#include預(yù)處理指令的文件路徑(根據(jù)拷貝后的相對(duì)路徑修改);

person_detection_benchmark.cc文件中,main函數(shù)的一開(kāi)始添加一行board_init();、頂部添加一行#include "board.h”

添加CMakeLists.txt和app.yaml文件

在src平級(jí)創(chuàng)建CMakeLists.txt文件,內(nèi)容如下:

cmake_minimum_required(VERSION 3.13)

set(CONFIG_TFLM 1)

find_package(hpm-sdk REQUIRED HINTS $ENV{HPM_SDK_BASE})
project(tflm_person_detect_benchmark)
set(CMAKE_CXX_STANDARD 11)

sdk_app_src(src/model_settings.cc)
sdk_app_src(src/person_detection_benchmark.cc)
sdk_app_src(src/testdata/no_person_image_data.cc)
sdk_app_src(src/testdata/person_image_data.cc)

sdk_app_inc(src)
sdk_ld_options("-lm")
sdk_ld_options("--std=c++11")
sdk_compile_definitions(__HPMICRO__)
sdk_compile_definitions(-DINIT_EXT_RAM_FOR_DATA=1)
# sdk_compile_options("-mabi=ilp32f")
# sdk_compile_options("-march=rv32imafc")
sdk_compile_options("-O2")
# sdk_compile_options("-O3")
set(SEGGER_LEVEL_O3 1)
generate_ses_project()

在src平級(jí)創(chuàng)建app.yaml文件,內(nèi)容如下:

dependency:
  - tflm

  • 編譯和運(yùn)行TFLM基準(zhǔn)測(cè)試

接下來(lái)就是大家熟悉的——編譯運(yùn)行了。首先,使用generate_project生產(chǎn)項(xiàng)目:35187a16-47b4-11ed-b116-dac502259ad0.png接著,將HPM6750開(kāi)發(fā)板連接到PC,在Embedded Studio中打卡剛剛生產(chǎn)的項(xiàng)目:354f7296-47b4-11ed-b116-dac502259ad0.png這個(gè)項(xiàng)目因?yàn)橐肓薚FLM的源碼,文件較多,所以右邊的源碼導(dǎo)航窗里面的Indexing要執(zhí)行很久才能結(jié)束。

然后,就可以使用F7編譯、F5調(diào)試項(xiàng)目了:

35bb5f10-47b4-11ed-b116-dac502259ad0.png

編譯完成后,先打卡串口終端連接到設(shè)備串口,波特率115200。啟動(dòng)調(diào)試后,直接繼續(xù)運(yùn)行,就可以在串口終端中看到基準(zhǔn)測(cè)試的輸出了:

==============================
 hpm6750evkmini clock summary
==============================
cpu0:            816000000Hz
cpu1:            816000000Hz
axi0:            200000000Hz
axi1:            200000000Hz
axi2:            200000000Hz
ahb:             200000000Hz
mchtmr0:         24000000Hz
mchtmr1:         1000000Hz
xpi0:            133333333Hz
xpi1:            400000000Hz
dram:            166666666Hz
display:         74250000Hz
cam0:            59400000Hz
cam1:            59400000Hz
jpeg:            200000000Hz
pdma:            200000000Hz
==============================

----------------------------------------------------------------------
$$\   $$\ $$$$$$$\  $$\      $$\ $$\
$$ |  $$ |$$  __$$\ $$$\    $$$ |\__|
$$ |  $$ |$$ |  $$ |$$$$\  $$$$ |$$\  $$$$$$$\  $$$$$$\   $$$$$$\
$$$$$$$$ |$$$$$$$  |$$\$$\$$ $$ |$$ |$$  _____|$$  __$$\ $$  __$$\
$$  __$$ |$$  ____/ $$ \$$$  $$ |$$ |$$ /      $$ |  \__|$$ /  $$ |
$$ |  $$ |$$ |      $$ |\$  /$$ |$$ |$$ |      $$ |      $$ |  $$ |
$$ |  $$ |$$ |      $$ | \_/ $$ |$$ |\$$$$$$$\ $$ |      \$$$$$$  |
\__|  \__|\__|      \__|     \__|\__| \_______|\__|       \______/
----------------------------------------------------------------------
InitializeBenchmarkRunner took 114969 ticks (4 ms).

WithPersonDataIterations(1) took 10694521 ticks (445 ms)
DEPTHWISE_CONV_2D took 275798 ticks (11 ms).
DEPTHWISE_CONV_2D took 280579 ticks (11 ms).
CONV_2D took 516051 ticks (21 ms).
DEPTHWISE_CONV_2D took 139000 ticks (5 ms).
CONV_2D took 459646 ticks (19 ms).
DEPTHWISE_CONV_2D took 274903 ticks (11 ms).
CONV_2D took 868518 ticks (36 ms).
DEPTHWISE_CONV_2D took 68180 ticks (2 ms).
CONV_2D took 434392 ticks (18 ms).
DEPTHWISE_CONV_2D took 132918 ticks (5 ms).
CONV_2D took 843014 ticks (35 ms).
DEPTHWISE_CONV_2D took 33228 ticks (1 ms).
CONV_2D took 423288 ticks (17 ms).
DEPTHWISE_CONV_2D took 62040 ticks (2 ms).
CONV_2D took 833033 ticks (34 ms).
DEPTHWISE_CONV_2D took 62198 ticks (2 ms).
CONV_2D took 834644 ticks (34 ms).
DEPTHWISE_CONV_2D took 62176 ticks (2 ms).
CONV_2D took 838212 ticks (34 ms).
DEPTHWISE_CONV_2D took 62206 ticks (2 ms).
CONV_2D took 832857 ticks (34 ms).
DEPTHWISE_CONV_2D took 62194 ticks (2 ms).
CONV_2D took 832882 ticks (34 ms).
DEPTHWISE_CONV_2D took 16050 ticks (0 ms).
CONV_2D took 438774 ticks (18 ms).
DEPTHWISE_CONV_2D took 27494 ticks (1 ms).
CONV_2D took 974362 ticks (40 ms).
AVERAGE_POOL_2D took 2323 ticks (0 ms).
CONV_2D took 1128 ticks (0 ms).
RESHAPE took 184 ticks (0 ms).
SOFTMAX took 2249 ticks (0 ms).

NoPersonDataIterations(1) took 10694160 ticks (445 ms)
DEPTHWISE_CONV_2D took 274922 ticks (11 ms).
DEPTHWISE_CONV_2D took 281095 ticks (11 ms).
CONV_2D took 515380 ticks (21 ms).
DEPTHWISE_CONV_2D took 139428 ticks (5 ms).
CONV_2D took 460039 ticks (19 ms).
DEPTHWISE_CONV_2D took 275255 ticks (11 ms).
CONV_2D took 868787 ticks (36 ms).
DEPTHWISE_CONV_2D took 68384 ticks (2 ms).
CONV_2D took 434537 ticks (18 ms).
DEPTHWISE_CONV_2D took 133071 ticks (5 ms).
CONV_2D took 843202 ticks (35 ms).
DEPTHWISE_CONV_2D took 33291 ticks (1 ms).
CONV_2D took 423388 ticks (17 ms).
DEPTHWISE_CONV_2D took 62190 ticks (2 ms).
CONV_2D took 832978 ticks (34 ms).
DEPTHWISE_CONV_2D took 62205 ticks (2 ms).
CONV_2D took 834636 ticks (34 ms).
DEPTHWISE_CONV_2D took 62213 ticks (2 ms).
CONV_2D took 838212 ticks (34 ms).
DEPTHWISE_CONV_2D took 62239 ticks (2 ms).
CONV_2D took 832850 ticks (34 ms).
DEPTHWISE_CONV_2D took 62217 ticks (2 ms).
CONV_2D took 832856 ticks (34 ms).
DEPTHWISE_CONV_2D took 16040 ticks (0 ms).
CONV_2D took 438779 ticks (18 ms).
DEPTHWISE_CONV_2D took 27481 ticks (1 ms).
CONV_2D took 974354 ticks (40 ms).
AVERAGE_POOL_2D took 1812 ticks (0 ms).
CONV_2D took 1077 ticks (0 ms).
RESHAPE took 341 ticks (0 ms).
SOFTMAX took 901 ticks (0 ms).

WithPersonDataIterations(10) took 106960312 ticks (4456 ms)

NoPersonDataIterations(10) took 106964554 ticks (4456 ms)

可以看到,在HPM6750EVKMINI開(kāi)發(fā)板上,連續(xù)運(yùn)行10次人像檢測(cè)模型,總體耗時(shí)4456毫秒,每次平均耗時(shí)445.6毫秒。

樹(shù)莓派3B+上運(yùn)行TFLM基準(zhǔn)測(cè)試

在樹(shù)莓派上運(yùn)行TFLM基準(zhǔn)測(cè)試

樹(shù)莓派3B+上可以和PC上類似,直接運(yùn)行PC端的測(cè)試命令,得到基準(zhǔn)測(cè)試結(jié)果:

35f1d50e-47b4-11ed-b116-dac502259ad0.png

可以看到,在樹(shù)莓派3B+上的,對(duì)于有人臉的圖片,連續(xù)運(yùn)行10次人臉檢測(cè)模型,總體耗時(shí)4186毫秒,每次平均耗時(shí)418.6毫秒;對(duì)于無(wú)人臉的圖片,連續(xù)運(yùn)行10次人臉檢測(cè)模型,耗時(shí)4190毫秒,每次平均耗時(shí)419毫秒。


HPM6750和樹(shù)莓派3B+、AMD R7 4800H上的基準(zhǔn)測(cè)試結(jié)果對(duì)比

這里將HPM6750EVKMINI開(kāi)發(fā)板、樹(shù)莓派3B+和AMD R7 4800H上運(yùn)行人臉檢測(cè)模型的平均耗時(shí)結(jié)果匯總?cè)缦拢?/span>

36209c90-47b4-11ed-b116-dac502259ad0.png

可以看到,在TFLM人臉檢測(cè)模型計(jì)算場(chǎng)景下,HPM6750EVKMINI和樹(shù)莓派3B+成績(jī)相當(dāng)。雖然HPM6750的816MHz CPU頻率比樹(shù)莓派3B+搭載的BCM2837 Cortex-A53 1.4GHz的主頻低,但是在單核心計(jì)算能力上沒(méi)有相差太多。

這里樹(shù)莓派3B+上的TFLM基準(zhǔn)測(cè)試程序是運(yùn)行在64位Debian Linux發(fā)行版上的,而HPM6750上的測(cè)試程序是直接運(yùn)行在裸機(jī)上的。由于操作系統(tǒng)內(nèi)核中任務(wù)調(diào)度器的存在,會(huì)對(duì)CPU的計(jì)算能力帶來(lái)一定損耗。所以,這里進(jìn)行的并不是一個(gè)嚴(yán)格意義上的對(duì)比測(cè)試,測(cè)試結(jié)果僅供參考。

(本文參考鏈接:http://m.eeworld.com.cn/bbs_thread-1208270-1-1.html)

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • AI
    AI
    +關(guān)注

    關(guān)注

    87

    文章

    31493

    瀏覽量

    270097
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    AI開(kāi)發(fā)框架集成介紹

    隨著AI應(yīng)用的廣泛深入,單一框架往往難以滿足多樣化的需求,因此,AI開(kāi)發(fā)框架的集成成為了提升開(kāi)發(fā)效率、促進(jìn)技術(shù)創(chuàng)新的關(guān)鍵路徑。以下,是對(duì)AI
    的頭像 發(fā)表于 01-07 15:58 ?121次閱讀

    MLCommons推出AI基準(zhǔn)測(cè)試0.5版

    開(kāi)放式機(jī)器學(xué)習(xí)工程聯(lián)盟 MLCommons 在美國(guó)加州當(dāng)?shù)貢r(shí)間公布推出適用于消費(fèi)類 PC 的 AI 性能的 MLPerf Client 基準(zhǔn)測(cè)試的 0.5 版,這是該測(cè)試的第一個(gè)公開(kāi)版
    的頭像 發(fā)表于 12-12 16:47 ?395次閱讀

    如何做一個(gè)hpm6750evk2的bootloader?

    我正在做一個(gè)hpm6750evk2的bootloader。設(shè)計(jì)很簡(jiǎn)單,boot工程代碼只做跳轉(zhuǎn)到1M后的APP工程代碼處,APP工程就是做的一個(gè)點(diǎn)燈的程序而已,boot、APP工程都是跑
    發(fā)表于 10-23 19:01

    HPM6750 Bootloader設(shè)計(jì)

    我正在做一個(gè)hpm6750evk2的bootloader。設(shè)計(jì)很簡(jiǎn)單,boot工程代碼只做跳轉(zhuǎn)到1M后的APP工程代碼處,APP工程就是做的一個(gè)點(diǎn)燈的程序而已,boot、APP工程都是跑
    發(fā)表于 10-23 18:59

    TDA4 Edge AI處理器的性能和效率基準(zhǔn)測(cè)試

    電子發(fā)燒友網(wǎng)站提供《TDA4 Edge AI處理器的性能和效率基準(zhǔn)測(cè)試.pdf》資料免費(fèi)下載
    發(fā)表于 09-11 09:21 ?0次下載
    TDA4 Edge <b class='flag-5'>AI</b>處理器的性能和效率<b class='flag-5'>基準(zhǔn)</b><b class='flag-5'>測(cè)試</b>

    hpm_manufacturing_tool linux 版本 選擇 hidraw 連接等待超時(shí)

    _manufacturing_tool_gui linux 版本 選擇 hidraw 連接 HPM6750 芯片,能識(shí)別到 hidraw 設(shè)備,單擊連接是提示重啟芯片這個(gè)時(shí)候會(huì)等待超時(shí)然后軟件報(bào)錯(cuò),此時(shí)查看 lsusb 設(shè)備是檢測(cè)不到 hpm6750
    發(fā)表于 08-07 16:43

    中文大模型測(cè)評(píng)基準(zhǔn)SuperCLUE:商湯日日新5.0,刷新國(guó)內(nèi)最好成績(jī)

    日前,中文大模型測(cè)評(píng)基準(zhǔn)SuperCLUE發(fā)布最新榜單,對(duì)商湯科技全新升級(jí)「日日新SenseNova 5.0」大模型進(jìn)行了全方位綜合性測(cè)評(píng),結(jié)果顯示在SuperCLUE綜合基準(zhǔn)上,日日
    的頭像 發(fā)表于 05-21 14:45 ?820次閱讀
    中文大模型<b class='flag-5'>測(cè)評(píng)</b><b class='flag-5'>基準(zhǔn)</b>SuperCLUE:商湯日日新5.0,刷新國(guó)內(nèi)最好成績(jī)

    先楫半導(dǎo)體 hpm_sdk v1.5.0 正式發(fā)布

    先楫半導(dǎo)體 hpm_sdk v1.5.0 正式發(fā)布!功能升級(jí)更強(qiáng)大 版本更新概況 新支持的IDE IAR Embedded Workbench for RISC-V (測(cè)試版本3.20.1) 新增
    發(fā)表于 04-08 11:14

    UL Procyon AI 發(fā)布圖像生成基準(zhǔn)測(cè)試,基于Stable Diffusion

    UL去年發(fā)布的首個(gè)Windows版Procyon AI推理基準(zhǔn)測(cè)試,以計(jì)算機(jī)視覺(jué)工作負(fù)載評(píng)估AI推理性能。新推出的圖像生成測(cè)試將提供統(tǒng)一、精
    的頭像 發(fā)表于 03-25 16:16 ?947次閱讀

    RTThread的定時(shí)器中斷時(shí)間不準(zhǔn)確,會(huì)有us級(jí)的抖動(dòng)的原因?

    我在用hpm6750定時(shí)器,通過(guò)定時(shí)器中斷周期處理函數(shù),周期1ms,但是定時(shí)器的每周期時(shí)間都會(huì)飄,會(huì)有us級(jí)的抖動(dòng),我的中斷回調(diào)函數(shù)如下: int us_temp[1000]; int us_idx
    發(fā)表于 02-23 07:09

    HPM6750體驗(yàn)ADC

    1、新建RTT工程,工程中添加對(duì)ADC的驅(qū)動(dòng): 2、保存工程后,添加測(cè)試代碼。 3、我們根據(jù)原理圖上的J10接個(gè),只有PE29是ADC3的輸出通道 4、先定義通道、任務(wù) #define
    發(fā)表于 02-17 16:00

    解決HPM6750EVK2jlink下載

    拿到HPM6750EVK2,使用jlink下載時(shí),我原來(lái)用買jlink配的20轉(zhuǎn)10轉(zhuǎn)接板進(jìn)行連接,下載程序里一直報(bào)不能連接到開(kāi)發(fā)板。經(jīng)過(guò)查找用手冊(cè)后,找到了問(wèn)題。 我的jlink的引腳圖與之不對(duì)
    發(fā)表于 02-16 10:30

    先輯HPM6570用Jlink下載程序出錯(cuò)

    as current target interface. J-Link>jtagconf -1 -1 J-Link>exec device=HPM6750xVMx Device
    發(fā)表于 02-16 09:32

    【先楫HPM5361EVK開(kāi)發(fā)板試用體驗(yàn)】(原創(chuàng))5.手把手實(shí)戰(zhàn)AI機(jī)械臂

    HPM5361EVK開(kāi)發(fā)板。現(xiàn)在開(kāi)始設(shè)計(jì)實(shí)戰(zhàn)AI機(jī)械臂的程序。 代碼結(jié)構(gòu) 由于編寫(xiě)一個(gè)完整的用先楫HPM5361EVK開(kāi)發(fā)板控制三組四自由度機(jī)械臂,并加入紅外線傳感器、機(jī)器視覺(jué)和ChatGPT連接
    發(fā)表于 02-06 10:28

    Embedded Studio 編譯器教程

    最近入手先輯的HPM6750,需要使用Embedded Studio 編譯器來(lái)做開(kāi)發(fā),各位推薦一下學(xué)習(xí)資料。
    發(fā)表于 02-04 08:01
    主站蜘蛛池模板: 日韩在线天堂免费观看 | 午夜小视频在线播放 | semm亚洲欧美在线高清 | 最新仑乱免费视频 | 99国产精品久久久久久久成人热 | 黑色丝袜在丝袜福利国产 | 欧美色图在线视频 | 美女国产一区 | 天堂中文最新版www 天堂资源8中文最新版在线 | 五月婷婷综合色 | 可以免费观看的一级毛片 | 天天干狠狠干 | 色综合久久综合欧美综合网 | 亚洲精品aaa揭晓 | 特黄特色大片免费视频播放 | 欧美成人午夜精品一区二区 | 性欧美高清短视频免费 | 色色色色色色色色色色色色 | 四虎在线播放免费永久视频 | 天天在线精品视频在线观看 | 日本在线视频一区二区三区 | 调教双性学霸美人 | 国产成都一二三四区 | 黄色片不卡 | 久热精品在线视频 | 亚洲影院手机版777点击进入影院 | 夜夜爱夜夜做夜夜爽 | 日本xxxxx黄区免费看动漫 | 一区二区在线观看高清 | 天天做天天爱天天综合网 | 狠狠欧美| 好大好猛好爽好深视频免费 | 综合久久婷婷 | 欧美日韩乱国产 | 免费污视频在线 | 一区不卡视频 | 欧美综合国产精品日韩一 | 久久6免费视频 | 三级毛片免费观看 | 18视频网站在线观看 | 成人一级视频 |