亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

YOLOv5s部署到華為Atlas 300V NPU推理卡實(shí)戰(zhàn)

YOLOv5s部署到華為Atlas 300V NPU推理卡實(shí)戰(zhàn) 上個(gè)月項(xiàng)目里要上一批邊緣端的視頻結(jié)構(gòu)化節(jié)點(diǎn)硬件選型時(shí)拿到了一塊Atlas 300V 24G加速卡。一開始我以為這東西跟普通GPU一樣插上、裝驅(qū)動(dòng)、跑YOLO就完事了結(jié)果真上手才發(fā)現(xiàn)完全不是這么回事。它是一塊NPU推理卡從驅(qū)動(dòng)到模型轉(zhuǎn)換再到推理代碼每一步都有一堆和CUDA生態(tài)不一樣的規(guī)矩。這篇就把我從零開始把YOLOv5s部署到Atlas 300V上的完整過程寫出來包括硬件選型邏輯、環(huán)境搭建、模型轉(zhuǎn)換、AscendCL推理代碼、性能調(diào)優(yōu)以及一路排查過的各種報(bào)錯(cuò)。想用這塊卡跑YOLO系列模型的可以直接跟著走一遍。1. 先搞清楚Atlas 300V到底是什么卡推理卡和訓(xùn)練卡不是一回事很多第一次接觸華為Atlas系列的人看到“加速卡”三個(gè)字就容易把它和NVIDIA的顯卡畫等號(hào)。實(shí)際上Atlas 300V 24G是一塊標(biāo)準(zhǔn)的AI推理卡Inference Card不是訓(xùn)練卡。這一點(diǎn)如果沒搞清楚后面整個(gè)項(xiàng)目方向都會(huì)跑偏。1.1 Atlas 300V在昇騰產(chǎn)品線里的位置Atlas系列按用途可以粗分成幾類訓(xùn)練服務(wù)器里的加速模塊、邊緣計(jì)算盒子里的加速卡、數(shù)據(jù)中心用的PCIe推理卡。Atlas 300V 24G就屬于PCIe推理卡這一檔外形上和一張普通顯卡差不多插在服務(wù)器的PCIe x16插槽里就能用。它不承擔(dān)訓(xùn)練任務(wù)也不是用來做通用計(jì)算的它的核心目標(biāo)是把訓(xùn)練好的模型比如YOLO、ResNet、BERT這類以盡可能低的延遲跑起來。這塊卡最顯眼的參數(shù)就是24GB的DDR內(nèi)存。對(duì)推理卡來說大容量顯存的意義在于能裝下更大的模型、更大的批量batch或者直接緩存多路視頻流的預(yù)處理數(shù)據(jù)。比如做16路甚至32路視頻流同時(shí)推理時(shí)24GB能讓你不用頻繁換模型、不用頻繁搬運(yùn)中間數(shù)據(jù)這對(duì)實(shí)際項(xiàng)目的穩(wěn)定性幫助很大。當(dāng)然實(shí)際有效容量需要扣除系統(tǒng)預(yù)留部分Atlas 300V 24G版可用的NPU內(nèi)存一般在22GB左右具體以實(shí)機(jī)npu-smi info顯示為準(zhǔn)。另外需要糾正一個(gè)常見誤解Atlas 300V 24G不支持FP32高精度訓(xùn)練它主要跑INT8量化模型部分場(chǎng)景支持FP16。這意味著你從PyTorch里訓(xùn)練出來的FP32權(quán)重不能直接扔給它跑要先做模型轉(zhuǎn)換而且想吃到性能紅利最好做INT8量化。對(duì)YOLO這類模型來說INT8量化后精度損失通常能控制在可接受范圍內(nèi)但轉(zhuǎn)換時(shí)要小心處理輸入輸出的數(shù)據(jù)格式后面會(huì)細(xì)說。1.2 和GPU卡在開發(fā)流程上的差異如果用慣了CUDA你會(huì)發(fā)現(xiàn)Atlas的整個(gè)開發(fā)流程是“三板斧”用ASTON/PyTorch訓(xùn)練權(quán)重、把權(quán)重轉(zhuǎn)成ONNX、再用ATC工具轉(zhuǎn)成昇騰的OM離線模型最后用AscendCL簡(jiǎn)稱ACL或者M(jìn)indSpore的推理接口加載OM執(zhí)行推理。這里有個(gè)關(guān)鍵點(diǎn)OM模型是昇騰專用的不能直接在PyTorch或TensorFlow里加載。也就是說模型一旦轉(zhuǎn)成OM后續(xù)調(diào)試基本只能在昇騰的環(huán)境里做。這跟TensorRTTRT的做法有點(diǎn)像——都是把通用模型轉(zhuǎn)成廠商私有格式但Atlas的生態(tài)更封閉一些文檔和社區(qū)資料也不如CUDA豐富所以踩坑只能自己多試。還要注意Atlas 300V雖然也是PCIe卡但它沒有視頻輸出接口也不支持接顯示器。它是純計(jì)算設(shè)備所有推理結(jié)果都通過PCIe總線返回給主機(jī)CPU。這個(gè)定位決定了它適合放在服務(wù)器端做離線或?qū)崟r(shí)推理比如視頻分析服務(wù)器、智能網(wǎng)關(guān)、工業(yè)質(zhì)檢機(jī)而不是桌面圖形工作站。對(duì)部署YOLO來說理解這層區(qū)別的意義在于你的代碼結(jié)構(gòu)要從“GPU顯存管理”思維切換成“設(shè)備內(nèi)存管理”思維顯存拷貝、緩沖區(qū)申請(qǐng)、模型加載這些操作都要調(diào)用ACL自己的API不能拿cudaMalloc那一套硬套。2. 環(huán)境搭建實(shí)戰(zhàn)驅(qū)動(dòng)、固件和CANN工具鏈的版本配合是最大的坑環(huán)境搭建階段我被三個(gè)東西反復(fù)折磨NPU驅(qū)動(dòng)、固件、CANN工具包。這三者各有各的版本號(hào)而且必須互相匹配任何一個(gè)版本對(duì)不上后續(xù)模型轉(zhuǎn)換和推理都會(huì)遇到莫名其妙的錯(cuò)誤。2.1 安裝順序和版本配套邏輯正確順序是先裝NPU驅(qū)動(dòng)再裝固件最后裝CANN工具包。驅(qū)動(dòng)讓操作系統(tǒng)能識(shí)別到NPU設(shè)備固件是NPU上運(yùn)行的底層軟件CANN則是給開發(fā)者用的SDK包含ATC模型轉(zhuǎn)換工具、AscendCL運(yùn)行時(shí)、各種算子庫。我第一次安裝時(shí)圖省事直接用了網(wǎng)上流傳的“一鍵腳本”結(jié)果驅(qū)動(dòng)和固件版本不匹配npu-smi info偶爾能看到卡一跑推理就報(bào)199runtime internal error。后來只能按官方兼容性列表老老實(shí)實(shí)對(duì)了一遍驅(qū)動(dòng)版本、固件版本、CANN版本三者必須完全符合配套關(guān)系。這一步?jīng)]有任何捷徑建議直接查昇騰社區(qū)官方文檔里最新的“驅(qū)動(dòng)固件與CANN版本配套表”。安裝命令通常類似這樣# 安裝驅(qū)動(dòng)以Ascend-hdk-310p-npu-driver_xxx.run為例 ./Ascend-hdk-310p-npu-driver_xxx.run --full --install # 安裝固件 ./Ascend-hdk-310p-npu-firmware_xxx.run --full --install # 安裝CANN工具包 ./Ascend-cann-toolkit_xxx.run --install安裝完成后務(wù)必設(shè)置環(huán)境變量source /usr/local/Ascend/ascend-toolkit/set_env.sh如果你用了非root用戶還需要把當(dāng)前用戶加入ascend組否則會(huì)報(bào)權(quán)限不足。2.2 如何確認(rèn)安裝成功裝完后先別急著寫代碼先把環(huán)境驗(yàn)一遍。第一步用npu-smi info看看卡是否正常被識(shí)別npu-smi info正常情況下能看到卡的型號(hào)、芯片溫度、內(nèi)存占用、算力狀態(tài)等基本信息。如果是Atlas 300V 24G芯片名通常顯示為Ascend 310P系列。這一步看不到卡或者顯示“N/A”說明驅(qū)動(dòng)沒裝好先不用往下走。第二步驗(yàn)證CANN工具鏈?zhǔn)欠窨捎胊tc --version能正常輸出版本號(hào)說明ATC轉(zhuǎn)換工具已經(jīng)裝好。此時(shí)還可以用CANN自帶的樣例跑一個(gè)簡(jiǎn)單的resnet50推理測(cè)試比如位于/usr/local/Ascend/ascend-toolkit/latest/.../sample目錄下的樣例工程跑通了再進(jìn)入下一步。這里有個(gè)容易被忽略的點(diǎn)Atlas 300V 24G對(duì)應(yīng)的soc_version不是Ascend310也不是Ascend910而是Ascend310P系列具體是310P幾代可以用npu-smi info -t board查看或者在ATC轉(zhuǎn)換時(shí)用一個(gè)能識(shí)別芯片類型的工具確認(rèn)。我自己的卡查出來是Ascend310P3后面ATC轉(zhuǎn)換參數(shù)里就要寫--soc_versionAscend310P3。寫錯(cuò)這個(gè)參數(shù)模型轉(zhuǎn)換階段會(huì)直接報(bào)錯(cuò)。2.3 雙機(jī)互聯(lián)和Docker部署的額外注意事項(xiàng)Atlas 300V是PCIe卡理論上只要服務(wù)器有空的PCIe x16插槽就行。但實(shí)際部署要注意幾點(diǎn)一是供電部分服務(wù)器主板單個(gè)PCIe插槽供電有限如果卡在滿載時(shí)發(fā)現(xiàn)異常重啟要考慮輔助供電二是散熱Atlas 300V無風(fēng)扇設(shè)計(jì)居多依賴服務(wù)器機(jī)箱風(fēng)道如果塞在不通風(fēng)的機(jī)器里推理時(shí)間一長芯片溫度容易沖到90℃以上性能會(huì)自動(dòng)下降。如果想把推理服務(wù)容器化注意CANN的Docker鏡像需要單獨(dú)下載不能直接用宿主機(jī)里的.so文件掛載進(jìn)去就完事。因?yàn)镃ANN版本和驅(qū)動(dòng)之間有嚴(yán)格的配套關(guān)系容器里的CANN版本必須和宿主機(jī)驅(qū)動(dòng)兼容否則設(shè)備映射進(jìn)容器后同樣會(huì)報(bào)錯(cuò)。建議直接用昇騰官方發(fā)布的Ascend Docker Runtime并在創(chuàng)建容器時(shí)掛載/dev/davinci0設(shè)備文件和/usr/local/Ascend/driver目錄而不是手動(dòng)拷貝CANN包。3. YOLO模型上卡PyTorch權(quán)重轉(zhuǎn)ONNX再轉(zhuǎn)OM的完整鏈路環(huán)境準(zhǔn)備好之后真正的重頭戲來了把PyTorch訓(xùn)練好的YOLO權(quán)重部署到Atlas 300V上。整個(gè)過程可以簡(jiǎn)化為“PyTorch權(quán)重 → ONNX → OM”其中每一步都有各自的坑尤其是ONNX導(dǎo)出和ATC轉(zhuǎn)換這兩個(gè)環(huán)節(jié)稍不注意就前功盡棄。3.1 從PyTorch導(dǎo)出ONNX降算符版本是第一個(gè)坑我用的YOLOv5s為例在官方倉庫基礎(chǔ)上訓(xùn)練完權(quán)重為best.pt。導(dǎo)出ONNX時(shí)官方腳本一般會(huì)帶--opset參數(shù)很多人直接默認(rèn)導(dǎo)出opset版本可能高達(dá)17甚至更高。但昇騰ATC工具對(duì)ONNX算符的支持是分版本演進(jìn)的某些新版算子它還沒完全適配。我的做法是顯式指定一個(gè)相對(duì)保守的opset版本比如opset11import torch model torch.load(best.pt, map_locationcpu)[model].float() model.eval() dummy_input torch.randn(1, 3, 640, 640) torch.onnx.export( model, dummy_input, yolov5s.onnx, opset_version11, input_names[images], output_names[output], dynamic_axes{images: {0: batch}, output: {0: batch}} )注意這里我用dynamic_axes把batch維度設(shè)成了動(dòng)態(tài)。有些場(chǎng)景固定batch1也可以但考慮到后續(xù)要做多路視頻并發(fā)推理動(dòng)態(tài)batch會(huì)更靈活。實(shí)際測(cè)試下來opset11的ONNX在ATC里的兼容性比opset17好很多轉(zhuǎn)OM基本一次通過。另外一個(gè)容易踩的坑導(dǎo)出ONNX時(shí)如果模型本身包含一些自定義算子或后處理層比如NMS這些算子有時(shí)在ONNX里能被表示但ATC不一定認(rèn)識(shí)。建議導(dǎo)出時(shí)把后處理剝離模型只保留主干部分的原始輸出NMS等后處理放到昇騰推理完成之后在主機(jī)CPU上做或者用Atlas環(huán)境里提供的非極大值抑制算子單獨(dú)處理。這樣能避免大量轉(zhuǎn)換報(bào)錯(cuò)調(diào)試也方便。3.2 ATC轉(zhuǎn)換成OMinput_shape和AIPP配置直接影響性能和正確性得到ONNX之后用ATC工具轉(zhuǎn)OM。我的常用命令如下atc --modelyolov5s.onnx \ --framework5 \ --outputyolov5s_310p3 \ --soc_versionAscend310P3 \ --input_shapeimages:1,3,640,640 \ --logerror--framework5表示輸入是ONNX模型--soc_version必須和你實(shí)際的芯片型號(hào)一致這一步錯(cuò)不得。轉(zhuǎn)完會(huì)生成一個(gè)yolov5s_310p3.om文件這就是能在Atlas 300V上直接加載的離線模型。如果只是做最簡(jiǎn)單的驗(yàn)證上面的命令就夠了。但要把性能吃透AIPPArtificial Intelligence Pre-Processing配置幾乎繞不開。YOLO推理時(shí)輸入圖像要從BGR或RGB的uint8數(shù)據(jù)轉(zhuǎn)成浮點(diǎn)、歸一化到0~1、再resize到640×640。這些操作如果在CPU上用OpenCV做每一路視頻流都會(huì)白白占用大量CPU資源而且數(shù)據(jù)從CPU內(nèi)存拷到NPU內(nèi)存還要多一次搬運(yùn)。昇騰的做法是把這些預(yù)處理步驟直接下沉到NPU里的AIPP模塊ATC轉(zhuǎn)換時(shí)把預(yù)處理參數(shù)寫進(jìn)OM模型推理時(shí)NPU直接讀取原始圖像數(shù)據(jù)預(yù)處理和推理一條流水線完成。AIPP配置文件大概長這樣aipp_op { aipp_mode: static input_format: RGB888_U8 src_image_size_w: 640 src_image_size_h: 640 crop: false resize: true resize_w: 640 resize_h: 640 padding: false csc_switch: true rbuv_swap_switch: true min_chn: 0.0 max_chn: 255.0 mean_chn: 0.0 0.0 0.0 var_reci_chn: 0.00392156862745098 0.00392156862745098 0.00392156862745098 }其中input_format要按你實(shí)際送入的數(shù)據(jù)格式來寫。比如你用opencv讀圖默認(rèn)是BGR如果不做轉(zhuǎn)換就要寫B(tài)GR888_U8并且配合rbuv_swap_switch做通道交換YOLO訓(xùn)練時(shí)一般用RGB。mean_chn和var_reci_chn對(duì)應(yīng)訓(xùn)練時(shí)的歸一化參數(shù)YOLOv5通常是不減均值、除以255所以mean全0var_reci_chn是1/255。AIPP配置錯(cuò)最典型的癥狀是模型能推理、能出框但框的位置和類別全亂。這種問題不報(bào)錯(cuò)特別難查。我的經(jīng)驗(yàn)是先用最簡(jiǎn)單的方式不帶AIPP在CPU上做預(yù)處理跑通一遍確認(rèn)OM模型本身沒問題再逐步把AIPP加上去出問題就容易定位了。還有一個(gè)細(xì)節(jié)是動(dòng)態(tài)分辨率。YOLO如果想讓輸入尺寸在640、1280之間切換需要在ONNX導(dǎo)出時(shí)把寬高也設(shè)為動(dòng)態(tài)同時(shí)ATC命令里用--dynamic_shape。但動(dòng)態(tài)形狀推理的性能通常不如固定形狀如果項(xiàng)目沒有強(qiáng)烈需求建議固定尺寸省心也更快。3.3 INT8量化性能翻倍背后的精度權(quán)衡若追求極致性能下一步是INT8量化。Atlas 300V的INT8算力標(biāo)稱遠(yuǎn)高于FP16理論推理速度可以快幾倍。昇騰的AMCTAscend Model Compression Toolkit工具支持對(duì)ONNX模型做量化校準(zhǔn)。量化流程大致是準(zhǔn)備一批代表性的校準(zhǔn)圖片幾百張到幾千張不等用AMCT在推理時(shí)統(tǒng)計(jì)各層激活值的分布然后生成量化后的OM模型。實(shí)際操作時(shí)要注意量化對(duì)YOLO小目標(biāo)檢測(cè)的影響比較大尤其是小物體或密集場(chǎng)景量化后可能丟檢。建議校準(zhǔn)圖片要盡量覆蓋實(shí)際業(yè)務(wù)場(chǎng)景中的光照、目標(biāo)大小和類別分布不要隨便拿COCO的圖湊數(shù)。我在自己的數(shù)據(jù)集上做過對(duì)比YOLOv5s FP16模型mAP約0.82INT8量化后約0.79下降了3個(gè)點(diǎn)左右但單路推理延遲從12ms降到了5ms左右?guī)侍嵘黠@。如果業(yè)務(wù)對(duì)精度不敏感比如只做人流量統(tǒng)計(jì)、區(qū)域入侵告警量化收益非??捎^。4. 用AscendCL寫推理代碼ACL接口和YOLO后處理的銜接OM模型就緒后要用AscendCLACL寫推理代碼。Atlas 300V的推理接口和TensorRT完全不同但思路類似初始化、加載模型、準(zhǔn)備輸入輸出、執(zhí)行推理、解析結(jié)果。以下是我的Python版本推理代碼骨架C版本邏輯也是一樣的。4.1 ACL推理核心流程import acl import numpy as np # 初始化 ret acl.init() ret acl.rt.set_device(0) # 加載模型 model_path byolov5s_310p3.om model_id, ret acl.mdl.load_from_file(model_path) # 獲取模型輸入輸出信息 input_desc acl.mdl.create_desc() ret acl.mdl.get_input_desc(input_desc, model_id, 0) input_size acl.mdl.get_desc_size(input_desc) input_dims acl.mdl.get_desc_dims(input_desc) output_desc acl.mdl.create_desc() ret acl.mdl.get_output_desc(output_desc, model_id, 0) output_size acl.mdl.get_desc_size(output_desc) output_dims acl.mdl.get_desc_dims(output_desc)關(guān)鍵點(diǎn)是ACL要求輸入和輸出數(shù)據(jù)必須放在設(shè)備內(nèi)存NPU內(nèi)存里。所以你需要用acl.rt.malloc申請(qǐng)?jiān)O(shè)備內(nèi)存然后用acl.rt.memcpy把CPU上的圖像數(shù)據(jù)拷貝過去。這個(gè)方式和cudaMemcpy非常像但API名字完全不同。# 申請(qǐng)?jiān)O(shè)備內(nèi)存 input_ptr, ret acl.rt.malloc(input_size, ACL_MEM_MALLOC_NORMAL_ONLY) output_ptr, ret acl.rt.malloc(output_size, ACL_MEM_MALLOC_NORMAL_ONLY) # CPU數(shù)據(jù)拷貝到設(shè)備 ret acl.rt.memcpy(input_ptr, input_size, cpu_input_data_ptr, input_size, ACL_MEMCPY_HOST_TO_DEVICE) # 執(zhí)行推理 stream acl.rt.create_stream() ret acl.mdl.execute_async(model_id, [input_ptr], [output_ptr], stream) acl.rt.synchronize_stream(stream) # 把結(jié)果拷回CPU output_data np.zeros(output_size, dtypenp.uint8) ret acl.rt.memcpy(output_data.__array_interface__[data][0], output_size, output_ptr, output_size, ACL_MEMCPY_DEVICE_TO_HOST)acl.mdl.execute_async是異步接口執(zhí)行完必須調(diào)用acl.rt.synchronize_stream同步否則可能讀到未完成的結(jié)果。這一點(diǎn)和CUDA的stream同步如出一轍。4.2 YOLO輸出解析從一維buffer到邊界框YOLOv5s的輸出shape通常是[1, 25200, 85]25200 3個(gè)尺度 × (80×80 40×40 20×20)個(gè)anchor格點(diǎn)85 4個(gè)坐標(biāo) 1個(gè)置信度 80個(gè)類別。從模型拿到的output_data是一維字節(jié)流需要按shape解析output_np np.frombuffer(output_data, dtypenp.float32).reshape(1, 25200, 85)然后照抄YOLOv5的后處理邏輯先過濾置信度低于閾值的框再按類別做非極大值抑制NMS。如果轉(zhuǎn)換ONNX時(shí)把后處理剝掉了這段邏輯就得在CPU上自己實(shí)現(xiàn)。注意如果你在ATC轉(zhuǎn)換時(shí)設(shè)置過輸出節(jié)點(diǎn)為原始輸出可能拿到的數(shù)據(jù)布局不一樣務(wù)必先用一個(gè)已知圖片對(duì)比PyTorch原始輸出確認(rèn)通道順序和數(shù)值范圍。我的做法是先用同一張圖片分別跑PyTorch模型和OM模型直接對(duì)比輸出張量的數(shù)值誤差在1e-3以內(nèi)才說明轉(zhuǎn)換無誤。ACL推理本身不復(fù)雜復(fù)雜的是數(shù)據(jù)布局和內(nèi)存管理。尤其要小心acl.rt.memset之類的接口很容易被忽略多次推理時(shí)如果不清空輸出Buffer上一次的殘留數(shù)據(jù)會(huì)干擾下一次解析。每次執(zhí)行前最好把輸出內(nèi)存清零。4.3 Python和C的性能差異如果只是做算法驗(yàn)證Python版ACL完全夠用。但真正接入生產(chǎn)級(jí)視頻流服務(wù)時(shí)建議用C。原因有二一是Python的ACL接口每次調(diào)用都有Python解釋器開銷在每路視頻都需要循環(huán)預(yù)處理、推理、后處理的高并發(fā)場(chǎng)景下這部分開銷會(huì)被放大二是Python的GIL會(huì)影響多路并發(fā)推理想用好Atlas 300V的多核并行能力C配合多線程是最穩(wěn)妥的選擇。C版的接口邏輯幾乎和Python版一一對(duì)應(yīng)只要先跑通Python版驗(yàn)證模型正確性再翻譯成C并不會(huì)太痛苦。如果團(tuán)隊(duì)實(shí)在沒有C人力也可以用Python寫多進(jìn)程每個(gè)進(jìn)程綁一個(gè)NPU芯片Atlas 300V上多芯片時(shí)通過acl.rt.set_device指定設(shè)備號(hào)也能繞開GIL的限制但內(nèi)存占用會(huì)稍高。5. 性能表現(xiàn)與調(diào)優(yōu)如何把Atlas 300V的算力真正壓榨出來部署和推理跑通只是第一步。我實(shí)際測(cè)試完第一版說實(shí)話有點(diǎn)失望單路YOLOv5s FP16推理端到端延遲接近16ms跟預(yù)期差了一大截。但經(jīng)過幾輪調(diào)優(yōu)最終壓到了6ms以內(nèi)算力利用率有明顯提升。這里分享一下關(guān)鍵的優(yōu)化方向。5.1 性能測(cè)試的基準(zhǔn)數(shù)據(jù)先說測(cè)試環(huán)境避免數(shù)據(jù)失真主機(jī)CPU為Intel Xeon Gold 6330內(nèi)存64GBAtlas 300V 24G插在PCIe 4.0 x16插槽上。測(cè)試模型YOLOv5s 640×640分別測(cè)了FP16和INT8兩種情況。模型精度單幀推理耗時(shí)ms吞吐fps備注FP165.2190純NPU推理時(shí)間FP16 CPU預(yù)處理12.878包含圖像預(yù)處理和后處理FP16 AIPP7.5130預(yù)處理已下沉NPUINT8 AIPP4.5220多batch進(jìn)一步提升注意上面的數(shù)據(jù)是“純NPU推理耗時(shí)”和“端到端耗時(shí)”的對(duì)比。很多人只看NPU推理時(shí)間覺得很快但實(shí)際接入視頻流后CPU處理瓶頸會(huì)立刻暴露特別是圖像resize、顏色空間轉(zhuǎn)換、NMS后處理這些都要花錢。5.2 調(diào)優(yōu)優(yōu)先級(jí)排序第一優(yōu)先級(jí)把AIPP用起來。這是最立竿見影的優(yōu)化能省掉CPU做resize、歸一化、通道轉(zhuǎn)換的時(shí)間。做完這一步端到端延遲基本能減半。第二優(yōu)先級(jí)多batch推理。如果業(yè)務(wù)能接受把多路視頻幀拼成一個(gè)batch處理Atlas 300V的利用率會(huì)大幅提升。比如4路視頻每路取一幀拼成[4, 3, 640, 640]輸入推理總耗時(shí)可能只比單幀多30%~50%平均每路成本就低很多。# 轉(zhuǎn)OM時(shí)指定動(dòng)態(tài)batch atc --modelyolov5s.onnx \ --framework5 \ --outputyolov5s_dynamic \ --soc_versionAscend310P3 \ --input_shapeimages:-1,3,640,640 \ --dynamic_batch_size1,2,4,8推理時(shí)按實(shí)際拼好的batch數(shù)加載對(duì)應(yīng)shape執(zhí)行。第三優(yōu)先級(jí)多線程并發(fā)。Atlas 300V內(nèi)部有多個(gè)AI Core單條推理線程并不一定能占滿所有核心。C下可以用多個(gè)線程同時(shí)調(diào)用acl.mdl.execute_async讓不同線程處理不同路的視頻流或者拆分到不同的芯片上提高整體吞吐。這里有個(gè)實(shí)測(cè)經(jīng)驗(yàn)線程數(shù)不是越多越好。當(dāng)并發(fā)線程超過芯片AI Core數(shù)量后再往上加線程反而會(huì)增加調(diào)度開銷吞吐可能不升反降。建議從1個(gè)線程起步逐步增加到2、4、8找到吞吐拐點(diǎn)。第四優(yōu)先級(jí)減少內(nèi)存拷貝。把每路視頻流的輸入Buffer常駐在設(shè)備端避免每次推理都申請(qǐng)和釋放內(nèi)存。用AscendCL的acl.rt.malloc申請(qǐng)一次循環(huán)復(fù)用。同理輸出Buffer也可以復(fù)用只更新后處理要用的部分。5.3 一個(gè)容易忽略的坑CPU后處理成為瓶頸當(dāng)推理速度足夠快之后后處理的耗時(shí)占比會(huì)變得非常明顯。YOLO的NMS在純Python里跑一幀可能就要花一到兩毫秒如果平臺(tái)上再疊加幾個(gè)模型并行跑后處理線程很容易吃滿CPU。建議把NMS邏輯用Cython或C重新實(shí)現(xiàn)或者直接用昇騰環(huán)境里集成好的后處理算子如NonMaxSuppression在NPU上完成減少CPU壓力。另外實(shí)際做視頻流分析時(shí)視頻解碼也要考慮。如果同時(shí)解16路1080p視頻CPU軟解基本撐不住建議用硬解碼卡分擔(dān)或者直接選帶視頻解碼能力的昇騰硬件平臺(tái)把解碼、預(yù)處理、推理、后處理整條鏈路全部放到NPU側(cè)。6. 常見報(bào)錯(cuò)與排障手冊(cè)我踩過的那些坑希望你別再踩最后這部分把我在部署過程中真正踩過且印象深刻的報(bào)錯(cuò)和排查過程列出來按“現(xiàn)象 → 排查鏈路 → 解決方案”的方式寫。這些錯(cuò)誤不一定每個(gè)項(xiàng)目都會(huì)遇到但遇到了很耽誤時(shí)間希望能幫你少走彎路。6.1 推理時(shí)報(bào)錯(cuò)199或506009環(huán)境不一致有一次跑推理剛開始一切正常跑了幾分鐘后突然報(bào)錯(cuò)錯(cuò)誤碼是199或者506009沒有任何詳細(xì)堆棧。這種錯(cuò)誤俗稱“環(huán)境不一致”驅(qū)動(dòng)、固件、CANN三方版本不配套或者當(dāng)前用戶權(quán)限制約了NPU設(shè)備訪問。我的排查鏈路先用npu-smi info看設(shè)備是否正常、驅(qū)動(dòng)是否掛了再執(zhí)行l(wèi)s /dev/davinci*確認(rèn)設(shè)備文件存在然后跑CANN自帶的ascend-dmi工具做一次自檢。最終發(fā)現(xiàn)是我升級(jí)了宿主機(jī)內(nèi)核驅(qū)動(dòng)沒有重新編譯內(nèi)核模塊和當(dāng)前內(nèi)核版本不匹配導(dǎo)致NPU狀態(tài)異常。重裝驅(qū)動(dòng)并重啟后問題解決。6.2 ATC轉(zhuǎn)換報(bào)錯(cuò)E19999算子不支持或參數(shù)不對(duì)用ONNX轉(zhuǎn)OM時(shí)ATC偶爾會(huì)報(bào)E19999內(nèi)部錯(cuò)誤。第一次遇到這類錯(cuò)誤我被一大段堆棧繞暈了后來發(fā)現(xiàn)日志里隱藏著關(guān)鍵信息比如“Unsupported op”或“The shape is invalid”。此時(shí)分別排查一是ONNX導(dǎo)出時(shí)opset是否過高可以重新導(dǎo)出opset11二是模型里有沒有自定義算子比如某些版本YOLO的Focus層換成普通卷積替代后再導(dǎo)出三是--soc_version是否正確Atlas 300V必須寫Ascend310P系列寫錯(cuò)會(huì)直接報(bào)錯(cuò)。排障時(shí)務(wù)必加上--logdebug讓ATC把詳細(xì)的轉(zhuǎn)換日志輸出到文件里。不詳細(xì)的日志真沒法定位debug輸出雖然量大但能精確到是哪個(gè)算子、哪個(gè)節(jié)點(diǎn)出的問題用grep過濾ERROR關(guān)鍵字就能快速鎖定。6.3 推理結(jié)果框錯(cuò)位AIPP通道順序搞反第一次把AIPP打開后模型不報(bào)錯(cuò)但檢測(cè)框大量錯(cuò)位檢測(cè)出的目標(biāo)類別也混亂像是把顏色通道張冠李戴。我排查了這個(gè)報(bào)錯(cuò)的根因YOLOv5訓(xùn)練用的是RGB輸入但opencv默認(rèn)讀進(jìn)來是BGRAIPP配置時(shí)沒有做通道互換模型看到的相當(dāng)于每個(gè)通道的顏色和訓(xùn)練時(shí)不一致語義也就變了。解決方式在AIPP配置文件中設(shè)置rbuv_swap_switch: true把BGR變成RGB或者把input_format寫成RGB888_U8并在拷貝數(shù)據(jù)前先把圖像在CPU上轉(zhuǎn)為RGB。前者省了一次顏色轉(zhuǎn)換推薦前者。這類“能跑但結(jié)果不對(duì)”的問題最難查因?yàn)橄到y(tǒng)不會(huì)報(bào)錯(cuò)所有API都正常返回。我的教訓(xùn)是做任何預(yù)處理相關(guān)配置后務(wù)必用已知結(jié)果的測(cè)試圖做自動(dòng)化回歸別只靠肉眼掃幾幀。6.4 多線程推理時(shí)偶發(fā)崩潰stream和context管理多線程并發(fā)推理時(shí)偶爾會(huì)出現(xiàn)段錯(cuò)誤、卡死而且復(fù)現(xiàn)概率不穩(wěn)定。排查下來發(fā)現(xiàn)多個(gè)線程都調(diào)用了acl.rt.create_stream()但沒有顯式切換context導(dǎo)致stream上下文混亂操作了未初始化的內(nèi)存。解決方案每個(gè)線程內(nèi)部都要先acl.rt.set_context(ACL_CONTEXT_DEVICE)顯式指定設(shè)備上下文然后確保每個(gè)線程的stream獨(dú)立創(chuàng)建、獨(dú)立同步、獨(dú)立銷毀。以下是在C多線程環(huán)境下的最小結(jié)構(gòu)// 每個(gè)線程內(nèi) aclrtContext context; aclrtSetDevice(0); aclrtCreateContext(context, 0); aclrtSetCurrentContext(context); aclrtStream stream; aclrtCreateStream(stream); // 推理 aclrtMalloc(...); aclrtMemcpyAsync(...); aclrtLaunch(...); // 具體接口依CANN版本而定 aclrtSynchronizeStream(stream); // 釋放 aclrtDestroyStream(stream); aclrtDestroyContext(context);用Python時(shí)也有類似問題但由于Python線程受GIL限制踩的坑比C少一些??傊瓵CL對(duì)線程上下文的管理要求很嚴(yán)每個(gè)線程都要“自己的設(shè)備、自己的context、自己的stream”不能圖省事共用。6.5 顯存越用越少最終申請(qǐng)不到內(nèi)存長時(shí)間運(yùn)行后推理突然報(bào)錯(cuò)說設(shè)備內(nèi)存不足。用npu-smi info一看NPU內(nèi)存占用率接近100%。這通常不是真正泄漏而是推理循環(huán)里的設(shè)備內(nèi)存申請(qǐng)后沒有釋放。反查發(fā)現(xiàn)我在編寫代碼時(shí)為了圖方便每幀推理都調(diào)用了acl.rt.malloc申請(qǐng)輸入輸出Buffer卻沒有在循環(huán)結(jié)束后釋放。解法非常簡(jiǎn)單循環(huán)外一次性申請(qǐng)好所有Buffer循環(huán)內(nèi)只拷數(shù)據(jù)、推理、讀結(jié)果全部結(jié)束后統(tǒng)一釋放。能極大降低內(nèi)存碎片和分配開銷。如果你確實(shí)需要?jiǎng)討B(tài)申請(qǐng)和釋放建議用acl.rt.malloc搭配acl.rt.memset清零而不是每次再去調(diào)用acl.rt.free。7. 最后再聊兩句項(xiàng)目落地體會(huì)算下來整個(gè)部署過程環(huán)境搭建和模型轉(zhuǎn)換占的時(shí)間比實(shí)際寫推理代碼多得多。Atlas這套工具鏈不像CUDA那樣有海量資料和社區(qū)回答很多問題只能靠官方文檔和自己試驗(yàn)來解。但一旦把OM模型和推理服務(wù)跑順?biāo)谶吘壎送评韴?chǎng)景的性價(jià)比確實(shí)很突出尤其是視頻分析和多路并發(fā)場(chǎng)景下穩(wěn)定性比預(yù)期要好。如果你也是第一次在Atlas 300V上跑YOLO我建議路徑這樣走先別一上來就追求INT8量化先用FP16完整跑通一版確認(rèn)全鏈路正確再去逐步優(yōu)化。每一次只做一項(xiàng)改動(dòng)改了就用同一批測(cè)試圖回歸直到確認(rèn)無誤再動(dòng)下一項(xiàng)。所有出過的報(bào)錯(cuò)、改過的命令最好都留著記錄——Atlas這類封閉生態(tài)里你親手積累的排障經(jīng)驗(yàn)就是最值錢的生產(chǎn)力。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
粉嫩av久久一区二区三区| 超碰97男女| 中文字幕后石码三区四区| 人妻中文字幕精品无码| 亚洲激情 欧美色图| 尤物av网站| 性交一区二区在线播放| 人人贴人人摸| 欧美AB在线观看| av东京热男人的天堂| 欧差乱伦二三| 深爱五月婷婷| 99999久久精| 少妇啪啪自拍| 天堂资源站| 亚洲啪啪综合?v一区综合精品区| 日本一级性爱| 日本免费一区二区不卡| 中日韩欧美精品无码AⅤ一区二区| 国产精品制服丝袜中文字幕日韩一区二区三区 | 人妻黑丝袜电影| 亚洲精品97久久| 久久美女福利是上海美女| 九九九九九九视频| 亚洲乱伦图片视频| av久日| 亚洲影院365| 婷婷五月天激情小说| 狠狠干2020| 欧美日韩操操操| 97超级欧美| 一级二级三级黑人无码| 亚洲色入欧美| 夜嗨影院| 久久久无码精品人妻二区| 久久亚洲精品成人av| 97干天天| 爱媛媛久久国产福利| 中文字幕精品专区搜索结果91| 欧美区亚洲区偷拍区| 熟女一区二区| 美女极品一区二区三区| 97欧美色综合| 操91| 欧美亚洲图片| 久久中日麻豆| 99爱爱| 99久在线精品99re8| 日韩av在线免费网站| 四虎在线免费视频| 国产亚洲国产超碰| 亚洲无992tv| 日韩丝袜人妻AV| 永久免费观看的毛片的网站| 老司机久久| 99re免费视频精品全部| 五十路人妻在线| 无码日韩网站| 久久午夜鲁丝片| 亚洲欧美日产国产91毛片| 国产精品视频一区二区三区八戒| 亚洲图片91| 久久精品免费| 亚洲αv一区二区三区| 欧美性爱五月天| 欧美情色亚洲| 国产狂喷潮在线精品| 91国产大片| 欧美性爱另类综合| 麻豆国产尤物AV| 青青草伊人久久| 成人九九| 人人摸人人摸人人干| 人妻久久久| 国产欧洲精品亚洲午夜拍精品| 99热一区二区三区四区| 少妇一区二区三区高速| 国产天天骚| 26uuu国产成人综合| 亚洲综合婷婷| 自拍第一页| 欧美特大AA级黄片| 大香蕉乱级| JULIA一区二区三区在线播放| 综合色图亚洲欧美| 久久人妻无码毛片A片麻豆| 91 丝袜在线播放| 久久曰曰| 国产精品美女视频诱惑| 99re6国产精品99re在线| 福利五区| 色色无码| 婷婷婷婷婷婷久久久久| 色蜜AV| 高清孕妇孕交 交孕妇| 国产精品ⅴ无码大片在线看.| 国产又粗又又黄又猛| 麻豆a'v电影| 欧美天天干| 狠狠狠狠狠狠| 亚洲丝袜综合| 久久欧洲| 亚洲色欲天天天堂色欲网女| 另类视频在线| 精品人妻美妇91job| 久久久久久亚洲中文| 精品蜜乳AV免费观看| 亚洲av影音先锋| 台湾大香蕉99热| 熟女视频久久| 性色av网站| 一二三区操逼国产91| 久久精品国产免费观看99| 亚洲国产麻豆一区二区三区| 欧美亚洲综合色| 婷婷五月激情综合| julia在线观看久久| 久久精品国产亚洲AV高级北京| 亚洲va有码在线天堂| 日韩另类| 口爆欧美91| 美女爽爽爽刺痛洞洞| 深夜视频| 日本一本道A级黄色毛片试看60分钟| 国产精品探花视频| 欧美夜色| 亚州熟女乱伦| 禁片 高清 在线观看视频网站| 熟妇最新先锋一二三区| 91国产丝袜白虎| 欧美裸体美女日麻屄| 精品国模无码| 加勒比久久av| 日韩精品区二区三区不卡| 日本高清视频在线观看黄已三辽| 午夜一区| 国产黄色影片在线观看| 欧美页片| 男人天堂黄片| 国产色产精品在线观看| 天天摸天天碰天天添青青| 国产 亚洲 一二三四| 另类av综合久久| 久精品无码av一区二免费国产在线观看| 欧美一级二级三级| 九九热这里只有在线精品视 伊人草 成人菠萝蜜视频在线观看 | 国产少妇肉丝在线观看| 先锋女优在线观看视频| 欧美综合色站| 在线观看av区| 欧美巨大性舒爽顶到了| 玖玖爱伊人玖玖爱| 久久久九97| 亚洲春色欧美激情自拍| 欧美中日韩XXXX| 国产又黄又猛又粗又爽的网站| 中文字幕丰满子伦无码专区在线视频最新 | 波多野结衣被操50分钟免费视频| 久久久久极品| 最新加勒比丝袜在线| 又黄又爽在线观看视频| 国产AAAAAABBBBB| 欧美色图在线视频少妇| 日韩人妻少妇中文字幕| 久久无码电影| 91肉丝| 欧美97视频| 成人三级片无码| 91 丝袜在线观看| 国产性感骚丝袜在线| 国产成人无码高清| 91在线页| 日日躁夜夜躁狠狠躁超爽| 校园春色 男人天堂| 成人av影院在线观看| 日韩三级天堂在线观看| 天久久久噜噜噜久久国产精品爽爽| 久久久不能久久久久| 特级毛片特黄久久免费看| 日日躁夜夜躁狠狠躁超爽| 另类图片五月天| 亚洲国产一区二区三区四区国产| 亚洲精品aa久久伊人| 国产18精品亚洲精品| 91人妻做a观看视频| 亚洲国产奇米影视久久| 色综合久| 亚欧美天堂在线| 韩日巨乳美女免费视频在线观看| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | a网站免费观看| 日本欧美亚洲高清在线看| 岛国在线免费视频| 亚洲欧美在线观看免费| 操逼国产免费| 日本123区操B视频| 亚洲欧洲美腿丝袜| 亚洲天堂区| 色色热| 九七人妻在线| 色香欲影| 盗摄女人妻在线| 国产欧美一区激情交| 五月丁香综合| 夜夜操中文字幕| 欧美综合网A| 影音先锋日本一区二区| 欧美亚洲国内自拍| 久久久内射良家| 自拍内地三级在线观看| 夜嗨影院| 夜夜操夜夜高潮夜夜爽国产精品区| 精品在线蜜臀| 91青视频| 明星性猛交ⅹxxx乱大交| 免费操逼视频下载| 国产97综合| 亚一综合久久久久久久久久| 日本好吊色视频| 成人免费看吃奶视频网站| 天天肏美女| 激情欧美97| 中国亚洲呦女专区| 美女丝袜激情小说| 亚洲成?V人片在线观看福利| 91影视亚洲| 久久精品人人做人人看| 亚洲影院小综合| 一区二区影视| 少妇免费视频| 久久双插| 亚洲天天影视综合网| 国产高清成人免费视频| 91女人的网站| 91丨九色丨国产丨人妻在线| 少妇同性| 日韩中文字幕人妻视频| 少妇久久久免费| 少妇高潮对白在线观看| 97精品全部| 天美国产三级传媒| 精品国产乱码| 色97国产69香蕉| 8050午夜少妇无码| 欧美日韩另类激情图片| 97干在线| 无码精品久久久久久亚洲| 色色色色色色色色色色色色色色综合| 日本加勒比无码专区| 综合网亚| www…国产操逼| 一级性爱视频免费观看 | 蜜臀少妇一区二区| 国产日韩欧美中文在线播放| 毛片久久| 任你艹| 少妇综合网| 97超碰亚洲| 亚洲高清无码免费观看视频| 韩国黄片aaaa| 亚洲精品性爱片| 黄片视频观看| 亚洲?V高清一区二区三区尤物| 久噜噜| 六月婷婷综合| 综合激情五月天| 8x福利精品第一福利视频导航| 9997se| 日日夜夜骚| 国产伦乱91| www.亚洲成人一区| 2024年最新色情网站在线观看| 国产精品久久久久久夜夜夜夜| 久久久激情| AV和黑人在线播放| 啪啪视频免费在线观看| 色综91| 97 国产精品| 91制服丝袜| 亚洲有薄码区久久在线一区| 欧美男人的天堂| 九九热精品视频六| 日韩无码一区二区三区| 国产强奸无码乱伦| 精品少妇人妻av久久免费| 国产av激情无码久久天堂| 78久久| 2019天天干| 老熟女91视频| jazzjazz国产精品麻豆| 自拍偷拍草一草| 国产精品一区av在线| 一级片视频啪啪| 国产91乱伦| 逼操网站| 开心五月天激情网| 欧美白嫩女HD| 久久久女人| 日韩欧美中文字幕搭讪巨乳美人妻视频| 少妇色综合| 国产和美国毛片| 欧美综合亚洲| 肉动漫无遮挡h在线观看| 91在线美女| 第四色色综合91| 熟女欧美日韩综合婷婷| 欧美在线第五页| 神马麻豆福利院| 综合亚洲欧美| 成人97人人超碰人人| 欧美一二三级精品在线| 人人操人人摸人| 99精品热| 999熟女精品| 亚洲影院成人| 国模限制级电影| 99超碰网| 日本视频在线观看污污污| 亚洲国产综合久久久性感熟妇| 色香欲天天天天综合色| 噜噜噜久久亚洲精品色情| 997色在线| 国产毛片毛片4p懂色| 国产成人精品日本亚洲语言 | 欧洲精品在线播放| 亚洲国产精品久久AV| 久久亚洲精品成人av| 欧美情色男人的天堂| 南澳成人一级片在线播放| av一区二区三区不卡| 91久久久久久| 久久区| 日日干日日| 春色91| 99热免费| 精品国产Av无码久久久伦古装| 美女黄频a美女大全免费皮| 91视频精品| 99国产人成精品| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 欧美不卡在线美女| 在线观看一级α片刺激高潮视频| 九九九九免费高| 中国探花熟女| 国产无码久久高清| 日本黄色天堂| 99热这里只有精| 日韩操逼性鲍| 9久9久| 激情小说五月天| 又粗又长又大国产不卡| 日韩乱伦影音先锋| 国产超碰97| 一区二区你上我| 精品九九九九九| 日韩美女高潮喷水视频| 国产97色在线| 国产高清精品一区二区三区毛片 | 九九九九热只有精品| 综合 亚洲 欧美| 色婷婷影视| 亚州精品人妻一二三区| 99在线观看| 亚洲国产精品99久久久| 亚洲精品一二牛牛| 久久久久久久久久久久97| 天天看天天日天天操| 97超碰总站| 夜夜嗨av午夜成人| 蜜桃在线观看一区二区三区| 欧美制服另类丝袜| 国产精品2020| 欧美少妇高潮久久91| 久操操| 超碰在线人妻不卡| 99re不伦| 久久欧洲| 加勒比伊人综合| 91老熟女91老女人| 91热色| 啊灬啊灬啊灬啊灬高潮奶出了免费视 | 天天综合日韩网| 蜜臀中文无码午夜| 天天影视网色欲色香| 亚洲精品欧美专业| 欧美日韩大陆黑人少妇99| 暖暖精品二区三区观看| 亚洲欧美国产中文字幕| 丰满人妻一区| 国语精品对白| 精品欧美老熟女一二区| 久久精品国产AV一区二区三区| 欧美少妇高潮| 九月丁香综合网| 亚洲日韩电影| 草草草草视频| 人人么人人操| 成人av毛片在线观看| 精品一区二区综合熟妇| 色色色色色色色色色色色色色色综合 | 美日韩一二三区| 乱伦熟妇一区二区| 久久丁香久草综合网| 国产一区二区三区免费视频在性观看| 亚洲欧洲av影音| 日韩三级在线观看网站| 日韩一级欧美一级在线观看| 五月色综合| 97亚洲精品| 午夜福利无毒不卡| 亚洲成人综合在线| 91人妻人人妻| 超碰69| 97视频免费| 放黄片放3级黄片没穿衣服| 欧美日本中字另类在线| 中文字幕视频2区| 亚洲色图欧美色图综合| 色五天伊人| 啊啊啊97视频| 国产青视频| 99国产精品| 97婷婷色| 91大香蕉伊人| 激情综合二| 色狠人在线99| 国产一级舔足在线观看| 久久久久久亚洲精品中文字幕人妻| 亚洲凸凹超碰成人| 日韩美女操b| 欧美夜夜骑视频| 男人的天堂网页| 夜夜草网站| 99热8| 午夜乱轮操逼视频免费看| 920日本午夜免费| 亚欧操逼片在线观看 | 精品无码人妻一区二区免费蜜桃| A 天堂| 天天影视网综合少妇| 精品丰满熟妇人妻一区| 精品性爱一二三区| 欧美综合 站| 国产在线观看一区二区三区| 九九色综合| 久9九综合在线| 七久久久| 国产精品露脸在线观看| 97国产精选| 久久久久国产一区二| 夜夜嗨一区| 日韩乱码av| 亚洲自拍天堂| 久热热| 亚洲色图欧美色图制服诱惑| 欧美草草高清日韩视频| 精品性爱一区二区| 成人三级片一区二区三区视频| www.zbzhongsen.com| 99少妇内射| 日本狠狠干| 国产在线观看一区二区三区| 欧洲亚洲人妻无码中字久久三区四区 | 成人情色一区二区| 中文字幕亚洲热播人妻| 清纯唯美第一页| 久久久专区| 激情五月婷婷| 日韩 欧美 视频 在线 一区| 啊啊啊啊啊啊在线观看| 人人操,人人插| 97超碰超| 成人五月天色网| 久久男女激情视频网站| 青草草免费网站av| 亚洲婷婷综合网| 黄久久| 91网站视频在线观看| 99热免费| 一区二区首页| 97视频在线免费看| 九九激情网| 久久九九视频九九视频| 大香蕉www.超碰| 中文字幕人成乱码熟女香港| 操人人| 韩国一级AAA| 日韩欧美成人性爱在线| ..日韩av毛片精品久久久| 亚洲AV成人无码一二三久久| 美女操逼A A| 偷拍精品一区二区三区| 免费观看有码高清视频| 精品性爱无码在线播放| 婷婷久久五月| 精品久久青青草| www久久久| 色爱三区| 亚洲美乱| 亚爽爽爽爽爽爽爽爽| 久草毛片电影怡| AV高清一区| 很很很很操| 97久久久久| 爱逼综合| 久久男人精品| 中文字幕一区二区三区视频播放| 欧美色图天堂在线| 天天舔九色婷婷| 亚洲欧美日韩国产丝袜自拍中文| 日韩精品人妻中文字幕不卡乱码| 国产精品噜噜噜日日日| 久久综合国产精品国产| 中文有码9| 国产精品永久免费10000| 手机在线播放国产福利| 夜夜爽爽爽| 欧美日韩亚洲五月天婷婷| 97伊人超碰| 手机午夜电影神马久久| 岛国在线一区二区三区| 亚洲城人男人的天堂| 91在线国产后入风骚翘臀美女素人| 91高潮| 亚洲AV操| 色臀aV| 97日韩欧美| 91成人久久| 亚洲AV乱码专区国产噜噜亚洲| 大香蕉伊人色偷偷在线| 欧美激情内射| 日韩激情无码影院| 国产欧美日韩精品中文| 啊a一区在线| 99色网| 人人操av| 亚洲加勒比| 亚欧精品久久久久久久久久久| 九9精品| 嗯嗯啊好爽| 欧美性爱中文字幕无线码| 五月婷婷综合网| 亚洲日本大香蕉1| 亚洲精品性爱片| 大香蕉碰碰| 另类欧美综合| 天天影视网综合少妇| 人人爽夜夜玩视频| 国产乱伦性爱AV| 五月丁香六月激情综合| 日本精品一区二区三| 欧美极品美女aaaaaa级黄片| 亚洲天堂男人在线| 99热这里只有精品18| 久/久精品99看9| 国产精品乱码久久久久久久久| 国产一区二区三区导航| 国产精品毛片| 99视频内射三四| 美女网站91| 久久97| 日韩综合97P| 日本操逼视频导航| 夜夜黄| 懂色AV一区二区三区| 久久二| 亚洲国产精品久久久久婷婷青年| www久久国产精品| 校园春色亚洲欧洲| 乱伦一区二区三区‘| 欧美综合777| 久久香蕉影院| 亚洲日韩人妻中文字幕一区| 超碰在线人妻不卡| 搡老熟女老女人老熟妇免费视频| 欧美 亚洲| 人妻精品综合中文字幕在线| 亚洲自拍天堂| 国产999精品久久久| 中文字幕视频2区| 2021久久国产综合精品青草| 亚洲小说视频| 中文字幕AV片| 色婷婷丁香五月| 欧美黄色大片在线观看| av线电影| 午夜欧美J进J出白浆流出久久久| 郑州宾馆老熟女露脸啪啪| 黄色工厂这里只有精品| 99操| 操逼逼无码| 天天天干977| 热久日综合| 久久久工口| 99久久综合网| 色久桃花影院在线观看| 亚洲日韩精品一区二区| 久久线上视频免费看| 久久禁| 亚洲中文字幕av| 少妇人妻无码| 91性高| 欧美亚男人的天堂| 婷婷丁香一区二区三区| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | …中文字幕亚洲乱,97人妻无码费视…| 综合色图,成人综合网| 日本黄 R色 成 人网站| 亚洲天堂99| 97精品熟女少妇一区| 一区二区三区亚洲| 91影库| 377p欧洲日本亚洲大胆| 秋霞久久亚洲精品成人| 精品毛片久久久精品毛片| 高清国产av无码| 久久精品99| 中日无幕一二三四区| 国产精品91ai| 欧美特黄视频网站| 先锋女优在线观看视频| 日本熟妇浓毛hdsex| 亚洲欧洲无码bt精品合集| 中文字幕人妻资源在线| 一线黄色免费性爱片| 黄总AV色图| 欧美性爱97超碰| 久久亚洲AV成人精品无码| 久久少妇人妻| 91N综合网| 澳门黄片一香蕉视频| 精品一区二区成人| 欧美亚洲日韩人妻在线观看| 97国产色图| 男人的天堂视频精品乱在线| 美女天天干| 激情久久av一区av二区av| 日本一区三级韩国| 麻豆区久久久久亚| 色臀AV| 久综合国内精品自在自线| 亚欧国产无码精品在线| 97AV爱| 国产女人高潮嗷嗷嗷叫小说| 91中文在线| 亚洲中文电影| 国产美女在线精品免费看| 国产 无码 一区二区| 久久天天摸| 亚洲素人综合| 手机在线A片| 欧美中文字幕男人天堂久久精品| 久久精品电影| 三级精品三级在线观看| 大香蕉碰碰| 日本性一区| 国产操操日韩三级黄| 色哟哟-国产专区| 大香蕉视频啪啪啪啪| 国产高清成人mv在线观看| 色婷婷激情| 9999亚洲精品| 人人操人人操人人操人人操人人操人人人11.CM| 高跟丝袜AV专区国产| 欧美成人一区二区| 亚洲精品日日夜夜52| 超碰在线1234区| 久久综合99| 思思热国产高清| 久操精品网| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 火箭成精品视频884必出精品| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 夜夜爽77777| 岛国激情视频在线观看| 97这里只有精品| 亚洲?V高清一区二区三区尤物| 天天影视网综合少妇| 黑人免费福利视频| 国产天天看| 中文字幕 国产 精品| 久久久91| 日韩美女高潮喷水视频| 国产精品亚洲美女久久久久| 色呦呦国产精品免费看| 国产精品久久久久久久久久久久久久久久| 国产av美女被艹的乱叫| 黑人娇小av在线播放| 99久久这里只有精品| 制度丝袜99| 97在线免费看视频| 骚货 中文字幕 av| 少妇一区二区三区在线观看| 五月丁香久久| 国产浮力影院第1页| 天天草天天日| 欧美精品黑人猛交高潮| 亚拍在线| 熟妇亚洲一区二区三区| 九九热精品| 国产精品一区二区黄片| 黄片aaaaa一区| AAAA欧美日韩| 国产后入| 欧美一区二区三区不卡高清视频| 天天肏夜夜肏| 久久婷婷一区| 999久久久久久久久| 熟女一区二区三区四区| 欧美一区二区三区成人性生活| 青久操| 国产午夜视频| 亚洲情色一区二区三区| 嗯嗯嗯啊啊啊干死我吧| 97精品97| 青青草狠狠撸| 成年人三级黄色片视频| 国产超碰AV在线精品| 欧州91高潮| 91丝袜| 91丨人妻丨国产丨丝袜| 无码9区| 亚洲美女精品九九视频| 日日黄色三级网站| 日韩女模中文造逼| 国产最新小视频在线播放下载 | 无人区高清电影免费观看一区二区三 www.qmcai2.com | 久久日本熟女精品一区| 人妻夜夜爽天天爽麻豆三区网站 | 亚洲古典另类欧美在线| 亚洲午夜未满十八勿入网站日本又色又爽又黄 | 国产最火爆久久国产网站网站 | 久久久久久人妻| 小视频玖玖| 熟妇操花| 国产精品一区av在线| 永久电影三级在线观看| 少妇熟女一区二区三区| 精品久久久久久中文字幕视频免费| 亚洲国产综合图区中文字幕| 操国产逼| 欧美性爱免费短视频| 中文字幕亚韩| 亚洲精品99| 91 国产丝袜在线放观看| 伊人伊人LD| 99re综合伊人| 欧洲亚洲人妻无码高清久久三区四区| 福利视频网站| 26uuu国产亚洲综合| 大香蕉免费乱伦视频| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 中文字幕三四区| 八戒午夜福利理论片| 少妇滛荡视频| 亚洲色9| 9久综合网| 色女99一级片在线观看| 精品乱码在线观看| 飘花国产午夜精品不卡| 美女啊啊啊啊啊啊啊| 大白逼三四级| 99re28在线观看| 日韩精品在线视频,日韩精品……| 2020中文在线一区二区三区| 调教熟妇 久久久久久| 1区2区3区中文字幕日韩| 日韩人人精品| 日韩免费在线观看不卡| 熟妇熟女视频一区二区三区| 欧美丝袜中文字幕07在线| 亚洲国产欧美一区二区潘金莲 | 啊啊啊啊啊,啊啊啊啊好舒服,操我舒服啊啊啊| 超碰色美女| 中文字幕在线高清男人的天堂| 97国产色图| 欧美成人性爱视频在线播放| 5252色欧美在线| 国产91会所女技师在线观看| 神马久久网| 人妻中文字幕精品无码| 亚洲性猛| 精品久久久久久中文| 一区二区精品更新提醒| 视频国产成人精品日本亚洲18| 天天日夜干| www…国产操逼| 久久激情视频| 这里只有精品视频| 欧美影院一区二区三区| 综合网亚| 网站A V在线| 欧美三级一级| 久热影视| 九久久精品| 999国产精品999| 久久久久久久9最新免费视频观看| 亚洲色图亚洲无码强奸乱伦| 99re在线视频国产| 992这里有精品| 性爱乱伦视频免费| 国语精品av| 色五月第四色| 婷婷五月天色色| 操b在线观看| 色情婷婷久久五月天| 久久国产视频性吧 | 国产综合久久久麻桃个| 性爱AV天堂| 吻戏激情性巴克| 性爱边摸边日免费AV| 亚洲色图欧美色18直播在线| 欧美日韩淫加| 有码专区最新中文字幕有码| 久久999久| 欧美日韩夜夜| 日韩性爱小视频在线观看| 日韩精品在线放| 蜜臀久久久99久久久久| 日产成人久久| 啊灬快c我灬啊灬用力灬啊灬-国产精品性做久久久久久-成人AV | 人人摸人人入| 无毛精品| 国产精品天美传媒| 大香蕉啪啪网| AAAA级日本片免费视频| 97碰久久| 美女上床网站| 夜夜青青无码影院| 伊人国产av| 国产日本熟女顶级一区二区三区视频| 国产av美女被艹的乱叫| 国产操偷| 欧美亚洲自拍另类人妻| 日韩懂色网| 夜夜中出国产| 超碰97男人| julia中文字幕在线观看| 亚洲免费97免费| 情色av电影| 欧美 青青草| 自拍欧美| 伊人一区二区三区| 亚洲 欧美综合| 东北丰满熟女国产一区| 日本孕妇孕交| 福利社区午夜一区二区| 欧美黄色图片| 强免费黄色网址| 一本久道久久综合狠狠爱一密臀精| 蜜桃精品一区二区三区ww| 在线岛| 亚洲情色在线| 国产精品免费美女视频| 午夜福利 成人 91| 免費人妻夜夜爽天天爽爽一区| 天天综合网日韩7799| 变态综合色| 日韩操呦呦影院在线观看| 国产伦精品一区二区三区在线观| 大二网站亚洲| 欧美日韩人妻精品一区二区三区 | 亚洲国产尤物yw在线观看| 一区二区三区四区在线不卡| 婷婷综合五月| 无码av永久免费专区网站| 精品一区二区三区麻豆| 欧美日韩97在线| 精品v1区| 日韩中文字幕视频在线观看| 国产精品片| 99热 按摩 日韩| 日韩99神马视频播放片在线播放| 熟女色综合久久| 成人自拍三级在线观看| 狠狠爱大香蕉| 中 文字幕一区二区三四 五 区日 日 骚 | 亚洲视频二区| 综合网欧美在线| 熟女人妇一区二区三区| 午夜激情成人在线观看| 少妇久久久| 大香蕉综合在线| 欧亚第一综合网| 中文字幕一区av| 人妻中文在线| 欧美在线中M| 啊啊啊啊啊啊啊好爽不要| 蜜桃臀av在线观看| 激情综合色| 久久精品中文字幕无码l| 欧美日韩国产成人高清| 国产91 丝袜在线播放00-百度| 日本高清一本二本免费不卡| 免费看国产大AB| 日韩精品99久久久久久中文字幕| 亚洲丝袜色图| 亚洲最大91网| 五月丁香六月激情综合| 狠狠操夜夜操蜜桃视频三区| 日韩在线观看中文字幕视频| 亚洲经典啪啪| 五月丁香社区婷婷日韩欧美精品影院| 最新中文字幕精品在线| 丁香五月电影| 干我久操| 日本操逼视频免费| 精品国产乱码久久久影院| 欧美日韩一干二干| 成人五月天色网| 91中文精品日韩欧美在线| 日韩懂色网| 日日橹狠狠爱欧美超碰| 日韩精品电影| 久久精品视频一区三区小泽玛利亚| 91久久久久久久| 精品妇操一区二区三区| 中文字幕第23区| 98福利在线视频| 99热18这里只有精品| 青青草AV色| 大香蕉中文网| 欧美综合天天| 日韩免费在线观看不卡| 亚洲一区二区三区不卡国产欧美| 国产在线视频二区| 国产精品探花视频| 3p国产欧美99热| 3571色综合一区二区二区| 久久久久精| 欧美在线l亚洲| 夜夜爽爽夜夜精品视频| 亚州Av天美传媒| 蜜臀99久| 神马午夜久久| 大学生美女口爆| 91美女小视频| 乱伦熟女专区| 亚洲一曲日韩精品| 狠狠色丁香| 九一屌逼| 青青草成人视频在线观看二区| 久久久中文版| 中文字幕AV片| 啊啊啊啊免费视频| 日本乱人伦片中文三区| 亚洲午夜福利在线影院| 国产成人综合网| 射欧美综合| 北野未奈加勒比av| 久久天天躁日日躁狠狠躁| 北条麻妃性愛视频| 综合五月天| 国产日韩精品suv| 在线观看日韩av不卡| 男人的天堂啪啪| 日韩天天本| 久久岛国| AV一区观看| 综合久久六月久久婷婷| 国产精品嫩草久久久久| 日本免费中文一区二区三区四区 | 国产成年精品高清在线观看91| www熟女乱伦com| 夜夜操夜夜爽夜夜高潮| 日本 欧美 亚中文字幕| 99热免费| 日本精品一区三区| 丝袜熟女2P| 超碰人人乐97| 欧美丝袜激情| 96免费视频在线| 亚洲一区制服诱惑| 久久久久久99999国产精品| 久久超碰天天| 伊人超碰97| 午夜国产成人精品视频| 熟女激情综合网| 熟女精品va中文字幕| 91成人在线免费视频| 天天干天天做| 日韩97视频!在线| 国产久久一区二区| 亚洲天堂少妇| 日韩欧美性爱电影在线观看| 国产精品原创巨作?v网站| 强奸乱伦大香蕉| 国产精品亚洲免费| 欧美欲色| 久草毛片电影怡| 综合视频91| 日本久久999| 日韩精品国模| 96久久久久久久| 91人妻精华帖| av资源在线播放天堂| 99爱久久视频频| 欧洲亚洲综合| 爱爱啊啊啊| 丁香九月 婷婷| 婷婷性爱| 日本天堂网| 97视频在线免费播放| 亚州九九九精品视频| 国产丁香精品露脸视频 | 懂色AV蜜臀无码精品APP| 日韩成人大片一区二区| 久久精品国产亚洲AV无码做| 亚洲高潮少妇| 青青网三级视频| 丝袜狂射91| 色天使AV天堂| 牛牛操视频逼| 日本三级久| 北野未奈加勒比av| 免费αV在线视频| 人成午夜免费大片| 性性久久| 国产2.3.4区| 成人AV超碰免费在线| 一区二区三区黄片免费观看| 国产超碰国产97| 蜜臀av网址| 黄片国产精品一区二区| 五月天激情国产综合婷婷婷| 在线 欧美 亚洲| 91人妻人人澡人人爽人人精品| 综合激情五月丁香| 夜夜操中文字幕| 男女猛烈无遮掩视频免费软件| 操91| 欧美亚洲国产日本在线,久久精品国产| 欧美综合色| 亚洲图片色图欧美另类| 久久久久久久久久久六六| 亚洲色性| 三级激情网站| 爆乳免费黄网站| 欧洲亚洲人人爽爽视频| 国产视频一区二区三区在线免费观看 | 青青三级视频| 老司机福利青青草| 色婷婷基地| 日日AAvv| 国产女人和拘做爰视频| 日韩中文字幕熟妇人妻| 超碰在线1234区| 黄色小视频日本txt| 青青草视频久久久久| 天堂v无码免费视频| 猛交交| 激情小说激情视频| 国产无码精品高清| 女人的久久久| 99re99在线视频| 日韩性爱小视频在线观看| julia ann久久| 亚洲囯产精品女人久久久| 欧美97视频| 日韩高清黄片| 九区国产| 成人精品久久久午夜福利| 国产久久久9999| 欧美综合色图网| 亚洲高潮少妇| 精…码一二三区| 裸体女人草逼视频播放一区,二区,三区,四区,五区 | 97精品97久久| 色色色色日本| 加勒比伊人综合| 91丨熟女丨丰满熟女| 久久精品女同亚洲女同13| 久久98| 深爱伊人影院| 婷婷丁香六月| 欧美性五月| 久久久一区二区三区四曲免费听| 福利大香蕉| 男人的天堂啪啪啪啪啪蜜桃不卡| 日本一区二区不卡| 亚洲综合影片| 老司机老司机午夜影院| 天天综合站| 久久欧美按摩999| 丁香五六月啪啪| 69久久久久久久久久久久久| 综合久久六月久久婷婷| 易易A毛视频| 激情综合色| 成人免费性爱视视| 破处bbq| 国产福利精品最新在线| 亚洲色人阁| 日韩有码一区三区| 欧美极品性爱天天射| 91天天爽| 色av中文字| 97色亚洲| 999狠狠综合| 九九精品99| 欧美熟女丝袜| 丰满人妻一区二区三区免费,| 在线视频免费观看午夜| 女上位精品在线| 精品国产www久久| 国产一区二区三区影片| 天天日天天屌天天操| 破苞ⅩXXX性无码动漫无码| 男人的午夜天堂| 四虎影库国产精品免费| 亚洲成人性爱在线观看| 国产无码久久高清| 日本欧美m v精品网站加| 97视频在线观看播放与子乱对白在线……| 国产传媒午夜理伦精品| 久久久偷拍| 久久熟女人| 日韩免费性爱视频在线观看| 一个国产在线综合网站| 992大香蕉| 天天内射| 成人 日本A片无码8888| 中文字幕在线免费观看| 蜜臀在线免费观看在线免费观看| 亚洲熟女av日韩熟女| 日韩综合成人免费视频| 综合亚州欧美| 亚洲国产中文字幕| 国产高清1234区| 依人大香蕉| 在线a v| 日韩成人无码| 中文字幕国产| 116美女午夜| 久久99操天天日| 黄页视频网站野外| 国产精品久久久久久久AV大片| 国产在线激情| 骚女高跟AV在线| 日本东京热大香蕉a片| 嗯嗯啊操我| 激情综合五月天| 曰韩无码777| 免费精品人妻一区二区三| 国产精品永久免费10000| 亚洲欧美不卡线| 激情欧美97| 97超碰超| 久偷拍欧美日韩三区| 国产污视频麻豆传媒一区二区 | 精品一久久久| 久艹伊人精品综合在线| 天天干少妇| 亚洲第一综合| 日本护士高潮| 欧美性爱在线无码| www久久99| www网站黄| 久久xxxx| 亚洲国产精品成人无码久久久 |