日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

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

ARM Mali GPU開發(fā)實(shí)戰(zhàn):架構(gòu)、驅(qū)動(dòng)與AI部署全解析

ARM Mali GPU開發(fā)實(shí)戰(zhàn):架構(gòu)、驅(qū)動(dòng)與AI部署全解析 Mali GPU 這顆藏在 SoC 里的“計(jì)算心臟”這些年我折騰過的架構(gòu)、驅(qū)動(dòng)和部署問題值得好好梳理一遍。這篇文章我打算從一個(gè)實(shí)際開發(fā)者的視角把 ARM Mali GPU 相關(guān)的資源、開發(fā)工具鏈、驅(qū)動(dòng)調(diào)試和 AI 部署經(jīng)驗(yàn)一次性講透文中涉及的鏈接和關(guān)鍵詞希望幫你少走點(diǎn)彎路。1. 認(rèn)識(shí) Mali GPU架構(gòu)演進(jìn)與開發(fā)者的第一課1.1 從 Utgard 到第五代你手里的 Mali 到底是哪一代很多新手拿到一塊開發(fā)板第一件事就是cat /proc/cpuinfo看 CPU 型號(hào)卻常常忽略 GPU 的架構(gòu)代次。這個(gè)信息直接決定了你能用哪個(gè)版本的驅(qū)動(dòng)、支持什么圖形 API、能不能跑 OpenCL 通用計(jì)算。Mali GPU 家族大概分成這幾代Utgard 架構(gòu)代表作 Mali-400、Mali-450廣泛用在老款手機(jī)和入門級(jí)工控板。只支持 OpenGL ES 2.0OpenCL 支持非常有限如果沒有特殊需求不建議在這類 GPU 上折騰通用計(jì)算。Midgard 架構(gòu)代表作 Mali-T720、T760、T820、T860、T880。這是目前二手市場(chǎng)和低成本方案里最常見的一代支持 OpenGL ES 3.1 和 OpenCL 1.1/1.2 的部分特性。我最早做 GPU 調(diào)試就是在這代架構(gòu)上印象最深的是它的 CoreLink 互聯(lián)設(shè)計(jì)多核擴(kuò)展時(shí)緩存一致性做得不錯(cuò)。Bifrost 架構(gòu)代表作 Mali-G71、G72、G51、G76。從這代開始Mali 引入了“quad-based”的 warp 調(diào)度思想Shader Core 內(nèi)部以 16 線程為一組執(zhí)行指令對(duì)計(jì)算著色器的友好度明顯提升。支持 Vulkan 1.0。Valhall 架構(gòu)代表作 Mali-G57、G77、G78、G68。這代把指令集從 32 位統(tǒng)一到了 64 位調(diào)度器對(duì)分支發(fā)散的處理更高效。如果搞 AI 推理Valhall 的 FP16 算力非??捎^。第五代Immortalis 系列代表作 Immortalis-G715主打硬件光線追蹤但這跟大多數(shù)嵌入式開發(fā)者關(guān)系不大看看就好。1.2 為什么說 Mali 的驅(qū)動(dòng)模型和 PC 顯卡完全不同在 x86 平臺(tái)上NVIDIA 或 AMD 顯卡有獨(dú)立的顯存驅(qū)動(dòng)是一整套完整的二進(jìn)制棧。而 Mali GPU 用的是統(tǒng)一內(nèi)存架構(gòu)UMAGPU 和 CPU 共享同一片物理內(nèi)存中間沒有顯存顆粒。這個(gè)特性帶來兩個(gè)直接影響功耗低、成本低適合 SoC 集成但也意味著 GPU 運(yùn)算會(huì)和 CPU 搶占內(nèi)存帶寬。實(shí)測(cè)經(jīng)驗(yàn)是在 4K 分辨率下GPU 密集任務(wù)會(huì)把 DDR 帶寬吃滿CPU 側(cè)表現(xiàn)會(huì)肉眼可見地變卡。驅(qū)動(dòng)不是一個(gè)“萬能 .exe”。Mali 的 Linux 驅(qū)動(dòng)通常分成三塊內(nèi)核態(tài)的DPPDisplay and Pixel Processor相關(guān)模塊、內(nèi)核態(tài)的MMU 和 job manager通常編譯進(jìn)內(nèi)核或作為模塊加載以及用戶態(tài)的libmali.so。用戶態(tài)庫需要針對(duì)具體的 GPU 型號(hào)和 DDK 版本匹配隨手找一個(gè).so拷進(jìn)去最典型的結(jié)果就是gpu crash dump triggered。我見過太多項(xiàng)目的坑都出在這條鏈路上板子供應(yīng)商給的內(nèi)核是 4.19用戶態(tài)庫卻是按 4.4 內(nèi)核編譯的跑起來毫無征兆地黑屏。排查到最后居然是 libmali.so 的 EGL 入口和內(nèi)核模塊的 ioctl 版本對(duì)不上。2. 驅(qū)動(dòng)與用戶態(tài)工具鏈交叉編譯、庫路徑和真實(shí)部署細(xì)節(jié)2.1 Linux 環(huán)境下 Mali 驅(qū)動(dòng)的整體結(jié)構(gòu)在 Linux 系統(tǒng)上Mali 驅(qū)動(dòng)的典型加載路徑是這樣的內(nèi)核側(cè)/sys/module/mali/目錄存在說明 Mali 內(nèi)核模塊已加載。設(shè)備節(jié)點(diǎn)/dev/mali0是 GPU 的用戶態(tài)訪問入口沒有這個(gè)設(shè)備節(jié)點(diǎn)用戶態(tài)庫再全也白搭。用戶態(tài)庫通常位于/usr/lib/aarch64-linux-gnu/或/usr/lib/arm-linux-gnueabihf/重點(diǎn)文件包括libmali.so集成了 EGL/GLES/OpenCL 多個(gè)入口、libEGL.so、libGLESv2.so。說到這要提一個(gè)熱搜詞里反復(fù)出現(xiàn)的命令export LD_LIBRARY_PATH/usr/lib/aarch64-linux-gnu/mali:$LD_LIBRARY_PATH這條命令本身沒什么問題就是讓動(dòng)態(tài)鏈接器優(yōu)先去 Mali 庫所在的目錄找?guī)煳募?。但我必須提醒一句不要盲目敲這條命令。如果當(dāng)前系統(tǒng)的 Mali 庫實(shí)際在/usr/lib/aarch64-linux-gnu/下一個(gè)層級(jí)而/usr/lib/aarch64-linux-gnu/mali/這個(gè)子目錄根本不存在export 完反而可能因?yàn)閹炻窂巾樞騿栴}加載到錯(cuò)誤的 libmali。正確的做法是先確認(rèn)目錄存在ls /usr/lib/aarch64-linux-gnu/mali/如果確實(shí)沒有這個(gè)目錄但系統(tǒng)里的 GPU 能正常工作那就說明庫文件直接放在了通用搜索路徑里這時(shí)不需要額外設(shè)置 LD_LIBRARY_PATH。真正需要設(shè)置的場(chǎng)景是交叉編譯后把庫放在非標(biāo)準(zhǔn)路徑運(yùn)行時(shí)才需要告訴系統(tǒng)去哪里找。2.2 交叉編譯工具鏈選型從 ARM Compiler 5 到 GCC熱搜詞里出現(xiàn)的“arm compiler 5.06u7 下載”是 ARM 自家提供的商業(yè)編譯器有歷史包袱的項(xiàng)目特別是一些閉源第三方庫還在用它。ARM Compiler 5 系列最后的版本是 5.06 update 7之后的官方支持轉(zhuǎn)向了 ARM Compiler 6基于 LLVM。如果你的項(xiàng)目不強(qiáng)制要求 AC5我強(qiáng)烈建議直接用 GCC 交叉工具鏈比如aarch64-linux-gnu-gcc省心得多。選工具鏈時(shí)有個(gè)點(diǎn)要注意ARM Compiler 5.06 編譯出來的代碼默認(rèn)針對(duì) ARMv7 或 ARMv8 的老 AArch32 模式而 Mali GPU 用戶態(tài)驅(qū)動(dòng)多數(shù)是 AArch64 庫?;煊脮r(shí)最好統(tǒng)一目標(biāo)架構(gòu)否則鏈接階段會(huì)出現(xiàn)莫名其妙的cannot find -lEGL或 ABI 不匹配的報(bào)錯(cuò)。一個(gè)實(shí)用的排查技巧是使用file /usr/lib/aarch64-linux-gnu/mali/libmali.so看看輸出是ELF 64-bit LSB shared object, ARM aarch64還是ELF 32-bit。如果返回的是 32 位而你的用戶程序是 64 位那么無論怎么配 LD_LIBRARY_PATH 都無濟(jì)于事。2.3 銀河麒麟系統(tǒng)上安裝軟件的實(shí)操SSH 升級(jí)包示例熱搜詞里出現(xiàn)“銀河麒麟 ssh 10.3 rpm升級(jí)包arm”其實(shí)指向一個(gè)典型場(chǎng)景國產(chǎn)化替代環(huán)境里的 ARM 服務(wù)器系統(tǒng)自帶 OpenSSH 版本偏舊想升到 10.3只能找 rpm 包。這類系統(tǒng)通常是 ARM64 架構(gòu)基礎(chǔ)安裝命令我實(shí)測(cè)過一套sudo rpm -Uvh openssh-10.3p1-1.ky3.arm64.rpm這里的關(guān)鍵在于-Uvh它表示升級(jí)-U、顯示詳細(xì)輸出-v、顯示進(jìn)度-h。直接rpm -ivh安裝舊版本沒卸載干凈時(shí)可能生成兩個(gè) sshd 服務(wù)導(dǎo)致 ssh 端口綁定沖突。另外在麒麟這類系統(tǒng)上如果用非 root 用戶執(zhí)行后出現(xiàn)error: cant create transaction lock on /var/lib/rpm/.rpm.lock多半是權(quán)限問題加 sudo 重試即可。升級(jí)完 OpenSSH 后請(qǐng)一定重啟sshdsudo systemctl restart sshd不要直接斷開當(dāng)前的 ssh 連接先另開一個(gè)終端驗(yàn)證新版本 sshd 能正常監(jiān)聽 22 端口再退出否則可能把自己鎖在門外。2.4 ARM 系統(tǒng)常用命令工具的補(bǔ)齊很多從 x86 遷過來的朋友會(huì)發(fā)現(xiàn)ARM 板子上iftop、iotop、htop、iperf3這類工具往往沒裝。這里給一個(gè)比較通用的操作思路對(duì)于 Debian/Ubuntu 衍生系統(tǒng)樹莓派 OS、Ubuntu Mate、麒麟也是基于 Debian 體系sudo apt update sudo apt install -y htop iotop iftop iperf3對(duì)于使用 yum/dnf 的 ARM 系統(tǒng)部分 CentOS 移植版、OpenAnolis ARM 版sudo dnf install -y htop iotop iftop真實(shí)遇到的問題往往是源里沒有對(duì)應(yīng) ARM64 的 rpm 包這時(shí)候可以去 EPEL 的 aarch64 倉庫找或者直接從源碼編譯。uname -m 看一下輸出aarch64就是 ARM64armv7l是 32 位 ARM。3. GPU 計(jì)算與 AI 推理部署Mali 在真實(shí)項(xiàng)目里的邊界3.1 Mali 跑 GPGPU 的幾條路線OpenCL、OpenGL ES Compute、Vulkan Compute很多做嵌入式視覺的朋友都問過Mali GPU 能不能像 NVIDIA 那樣跑 CUDA很遺憾CUDA 是 NVIDIA 的封閉生態(tài)Mali 上一條都走不通。Mali 可選的通用計(jì)算路線大致三條OpenCLMidgard 以上架構(gòu)支持不錯(cuò)適合圖像處理、卷積類的并行任務(wù)。Mali OpenCL 驅(qū)動(dòng)對(duì) buffer 的分配有嚴(yán)格要求頻繁創(chuàng)建/釋放大批量 buffer 會(huì)引發(fā)嚴(yán)重抖動(dòng)正確姿勢(shì)是復(fù)用 buffer。OpenGL ES Compute Shader如果已經(jīng)有 GLES 渲染管線混入 compute shader 成本最低適合后處理特效不太適合超大計(jì)算量。Vulkan ComputeValhall 架構(gòu)上效率最高但開發(fā)門檻也最高需要自己管理 Command Buffer 和 Pipeline。如果你跑 NCNN 推理框架它可以直接切換到 Vulkan 后端來利用 Mali GPU這也是目前邊緣設(shè)備上最主流的做法。用 NCNN 的時(shí)候編譯命令關(guān)鍵參數(shù)這樣寫cmake -DCMAKE_TOOLCHAIN_FILE../../toolchains/aarch64-linux-gnu.toolchain.cmake \ -DNCNN_VULKANON \ -DNCNN_OPENMPON ..如果編譯好以后運(yùn)行ncnn_benchmark報(bào)錯(cuò)vkCreateInstance failed大概率是 GPU 驅(qū)動(dòng)和 Vulkan Loader 不匹配可以用vulkaninfo先檢查。3.2 PyTorch 與 PaddleOCR 的 GPU 部署哪些能跑哪些別折騰很多朋友問我“ARM 板子上能不能像 x86 一樣裝 PyTorch GPU 版”。說實(shí)話PyTorch 在 ARM 平臺(tái)上對(duì) Mali GPU 幾乎沒有官方支持。主打推理場(chǎng)景時(shí)更現(xiàn)實(shí)的方案是TensorFlow Lite對(duì) Mali 支持較好通過gpuDelegate可以在部分算子下調(diào)用 OpenCL。NCNN / MNN國內(nèi)開源框架對(duì) ARM Mali 的適配比較積極。ONNX Runtime有 OpenCL execution provider但算子覆蓋有限。如果在搜 PyTorch GPU 安裝教程注意一點(diǎn)不要看到 NVIDIA 的教程就往 ARM 上套如果發(fā)現(xiàn)要裝 CUDA那大概率是 x86 教程。真正的 ARM 平臺(tái)部署推理模型的路線是 onnxruntime arm 版 so或者直接用 TFLite。關(guān)于 PaddleOCR 的 GPU 模式它在 ARM Mali 上最靠譜的一條路是走 NPU如果 SoC 里有GPU 模式需要 cudnn 8.5 之類的前提那都是面向 NVIDIA 的。我實(shí)測(cè)下來在 RK3588Mali-G610上跑 PaddleOCR 的 ARM CPU 版用 ONNX Runtime 加多線程效果比折騰 GPU 穩(wěn)定且 ROI 更高。3.3 大模型微調(diào)里的 GPUMali 的無奈與出路熱搜詞里“gpu微調(diào)大模型”也指向當(dāng)前很火的場(chǎng)景?,F(xiàn)實(shí)很骨感Mali GPU 不適合做大模型微調(diào)。原因不復(fù)雜大模型微調(diào)需要超大顯存、高帶寬和成熟的張量核心Mali 統(tǒng)一內(nèi)存架構(gòu)撐不起來。但 Mali 可以做兩件事部署量化后的推理模型比如在手機(jī)上跑 7B 模型走 4bit 量化通過 Vulkan compute 調(diào)用 Mali 算力速度雖然沒法說“流暢”但能接受。混合調(diào)度把部分算子放在 GPU部分放在 NPU剩下放 CPU用 NCNN 的流水線做并行。這個(gè)對(duì)開發(fā)者的調(diào)度功底要求很高新手不建議一上來就碰。3.4 ollama 指定 GPU 和 GPU 租用的經(jīng)驗(yàn)ollama 指定 GPU 的場(chǎng)景主要在 Linux x86 服務(wù)器上但這不代表 ARM 完全沒機(jī)會(huì)。如果在 ARM 板子上跑 ollama我建議直接用官方的 linux-arm64 安裝腳本安裝安裝完默認(rèn)走 CPU。如果板子的 NPU 有額外的 runtime也可以嘗試配置但不要指望 Mali GPU 能直接被 ollama 調(diào)用——它沒把 OpenCL/Vulkan 納入主流后端。GPU 租用這一塊補(bǔ)充一句如果你是做 AI 訓(xùn)練租帶有獨(dú)立顯卡的云主機(jī)比本地淘 ARM 板子靠譜得多成本低、免維護(hù)。真正需要本地 Mali 的場(chǎng)景還是邊緣推理和圖形渲染。4. 常見問題與排查技巧實(shí)錄從 crash dump 到性能調(diào)優(yōu)4.1 “gpu crash dump triggered”到底是什么這條讓我最頭疼也最熟悉Mali 驅(qū)動(dòng)檢測(cè)到 GPU 執(zhí)行出錯(cuò)后會(huì)打印一系列寄存器狀態(tài)和 dump 信息。觸發(fā)原因集中在幾個(gè)點(diǎn)shader 數(shù)組越界最常見。比如 compute shader 里訪問 buffer 時(shí)下標(biāo)超出了分配范圍。排查手段是使用Mali Offline Compilermalioc靜態(tài)分析或者打開報(bào)錯(cuò)時(shí)附帶的 shader 索引核對(duì)對(duì)應(yīng) shader。非法指令或浮點(diǎn)異常LLVM 編譯 OpenCL kernel 時(shí)如果優(yōu)化級(jí)別過高某些中間表示會(huì)引入 GPU 不支持的指令。調(diào)低優(yōu)化級(jí)別或者用-cl-fast-relaxed-math之外的保守編譯選項(xiàng)。非法內(nèi)存訪問用戶態(tài) glBufferData 分配的 buffer 太小shader 訪問越界直接命中未映射區(qū)域。出現(xiàn)gpu crash dump triggered后第一步不是改代碼而是先把 dump 完整保存下來。Mali 驅(qū)動(dòng)會(huì)給出類似這樣的信息示意Mali: gpu crash dump triggered Mali: Job fault 0x0013Job fault后面的十六進(jìn)制數(shù)很關(guān)鍵不同值對(duì)應(yīng)不同故障類型。查內(nèi)核頭文件mali_kbase_gpu_fault.h能定位到具體錯(cuò)誤碼。比如 fault 0x0004 是讀寫非法地址0x0005 是總線錯(cuò)誤0x0013 是 job 超時(shí)。應(yīng)對(duì)策略一般三步走升級(jí)用戶態(tài)驅(qū)動(dòng)到與內(nèi)核匹配的 DDK 版本。用malioc檢查 shader 的資源占用和非法行為。簡(jiǎn)化場(chǎng)景二分排查哪個(gè) draw call / dispatch 觸發(fā)崩潰。4.2 那臺(tái) Linux 板子上的“三個(gè) GPU 同時(shí)測(cè)試”怎么落地?zé)崴言~“l(fā)inux 三個(gè) gpu同時(shí)測(cè)試”聽起來像是服務(wù)器多卡場(chǎng)景但 ARM 平臺(tái)上也可能遇到多核 Mali 或 MaliNPUGPU 的組合。我分享一個(gè)通用方法論用/dev/mali0的設(shè)備句柄區(qū)分 GPU 實(shí)例但 Mali 通常是一個(gè) SoC 只有一個(gè) GPU 設(shè)備節(jié)點(diǎn)。如果是多個(gè) SoC 組成的集群比如一臺(tái)主板上集成了多塊 RK3588那就按進(jìn)程綁定不同的/dev/mali0用glmark2-es2等工具做并行壓力測(cè)試然后通過mali_util和mali_pmu有性能計(jì)數(shù)器的板子看利用率。如果想同時(shí)跑 CPU/GPU/NPU 的負(fù)載需要關(guān)注總內(nèi)存帶寬建議用perf stat或likwid這類工具先摸一下 baseline。如果只是測(cè)試單顆 Mali GPU 的穩(wěn)定性就用glmark2-es2連續(xù)跑幾小時(shí)配合溫度監(jiān)控判斷散熱是否達(dá)標(biāo)while true; do glmark2-es2 --run-forever; done并在另一個(gè)終端跑watch -n 1 cat /sys/class/thermal/thermal_zone0/temp如果溫度超過 85°C散熱就要加強(qiáng)。4.3 Linux 禁用 GPU、驅(qū)動(dòng)黑名單和 GPU 調(diào)度有些場(chǎng)景下我們反而要禁用 GPU。比如在服務(wù)器環(huán)境里Mali GPU 的圖形功能用不上還占內(nèi)存帶寬最簡(jiǎn)單的做法是sudo sh -c echo blacklist mali /etc/modprobe.d/blacklist-mali.conf sudo reboot如果想臨時(shí)卸載驅(qū)動(dòng)模塊而不重啟sudo rmmod mali不過需要確認(rèn)沒有進(jìn)程占用 GPU。另外“GPU調(diào)度”在 Mali 語境下一般指 job scheduler 的優(yōu)先級(jí)策略Mali 驅(qū)動(dòng)默認(rèn)是按提交順序排隊(duì)但可以通過dma_fence相關(guān)機(jī)制或者用戶態(tài)設(shè)置優(yōu)先級(jí)。實(shí)際調(diào)優(yōu)經(jīng)驗(yàn)是在實(shí)時(shí)視覺場(chǎng)景里盡量把 GPU job 切小避免單個(gè)大 job 霸占所有 shader core。4.4 學(xué)習(xí)資源和“l(fā)inks”的整理說了這么多最后把真正有價(jià)值的資源鏈接整理一下以官方文檔名和社區(qū)名稱為主搜索時(shí)認(rèn)準(zhǔn)這些名字Mali GPU 官方文檔ARM 官網(wǎng)的 “Mali GPU” 文檔中心包括Arm Mali GPU Best Practices Guide和Mali Offline Compiler User Guide。Mali 驅(qū)動(dòng)源碼與 DDK如果從 vendor BSP 里拿不到最新驅(qū)動(dòng)去 ARM 官網(wǎng)的 “Arm Driver Development Kit (DDK)” 頁面注冊(cè)下載。工具鏈Arm Compiler 5.06在官網(wǎng)的下載中心頁注冊(cè)后可以下載歷史版本免費(fèi)替代用 Linaro 的gcc-arm-9.2-2019.12。調(diào)試工具Android 平臺(tái)可以用Mali Graphics DebuggerMGDLinux 平臺(tái)可以用開源工具M(jìn)aliGPU或配合perf使用內(nèi)核導(dǎo)出的 PMU 事件。框架層面NCNN 官方 GitHub 的 README 對(duì) Vulkan 后端有詳細(xì)編譯說明TFLite 官方文檔里有 GPU Delegate 的 ARM 支持列表。性能分析Streamline Performance Analyzer配合gatord守護(hù)進(jìn)程可以采集 GPU 的硬件計(jì)數(shù)器這是調(diào)優(yōu)比較標(biāo)準(zhǔn)的路徑。GPU 模型與規(guī)格速查Ardunix Mali GPU數(shù)據(jù)庫按 Mali 型號(hào)查最大頻率、核心數(shù)和 API 支持級(jí)別做方案選型時(shí)很有用。5. 從 ARM 匯編到系統(tǒng)級(jí)優(yōu)化用底層視角理解 Mali 生態(tài)5.1 ARM 匯編入門對(duì) Mali 開發(fā)的隱藏價(jià)值很多人覺得寫 ARM 匯編和 GPU 開發(fā)八桿子打不著。其實(shí) GPU 的 shader 最終也要編譯成 GPU 指令而驅(qū)動(dòng)和用戶態(tài)庫里的 CPU 部分也跑在 ARM 指令集上。懂一點(diǎn) ARM 匯編至少有三個(gè)實(shí)際好處能看懂 crash dump 里的 PC 寄存器和調(diào)用??焖俣ㄎ皇球?qū)動(dòng)死循環(huán)還是應(yīng)用層非法跳轉(zhuǎn)。調(diào) NEON 優(yōu)化時(shí)能識(shí)別編譯器生成的低效指令序列手動(dòng)改進(jìn)向量化策略。理解 AArch64 調(diào)用約定x0-x7 傳參x30 存返回地址排查 JNI/OpenCL host 端代碼時(shí)不容易懵。入門路線我建議先看 ARM 官方《ARM Architecture Reference Manual》的 AArch64 章節(jié)然后找《ARM 匯編語言實(shí)戰(zhàn)從零到精通》這類偏實(shí)戰(zhàn)的書刷一遍最后拿objdump -d反匯編實(shí)際的 C 代碼對(duì)比驗(yàn)證。5.2 教師視角與“期末復(fù)習(xí)”關(guān)鍵詞扯點(diǎn)閑篇熱搜詞里有“arm 期末復(fù)習(xí)”“arm處理器體系結(jié)構(gòu)及其應(yīng)用 電子科技大學(xué)”說明不少學(xué)生朋友也在查資料。如果你想快速建立知識(shí)框架我建議按“體系結(jié)構(gòu) → 指令集 → MMU/Cache → 異常模型 → 啟動(dòng)流程BL31/U-Boot→ 外設(shè)/GPU”這條鏈路復(fù)習(xí)。后面提到的arm bl31 uboot就是啟動(dòng)流程中非常關(guān)鍵的兩個(gè)環(huán)節(jié)BL31 是 ARM Trusted Firmware 的運(yùn)行時(shí) EL3 固件U-Boot 負(fù)責(zé)拉起內(nèi)核。學(xué)習(xí)過程中多數(shù)人都會(huì)在 MMU 這塊卡殼。Mali GPU 在這方面其實(shí)給了很好的參照物GPU 也有自己的 MMU叫Mali MMU它負(fù)責(zé)把 GPU 的虛擬地址翻譯成物理地址和 CPU 側(cè) MMU 的原理高度相似。5.3 使用 malioc 分析 shader找到性能瓶頸Mali 平臺(tái)和 NVIDIA 不一樣沒有 nsight 這類圖形化分析工具但Mali Offline Compilermalioc是命令行神器。它可以不跑真機(jī)直接編譯 shaderGLSL/OpenCL C輸出寄存器占用率、workgroup 大小建議、內(nèi)存訪問模式分析等。一個(gè)典型的分析命令malioc -v shader.frag關(guān)鍵輸出項(xiàng)Work register count每個(gè)線程占用的寄存器數(shù)。太高會(huì)降低 occupancy太低可能導(dǎo)致 spilling。Uniform register countuniform 緩存占用。Stack size如果過大需要減少局部變量或拆小函數(shù)。Cycle estimates不同 Mali 架構(gòu)下的模擬時(shí)鐘周期數(shù)。實(shí)測(cè)中我發(fā)現(xiàn)很多性能問題根本不是 shader 數(shù)學(xué)太復(fù)雜而是寄存器溢出導(dǎo)致本地內(nèi)存訪問暴漲。malioc 一下就能看出端倪。5.4 一例真實(shí)優(yōu)化圖像模糊濾鏡的 OpenCL 提速以 3x3 均值模糊為例最容易寫出的一種寫法是每個(gè)像素都去讀周邊 9 個(gè)點(diǎn)這會(huì)讓內(nèi)存讀取量是理論值的 9 倍。簡(jiǎn)單優(yōu)化是改用行緩存line buffer每個(gè) work-item 處理一行像素把讀到的數(shù)據(jù)緩存到 local memory橫向滑動(dòng)時(shí)只讀新像素。在 Mali GPU 上這個(gè)改動(dòng)通常能把性能提升 3~5 倍。原因是 Mali 的 L1 cache 對(duì)線性訪問比較友好local memory 有專門的高速通路。優(yōu)化前大量隨機(jī)訪問L1 cache miss 率高。優(yōu)化后順序訪問 local memory 復(fù)用吞吐量大幅提升。這個(gè)過程需要的知識(shí)正好是所有熱搜詞串聯(lián)起來的理解 Mali 的架構(gòu)第 1 章、會(huì)編譯和部署驅(qū)動(dòng)第 2 章、有 OpenCL 開發(fā)經(jīng)驗(yàn)第 3 章、會(huì)做性能分析和排查第 4 章。6. 實(shí)操心得把零散知識(shí)串成可落地的開發(fā)流程6.1 必備工具包和軟硬件清單我通常在接觸一個(gè)新的 ARM Mali 板卡時(shí)會(huì)按下面這個(gè)清單準(zhǔn)備環(huán)境交叉編譯工具鏈aarch64-linux-gnu-gcc9.3 或 linaro 版本。圖形測(cè)試工具glmark2-es2es2gears。計(jì)算測(cè)試工具clinfo檢查 OpenCL 平臺(tái)和設(shè)備信息vulkaninfo。性能監(jiān)控工具maliocstreamlineperf。AI 推理框架NCNN、TFLite。遠(yuǎn)程管理OpenSSH升級(jí)到新版rsynctmux。不要輕視clinfo的輸出它能一次性把 Mali OpenCL 支持到什么版本、有多少計(jì)算單元、最大 workgroup 多大、本地內(nèi)存多大全部列出來。拿到新板子第一件事就跑clinfo看看Device Name是不是預(yù)期型號(hào)Max compute units是否符合規(guī)格Max work group size是不是 1024 或以上。如果顯示不出 device驅(qū)動(dòng)??隙ㄓ袉栴}。6.2 在板子上建立高效的 GPU 開發(fā)循環(huán)在 ARM 板子上開發(fā) GPU 應(yīng)用和 x86 有個(gè)很大不同編譯速度和調(diào)試工具拉胯。我的經(jīng)驗(yàn)是在 x86 主機(jī)上交叉編譯生成二進(jìn)制后通過 scp/sftp 拷到板子。板子上只放運(yùn)行時(shí)庫和測(cè)試腳本把 sshfs 用起來代碼目錄直接掛載到板子本地。每次修改 shader 或 host 代碼后用一條腳本直接編譯、拷貝、運(yùn)行、收集日志。可以參考這樣一條自動(dòng)化腳本思路偽代碼#!/bin/bash # 在 x86 主機(jī)上運(yùn)行 aarch64-linux-gnu-g -o test_app test.cpp \ -I/path/to/OpenCL/include -L/path/to/libmali -lOpenCL scp test_app userboard:/home/user/ ssh userboard /home/user/test_app關(guān)鍵心得在 ARM 板子上安裝的編譯器未必比交叉編譯器差對(duì)于小項(xiàng)目甚至直接板端編譯更省心。但大項(xiàng)目強(qiáng)烈建議交叉編譯。6.3 可靠性優(yōu)先Mali 的電源管理可不是鬧著玩的Mali GPU 的功耗管理由內(nèi)核態(tài)的mali_devfreq控制。如果板子的 devfreq 策略沒配好高負(fù)載任務(wù)一上來頻率會(huì)劇烈波動(dòng)帶來畫面卡頓甚至 crash。檢查當(dāng)前 GPU 頻率cat /sys/class/devfreq/ff9a0000.gpu/cur_freq如果這個(gè)路徑不存在說明驅(qū)動(dòng)可能沒有啟用 devfreq或者設(shè)備樹里的 GPU 節(jié)點(diǎn)沒有正確描述。想限制最大頻率以降低發(fā)熱可以echo 600000000 /sys/class/devfreq/ff9a0000.gpu/max_freq單位是 Hz這里的 600000000 就是 600MHz具體數(shù)值取決于板卡的頻率表。經(jīng)驗(yàn)之談做穩(wěn)定性測(cè)試時(shí)一定要在真實(shí)散熱條件下壓測(cè)至少 24 小時(shí)因?yàn)?Mali GPU 在高溫下會(huì)觸發(fā)降頻和 job timeout這兩種情況的表現(xiàn)截然不同降頻是性能下降timeout 是直接 crash。7. 常見問題速查表與避坑清單以下是我實(shí)際項(xiàng)目里最常碰到的問題和解決方案匯總做成一張速查表方便查閱現(xiàn)象可能原因解決思路程序啟動(dòng)報(bào)libmali.so: cannot open shared object fileLD_LIBRARY_PATH 未設(shè)置或庫路徑不對(duì)用find / -name libmali.so 2/dev/null找實(shí)際位置再 export系統(tǒng)啟動(dòng)后屏幕黑屏或閃爍內(nèi)核模塊與用戶態(tài) DDK 版本不匹配從 BSP 供應(yīng)商獲取統(tǒng)一驅(qū)動(dòng)包不要混用clinfo顯示不了 Mali 設(shè)備OpenCL ICD 未注冊(cè)檢查/etc/OpenCL/vendors/下是否有 mali.icd 文件內(nèi)容應(yīng)為libmali.so的絕對(duì)路徑Vulkan 初始化失敗Vulkan loader 與驅(qū)動(dòng)不匹配裝vulkan-tools后運(yùn)行vulkaninfo --summary確認(rèn) driver 版本GPU crash dump 頻繁shader 越界或驅(qū)動(dòng)超時(shí)用 malioc 靜態(tài)分析 shader降低優(yōu)化等級(jí)檢查 buffer 大小推理框架跑起來比 CPU 還慢算子沒有真正走 GPU或者走了但拷貝開銷過大用GpuDelegate/NCNN_VULKAN的 debug 版本打印實(shí)際后端檢查 buffer 是否做了零拷貝系統(tǒng)卡頓CPU 占用不高但整體響應(yīng)慢GPU 內(nèi)存帶寬占用過高降低分辨率減少重復(fù)紋理讀取優(yōu)化 shader 帶寬訪問交叉編譯程序在板子上段錯(cuò)誤工具鏈 ABI 或庫版本不匹配readelf -A 程序查看 Tag_ABI_VFP_args確認(rèn)浮點(diǎn) ABI銀河麒麟升級(jí) openssh 后無法登錄sshd 配置文件權(quán)限或上下文不對(duì)恢復(fù)/etc/ssh/sshd_config權(quán)限為 600restorecon -v /etc/ssh/sshd_config高溫下長時(shí)間跑 GPU 作業(yè)崩潰散熱不足觸發(fā)降頻或 job timeout優(yōu)化散熱設(shè)計(jì)限制 max_freq或加大驅(qū)動(dòng) watchdog 超時(shí)參數(shù)還有一些值得寫進(jìn)項(xiàng)目記錄的避坑經(jīng)驗(yàn)不要在用戶態(tài)庫版本不明的情況下直接替換 libmali.so。建議備份并用strings查看內(nèi)嵌版本號(hào)。OpenCL buffer 的分配要一次性到位。Mali 的 user pointer 方式?jīng)]法保證物理連續(xù)共享內(nèi)存場(chǎng)景下性能衰退嚴(yán)重。盡量少在 GPU 和 CPU 之間做頻繁同步。每次 clFinish 都是一次全局屏障把多個(gè) kernel 串成一個(gè) pipeline用 event 來做依賴管理。RGBA8888 紋理不一定比 RGBA4444 慢。Mali 對(duì)非 8 位格式的壓縮支持很糟純性能考慮反而推薦標(biāo)準(zhǔn)格式。設(shè)備樹里 GPU 的 interrupt 配置錯(cuò)了驅(qū)動(dòng)能加載但跑任務(wù)必崩。拿到板子先確認(rèn) dmesg 里沒有mali: IRQ 63 cant request IRQ這種字樣。我在實(shí)際使用中發(fā)現(xiàn)花時(shí)間搞清楚設(shè)備和驅(qū)動(dòng)棧的匹配關(guān)系比盲目?jī)?yōu)化 shader 收益大得多。Mali GPU 的 26 條經(jīng)驗(yàn)踩坑一半都跟驅(qū)動(dòng)版本有關(guān)。最后再分享一個(gè)小技巧每次拿到新開發(fā)板我都習(xí)慣先記錄三樣?xùn)|西——內(nèi)核版本uname -a、Mali 內(nèi)核模塊版本modinfo mali | grep version、用戶態(tài)庫的 md5 值md5sum /usr/lib/aarch64-linux-gnu/mali/libmali.so。后面不管出了什么問題拿著這三個(gè)信息去搜效率高得不是一點(diǎn)半點(diǎn)。ARM Mali 這套體系只要掌握了架構(gòu)脈絡(luò)、驅(qū)動(dòng)匹配、工具鏈選型和計(jì)算資源邊界就能在邊緣設(shè)備上做出穩(wěn)定可用的東西。希望這篇能幫你少流幾次汗有具體問題歡迎在評(píng)論區(qū)繼續(xù)聊。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
激情综合网五月婷婷五月天| 国产AB视频| 美女黑人91神马| 亚洲人精品午夜不卡| 一本一道久久综合久久| 青青草中日韩在线| 好吊色综合| 精品国产91av一区二区三区| 超碰人人超在线观看| 大香蕉AV在线| 麻豆AV短剧| 色九九九九| 国产精品一二三| 色网色网色网色网色网色| 亚洲AV成人精品网站在AV| 久久无码一区二区二三区性色| 亚洲精品影视老司机| 五月婷色| 后入人妻一区| 97久久久久久久久久| 精品久| 欧美性爱91| 日韩午夜啪啪视频| 日韩人妻精品| 国产亚洲深夜激情| 蜜乳av首页| 性色中出| 91欧美www| 一级性爱视频免费观看 | 免费αV在线视频| 午夜福利精品| 亚洲综合影片| 97操综合| 精品国产乱码| 台欧久久精品视频| 国产乱不卡| 国产强奸乱伦无码视频| 日韩 欧美 另类 人妻| 国产欧美日韩在线观看麻豆传媒公司| 97操综合| 国产黄片精品在线| 91AV老熟女视频| 青青操视频在线| 久热一区二区| 91狠狠综合久久久久久| 91情色| 黄色小视频日本txt| 精品国产网站| 九九九一二三| 成人午夜视频免费播放| 人妻内射一区二区在线视频| 亚洲无码偷拍| 亚洲91少妇| 天天操熟妇| 欧美一区二区日韩三区| 五月天社区| 91精品婷婷国产综合久久竹菊| 久久久久久九九九| 色香色香欲天天天影视综合网| 超碰在线1234区| 小日子操bb在线看| 9久超碰| 亚州五月| 亚洲第一成人影院色播| 久日91在线| 男人的天堂1024| 色综合久| 亚洲免费成人在线高清无码视频| 国产精品999zyz| 亚洲男人的天堂亚洲| 嗯~啊~快点 死我视频免费看网站| 日本性交操一区二区不卡系列| 大香蕉十区| 日本免费中文字幕在线| 女生久久网| 一个人在线看的黄色电影网站| 97在线精品观看视频| 神马久久啊啊| 五月婷婷综合激情| 国产无码三级视频在线观看| 日日日日做夜夜夜夜做无码97| 九九香蕉网| 久久久久亚洲| 噜噜瑟| 黑人中出21连凳花野真衣| 午夜a成v人电影| 91精品久久久久久| 亚洲一区二区 麻豆传媒| 中文一区在线视频| 9Ⅰ超碰| 91美女视频在线免费观看| 久9热| 欧美后入| 国产一区二区在线看| 青青草日本中文字幕 | 精品国产Av无码久久久亚洲| 91丝袜人妻| 日本不卡三级网在线播放| 色婷婷综合网站| 亚洲色图亚洲无码强奸乱伦| 性爱1区| 免费伦费视频在线观看| 高清无码在线播放网站| www.久久最新地址| 17c在线成人免费A片观看| 可免费观看的av毛片中日美韩| 欧洲色综合| 97精品97久久| www被窝色com| 青青草中出视频 | 乱理日韩中文| 91黑丝美女| 国产精品欧美激在线| 欧美在线伊人色| 淮穴色AV| 乱理日韩中文| 亚洲精品人伦一区二区| 欧美淫乱视频| 男人的天堂1024| 加勒比色99999| av草草在线电影| 亚洲偷91色| 老女人91| 中文字幕福利视频一区二区三区在线观看| 日本影视久久免费| 亚洲最大成人a毛毛片| 中文字幕精品一区欧美| www.99视频| 色噜噜综合在线| 欧美亚综合色图| 亚洲综合影片| 色97国产69香蕉| 校园激情狠狠四射| 青娱乐二区免费| 免费一级特黄特色大片在线观看看| 欧亚性爱在线视频| 人人爱人人操人人性| 日本午夜福利影院| 欧美综合骚| 大香蕉在线视频重口味毛片在线| 日韩久草| 黑人免费福利视频| 国产精品麻豆视频网站| 精品久一区免费| 精品中文一区二区| 美女高潮国产高清| 中文字幕乱在线伦视频中文字幕乱码在线 | 99精品网站| 97超碰总站| 97视频播放| 黄色片A级一区二区三区| 日韩美女操b| 五月婷婷丁香六月| 天天综合站| 一级性爱视频免费观看 | 日本一级婬片试看三分钟| 亚洲成人久久美女| 成人老鸭窝人人在线视频| 97欧美色综合| 尤物av网站免费在线播放| 久久成人午夜精品影院| 久久黄色网址| 亚洲欧美变态| 国产高清26uuu| 亚洲欧美大| 98超碰日本| 久久二| 福利在线观看一区二区| 亚码人妻| 青青操狠狠撩| 新视频sss国产| 野狼福利社区| 99热在线播放| 色婷婷A V一二三四区麻豆综合| 色97干| 国产精品成人蜜臀AV在线| 青青草在线视频人人想人人上| 久久久99999久网站| 97色97干| 五月天黄色av| 日韩熟女精一区二区三区不卡| 日韩美女操b| 天天天乱色综合全| 93人人操人人| 色诱avtt| 日本爽爽爽爽爽爽免费视频| 黄污污污污| 欧洲色综合| 能在线播放的国产三级| 欧美专区17页| 大伊香蕉在线视频免费| 综合激情一一91| 综合久久久久久久综合网| 久九干| 日本欧美中文字幕| WWW4虎| 校园春色第一页| 亚洲日韩美女中文字幕乱| 日韩钢筋无码高清啾啾啾| 欧美日韩大香蕉| 免费看美国人人爽,人人操 | 综合网97| 色999亚洲人成色| 91蜜桃传媒精品久久久一区二区| 色婷婷基地| 后入式999| 国产99 中文字幕日韩小视频| 天天综合站| 亚洲操操操| 天天综合网在线观看| 日本精品一区三区| 精品无码一区二区三区色欲| 欧美18禁91| 亚洲av性爱电影| 一区二区三区日韩欧美| 国产精品久久久无码aV去| 在线天堂999| 高清无码在线播放网站| 熟女露脸激情自拍视频| 欧美日综合| 九九久久久| 91狠婷| 欧美不卡五十路| 久久久久9999妇女| 久久夜黄色无码A级大片| 加勒比色综合| 七久久久| 国产综合网站在线播放| 蜜区区视频79 | 超碰精品在线| 思思久热在线精品66| 欧美成人色| 精品亚洲国产成人av网站| 久久精品99| 能看的av| 天天日天天搞天天干| 老熟妇一区二区三区啪啪| 天天色播亚洲综合网站| 91福利网在线观看| 人人操人人精品影片| 丁香五月色| 久久AV无码AV| 亚洲 欧美 日韩另类 麻豆| 欧美日日网| 波多野结衣一级视频| 日本 情色 1区2区3区| 大香蕉婷婷| 国产超碰AV在线精品| 亚洲欧美综合网站| 中文字幕日产av人| 久久精品国产精品亚洲艾通辽熟妇| 久久六六| 国产精品69久久久久久久| 久久久久13| 欧美黑人精品在线播放| 97狠狠| 日韩精彩视频| 情色av电影| 欧美综合区| 国产精品一区二区久久精品| 中文字幕视频二区| 人妻人妻天天碰| 嗯嗯嗯好爽| 99久久久无码国产精品性男| 天天做天天爱夜夜爽毛片试看| 国产不卡的视频 | 久久精彩视频| 精品视频久久久久九九九九9999| 2019久久久久久久久福利| 欧美宗合色| 狠狠爱AV| 国产中文福利| 亚洲天堂色图| 色情综合网| 国产 v乱码一区二| 性爱乱伦一区| 丰满人妻一区二区三区四区| 国产成人91一区二区三区| 日韩内| 国产欧洲精品亚洲午夜拍精品| 精品国产网站| 久久女人视频| 亚洲中文字幕乱码无码一区二区| 裸体美女国产免费久久久网站| 国产精品自拍欧美在线| 综合在线导航一区| 亚欧免费| 乳欲人妻办公室奶水| 青青青国产手线观看视频2| 久久香蕉国产线看观看亚洲女人| 一区超碰一区| 欧美亚洲韩国视频十五区| 欧美熟妇亚洲版| 91成人在线| 国产老熟女| 欧美有码激情视频一区二区三区| 在线 制服丝袜中出 人妻| 成年女人18级毛片毛片免费观看| 偷拍自拍在线视频观看| 亚欧高清v| 睡产熟女乱伦| 超碰在线国产| 999久久久精品国产| 91九色精品熟女内射| 成人日本视频人妻在线| 蜜乳av首页| 亚洲精品三| 久久精品小视频| 青青操青娱乐| 亚洲色悠悠久久88| 另类成人首页一区| 日本二三四区| 91久久久亚洲| 高跟丝袜AV专区国产| 美国aaaaa一级黄片| 精品少妇人妻av久久免费| 国产精品免费日韩| 婷婷中文网| 色9999日韩国产| 久久婷婷五月| 91新在线欧美| 日韩有码回春沙龙第一页| 黑丝制服中文字幕| 国产精品第一页国产大屁股视频免费区| 78久久| 人人做,人人操,人人摸| 国产AV激情无码久久无码| 中文字幕亚洲在线一区| 中美日韩毛片| 天天热精品| 亚洲欧美97| 日本操逼视频在线| 亚洲日韩国产欧美综合v| julia高潮后不停追击中出| 久久女人视频| 久久9999 | 拍拍拍拍大尺度黄色三级片拍拍拍拍拍照 | 久99| 婷婷香网站| 色综合 加勒比| 午夜性刺激视频免费观看| 国产精品4p在线观看| 美国aaaaa一级黄片| 天天爽天天| n1038 一二三区| 五十路人妻在线| 无码人妻一区二区三区免费九色| 久久久久亚洲Aⅴ无码| 免费视频无码| 伊人久日| 少妇人妻好深太紧了vr91| 99日韩| 丝袜综合| 九九九九精品九九九九| 大香蕉综合在线| 91久久伊人婷婷青青草| 精品999一区二区| 欧美成人四级在线播放| 91丝袜美女| 九九九九亚洲| 一起草精品人妻| 亚洲天堂自拍| 亚洲 欧美 精品专区 极品| 日本精品高清一二区一本到| 天天舔九色婷婷| 99re视频在线播放青草| 在线综合色| 色五月天AV| 久久久蜜桃臀无码视频| 99热精品在线| 一区e区三| 日本成人电影资源网| 99re8超碰| 久久东京热久久| 全球成人中文在线| 尤物视频偷拍免费| 黑人操一区二区| 97欧美精品综合| 久热伊人| 亚洲……91| 加勒比99999| 天天看,天天做| 内射卯月麻衣| 亚欧无码在线| 国产精品久久久久久久久久久久久久久| A级片日韩欧美国产欧美视频精选观看 | 美欧色综合| 妺妺跟我一起洗澡没忍住| 青草视频人妻在线观看| 色综合久久av| 超碰天天操你比| 亚洲欧洲中文日韩女优乱码| 中文字幕制服欧美久久一区| 五月丁香黄色网| 精品久久久中文字幕不| 亚洲人成网站7777| 精品一区二区麻豆| 中文字幕中文字幕一区二区| 天天超级碰碰碰| 性爱边摸边日免费AV| 欲香欲色天天天综合和网| 啪啪啪精品| 日韩中文字幕av在线播放| 欧美AAAA黄片| 色综合久久夜色精品国产天堂| 国产成人精品必看| 亚洲国内精品成人不卡| 日韩三级天堂在线观看| 东京男人天堂| 日韩一级二级| TS人妖另类精品视频系列| 97精品视频免费| 国产精品盗摄 偷窥盗摄| 久久久∴| 在线精品福利免费播放| 97网色| 69人妻人人揉人人躁人人精品| 私人尤物在线精品不卡| 色婷婷婷五月天激情四射| 激情五月天插| 久久精品国产99久久,亚洲日韩久久日本一区一区三区 | 91av熟女人妻| 综合色久欲| 五月天偷拍| 欧美成熟性爱精品| yazhouzaixian| 亚洲日韩一区电影| 脫衣舞一区二区三区| 久久中文字幕人妻熟av女蜜柚| 五月香婷婷| www.久久制服糖| 亚洲啪啪啪啪视香蕉| 欧美色婷婷| 亚洲第一页第二页激情| 天天天做天天天爱天天天爽| 精品无码久久久| 国产熟女完整版中字| 久久久极品| 国产精品91ai| 丁香五月成人| 中文字幕一区二区日韩网| 美女十八禁| 情色av电影| 日韩性爱网址| 人妻中文字幕精品无码| 十八禁黄色| 啊啊啊在线观看免费视频| 欧美日韩第一页| 国产Av超碰| 99av| 夜夜国自区| 大香蕉免| 亚洲欧洲偷拍一区| 欧美很很操视频| 伊人一区二区在线播放| 大逼色网站| 97干综合网| 欧美五区| 久久久蜜桃一区二区三区| 日本精品无码三级网站| 国产黄色在线播放观看| 日韩猛交| 欧美人妻制服| 日本道日本道中文字幕日本道最新日本道在线观看| 中文字暮97| 97人人超| 91|九色|国产熟女| 亚洲午夜福利在线影院| 岛国色情视频在线观看| 久久精品国产精品一区| 午夜性生活av免费在线看| 五月天婷婷社区| 色哟哟AV| 2020中文字幕在线| 青操影院| 91劲爆| 欧美日韩婷婷中文| 中文久久一区| 亚洲熟妇丝袜在线观看| 嗯嗯啊啊啊好舒服| 91国产丝袜足交精品视频| 日本天天操| 九九热超碰| 精品婷婷| 人妻天堂综合网| 99热这里都是精品| 精品一区二区三区蜜桃臀赵总| 丁香九月激情| 久久激情五月| 激情文学网伊人| 人妻加勒比东京热| www.欧精品| 91女在线观看| 91AV天堂| 亚洲av乱伦色图网站| 无码动漫av中文字幕| 亚洲图片激情小说| 97亚洲色图| 欧美人妻熟女在线| 麻豆91熟妇人妻中文字幕茄子| A男人的天堂| 日本超碰97日韩精品人妻| 91美女在线视频| 欧美精品偷拍| 日本精品免费一区二区三区四区| 999综合色| 国产白领连续中出在线播放| 狠狠操一区二区| 色天堂综合| 粉嫩AV一区夜夜嗨| 超碰午夜| 亚洲精品九九九| 亚洲综合首页| 99热18| 精品少妇一区二区| 麻豆av一区二区| 91人人操| 日韩熟女乱伦中出| 超碰人妻天天干| 日韩一区二区三区四区五区| 九九九九久久久| 精品国产乱码久久久久久影片| 人妻天堂综合网| 天天爽夜夜欢视| 97超碰免费人人性爱| 久久久久婷婷精品av电影| 青青草一区二区三区四| 久久这里只有精品9| 色哟哟AⅤ| 天天干人妇| 九九色逼| 欧美欲色| 久久精品电影在线| 国产精品原创巨作?v网站| 黑人在线91| 日韩中文字幕视频| 婷婷五月天av| 嗯嗯啊好大| 欧美亚洲韩国视频十五区| 国产97色在线| 国产精品久久久久久片| 熟妇在线视频一区二区| 国产肏屁眼视频| 三四中文字幕| 国产中文大片资源中文字幕| 夜夜草网站| 精品人妻一区二区乱码一区二区| 性生活性生大爱77AV国产| 情趣丝袜无码操逼视频| 免费A V在线| 青青草黑寡妇男人天堂| 丰满人妻-区二区三区免费看| 国产精品直播在线观看直播| 在线性黄高清免费视频| 日本一二三高清| 91熟女视频网| 99久久精品欧美国产| 99久久婷婷国产综合精品草原| 一区 欧美 日韩 麻豆| 超碰人妻久久| 国产福利小视频高清在线观看| 开心激情婷婷| 国产日产欧产美韩系列麻豆免费| 国产美女口爆吞精视频| 国产欧美日韩在线观看麻豆传媒公司| 激情婷婷丁香网| 少妇厨房愉情理伦片bd在线观看| 美国美女AV在线| 亚洲 中文 欧美 日韩 在线| 亚洲日本激情| 一牛一区二区三区久久| 大香蕉中文在线| 手机在线人成免费视频| 日日做夜狠狠爱欧美黑人| 国产精品成人AV片免费看网站 | 襙一襙| 色综合99| 久久久啊啊啊| 欧美麻豆成人同性GⅤ在线| 精品久久9| 中文字幕在线观看永久| 日少妇亚洲版| 免费的黄片有限公司| 久9久| 自拍啪啪视频| 大香蕉九九| 33044男人的天堂深夜备| 在线观看黄色电话| 黑丝制服中文字幕| 国产欧美亚洲精品a第2页| 美女毛片999| 天天躁日日躁xxxxx| 97免费视频网| A V视频日本| 日韩二三区| 欧美色www亚洲国产阿娇要播| 国产女人高潮视频| 97超碰人人操人人操| 九九热免费国产视频婷婷伊人| 好涩综合| 91在线限制级| 99re免费视频精品全部| 校园春色中文字幕AV| 高清成年美女黄网站免费大全| www.AV有限公司一区| 熟妇xxxxx性春色| 啊啊啊啊啊啊啊网址在线观看| 天天做日日做| 99999久久精| 五月天激情国产综合婷婷婷| 96精品久久久久久久久久| 99999精品成人| 7777奇米影视久久| 久久亚洲日韩国产欧| 久久久久国产无av| 热热色91| 天天综合网~91综合网| 亚卅熟女乱色| 青娱乐淫乱1314| 天美传媒Av在线| 色一色综合网| 粉嫩av在线| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 亚州综合网| 伊色综合天堂色97| 欧美人人曰人人操人人射射| 骚人妻少妇视频| 欧美男人一区| 欧美精品一区二区少妇免费A片| 欧美色道啊| 精品超碰中文在线| 日韩无码操逼片| 欧美综合色图片| 91逼逼女人91| 欧美性爱另类综合| 国产成年女黄特黄| 啊啊啊啊啊啊啊啊要喷了| 日本乱人伦片中文三区| 欧洲色综合| 天天摸夜夜摸| 99热这里是精品| 豆花视频操逼网址| 国产精品天堂| 美熟女逼导航AV操逼| 先锋精品av色鲁| 另类 日韩 熟女| 97国产精品视频| 国产精品久久久午夜夜伦鲁鲁| 日韩人妻操B| 亚洲最新a在线观看| 日韩一级欧美一级国产一级台湾 | 日本一区二区三区四区免费观看| 色姑娘综合网| 国产又长又大又粗的视频| 91久久久视| 99婷婷| 秋霞欧美性爰视频| 性爱综合一区二区| 久热最新在线杭州| 熟妇无码视频三区| 天天α片| 自拍视频大全亚洲专媒视频/一区二区三区| 欧美强奸一区二区诱惑| 操逼无码操逼| 国产女人视频三四五区| yazhououmeizongya| 激情黄色五月天| 97超碰天天| 欧美熟妇乱码在线一区| 激情五月婷婷| 蜜乳中文字幕a在线| 国产极品馒头逼| 91痴汉| 91精品操美女| 天天综合网~91综合网| 青青草乱入乱欲视频在线观看| 蜜臀久久一区二区| 大香蕉丝袜一级片| 丝袜大香蕉| 一级久久性爱视频| 亚洲精品日韩国产欧美| 亚洲高清无码在线桃色| 搡老女人老妇女AAA一VU麻豆| 啪啪啪精品| 测评在线观看AV| 男女啪啪网站免费视频| 羞涩视频| 被窝影院午夜看片无码| 测评在线观看AV| 秋霞操逼片| 91一区二区三区蜜桃| 91无码西班牙视频在线| 超碰97人妻在线| 综合久久97| 东北女人操逼| av毛片aaaaa免费看| 超碰欧美| 亚洲欧洲日韩天堂av| 色欲Av人妻精品一区二| 国产精品毛片?v一区二区三区 | 天天看高清麻豆| 精彩久久中文| 美女天天干| 啊灬啊灬啊灬啊灬高潮奶出了免费视 | 亚洲欧美综合网站| 骚妻少妇精品性色无码四色A V| 超碰久久网| 青草精品视频一日本久久久久网站| avav青青草久久夜| 欧美日本不卡| 激情欧美97| 国产 日韩,欧美 自拍| 天美传媒婬乱在| 日本久久女同性恋视频| 日本性交操一区二区不卡系列| 天天看天天在线精品| 日本一区二区不卡精品| 久久久一区二区三区四曲免费听| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 欧美性爱超碰97| 国产精品久久久啊| 精品高清一区二区三区三州| 在免费jIzzjIzz在线视频| 成人在线视频网| 天美av在线观看| 91美女色视频亚洲| 熟妇一区,二区,三区。| 亚洲av噜噜噜噜噜噜| 欧美国产欧美在线观看| www五月| 蜜臀亚洲中文| 岛国天天午夜影院传媒网| 国产剧情在线| 日本三级网页| 91在线限制级| 无码九九| 精品三级在线专区| 国产精品自在线发布| 这里只有精品视频在线| 欧美性暴力猛交XXXX | 激情婷婷黑人91| 精品亚洲天堂| 国产福利av精彩对白| 农村妇女一级二级三级视频| 日韩视频小说在线观看| 春色91| 亚洲国产成人精品999| 精品国产www久久| 亚洲美女精品| 日韩99999| 操操吧亚洲乱伦视频| 天天综合色电影| 风骚少妇视频中文字幕| 国产丝袜欧美在线视频| 色五月综合| 午夜天天碰综合视频| 97中文字幕一区| gogogo免费高清看中国国语| 天综合中文| 久久久9 9 9精品| 久久久久亚洲AV无码专区少妇| 国产av尤物| 少妇激情一区二区三区视频| 大香蕉专区| 国产盗摄美女如厕大神作品在线观看| 一区二区影视| www99热| 屁股久久久久久久久| 99老司机精品视频在线观看| 亚洲 图片 综合91| 久久夜夜夜| 国产乱色国产精品免费视| 日韩素人无码一区二区三区三州| 极品色综合| 欧美日韩中文亚洲v在线综合| 91天天c| 欧美真人抽搐一进一出gif| 人妻加勒比东京热| AV有码在线| 国产成人网址| 伊人网一本| 久久免费精品视频免一| 蜜臀AV成人精品蜜臀| 色y情视频免费看| 怡红院怡春院| 亚洲电影中字一区二区| 97九色人妻| 久久精品国产97欧美精品亚洲 | 久久亚洲欧美中文字幕国语| 伊人久久大香线综合无码| 国产成人欧美精品在线| 亚洲AV免费在线观看| 日韩大香蕉| 特级大荫道BBwBBwBBW| 国产91 丝袜在线播放00-百度| 欧美亚洲日韩人妻在线观看| 亚洲人妻日日日| 国产玖玖| 国产精品96| 在线视频一区二区传媒| 牛牛操视频逼| 亚洲污污网站| 美国aaaaa一级黄片| 久久九九热| www九九热| 麻豆精品一区二区三区四区免费观看| 嗯嗯啊中文字幕| 在线观看一级α片刺激高潮视频| 国产又大又粗又色生活片亚洲国产精品成人久久久综合免费 | 九九九久久久| 日韩精品人妻系列无码天堂| 91精品微拍福利| 欧美亚洲厕所精品偷拍91| 午夜福利免费精品视频| 精品人妻视频一区二区在线播放 | 一区二区三区看视频| 超碰国产在线| 精品人妻一区二区三区日产乱码| 一区二区蜜臀| 日人妻视频91| 国产精品96| 欧美激情片一区二区| 国产黄色av大片网站| 欧美亚洲特P| 九九久久99| 日韩精品在线视频,日韩精品……| 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | 国产一区二区三区导航| 一区二区视频在看| 桃色六月天| 国产亚洲精品自在线亚洲情侣| 高清视频一区| s片在线观看| www.色99| AV和黑人在线播放| 97资源站国产精品| 亚洲第一页欧美| 亚洲人妻中文高清| 中文字幕99999| 国产一区二区三区,在线观看观看| 五月天婷婷影院| 小视频国产| 国产三级片在线观看| 无码视频一区二区| 女优视频第10页| 熟妇的味道HD中文字幕| 国产精品久久久久久久久久久久久久吹 | 99超碰碰| 丝袜美女诱惑 91 视频| 色综合五月天| 亚洲欧美日韩精品久| 亚洲综合20p| 99热线麻豆| 91色综合激情| 懂色综合久久久| 国语精品内射在线观看| 午夜男女爽爽爽影院视频| 亚洲色图第四色| 东北女人的毛片| 丁香五月天啪啪| 黄片com.| yaouchengrenav| 夜夜高潮夜夜爽夜夜爱爱一区 | 另类视频在线| 亚洲1区2区三区高清中文字幕| A级在线视频| 就去色综合| 久久久久久九九九九九九| 一个人在线看的黄色电影网站| 婷色五月| 最新中文字幕精品在线| 激情五月综合开心五月| 校园春色AV天堂| 综合熟妇一区二区三区| 精品无码久久久久| 91成人社区| 亚洲午夜av| 亚洲日韩精品在线播放| 久久久久亚洲Aⅴ无码| 亚洲天天做日日做天天谢日日| 精品欧美老熟女一二区| 国产精品成人午夜福利| 91成人精品| 人妻色情天天操| 亚洲 无码 有码 中文字幕| 夜夜嗷嗷一区二区| 国产蜜臀在线| 久久久98网站免费视频| 日本人妻伦在线中文字幕| 日韩av无码网站| 久久亚洲欧美一区二区三区-亚洲国产精品第一区二区 | 日骚逼视频| 伊人欧美大香蕉视频| 亚洲图片视频小说| 蜜臀在线网站| 风间由美日韩欧美久久| 免看60秒涩涩视频| 久久成人东京热人妻| 久久久91福利姬| 日日骚av| 中文字幕免费在线观看| 久久伊人影院| 精品传媒在线一区| 无码精品久久久久久亚洲| 欧美草草| 九九九精品美女| 91美女视频在线观看| 91P0RNY大屁股人妻| 亚洲欧美日韩偷拍色图| 国产 亚洲 一二三四| CCYY草草影院地址入口| 在线看的av| 国产精品视频麻豆入口| 国产成人在线观看综合| 超碰在线人妻| caorenqi shipin| 亚洲丝袜B诱惑| 精品176精品2| 99精品无码| 亚洲熟女人妻中文字幕一区二区| 99无码狠狠久久| 欧美十八禁视频| 中文字幕亚韩| 天天天天天天天天天天干美女| 日本操BAV| 欧美老熟另类| 亚洲中文电影| 欧美淫乱视频| 亚洲在线a| 很黄很色的视频在线观看| 性爱乱伦网址| 99国产精品人妻人伦| 人人喜人人妻| 天天插天天操天天摸天天射天天看| 欧美激情 一区| 校园春色五月天| 国产成人欧美一区二区三区的国产| 青娱乐国产精品| 淫淫总合网| 天美传媒AV国产在线| 美女好片色日本| 精品无码欧美三级| 日韩欧美经典在线观看| 中文字幕精品丝袜| 九九九九一级| 极品国产内射| 久久性爱网站| 色月天AV导航| 男人的天堂日韩| 三级日韩一区二区三区| 国内精品久久久久影院亚洲| 午夜精品99久久久久传媒| 免费看国产大AB| 91视频综合网| 亚洲国产成人高清在线| 男人的天堂.com| 青青草综合在线| 国产精品呦一区二区三区| 偷窥自拍亚洲色图| 91中文精品日韩欧美在线 | 媚薬在线视频麻豆| 日日骚中文字幕| 爱av免费| 人妻一区久久二区三区色播| 91精品丝袜久久久久久| 国产一区二区三三视频| 日本久久久久久久久| 在线观看 99热| 综合影院永久入口国产| 久久女人一区二区三区| 熟妇人妻一区二区三在线 | 一区,二区,三区视频| 屁股久久久久久| 风流老熟女一区二区三区l| 久久久久久久少妇| 9美女超碰在线免费观看| 蜜乳AV一区| 麻豆伊人网| 97爱爱爱| 久久超碰爱| 大香蕉日韩欧美| 高跟丝袜AV专区国产| 美女AV一区二区| 久久伊人最新网址视频| 影音先锋国产精品| 在线无码视频| 在线 欧美 亚洲| 亚洲免费精品一区| 一级AAA片一区二区三区| 最新中文字幕在线亚洲| 欧美超碰96| 久久久9999| av九九| 日韩精品大香蕉伊人在线| 亚欧高清| 97国产亚洲中文在线| 乱性AV| 精品久久在线区一区| 人妻天堂网| 日va操| 和协影院中文字幕三区| 久久国产成人精品国产成人亚洲| 中文字幕在线免费观看视频| 97av,com| 天天做日日做天天欢。| 欧美 牲| 青娱乐国产盛宴视频| 亚洲色图第一页| 中文字幕交换人妻| 日本九九久久99| 乱伦a片视频| 亚洲欧美日韩中文久久自慰| 日本人人操人人操| 亚洲色图20p| 乱伦一二三| 天堂蜜桃无码视频一区二区| 综合欧美亚洲| 国产动漫操逼视频| 久久99干一本高清| 顶级丝袜熟女一区二区三区| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 欧美色青| 国产欧美美女免费观看视频| 精品一区二区三区国产| 精品精品精品| 日韩操啪| 老熟女中文字幕高清| 国产午夜激片Av毛片不卡| 欧美天天影院| 美腿色图| 日韩精品色呦呦| 精品9999| 丁香五月天社区| 国产探花日韩援交| 国模久久在线| 色婷婷久久| 国产精品久久久无码aV去| 亚欧美天堂在线| 人妻日日干| 亚洲欲色| 嫩草 人人网精品| 人人爱人人操人人性| 久久久久夜夜夜夜| AV天堂男人的天堂| 免费看日本操逼视频| 老熟女综合| 制服诱惑亚洲一区二区三区在线观看| 欧美在线干| 国产无码精品无码| 亚洲极品| 亚洲人妻av| 亚洲欧洲av影音| 色婷婷A V一二三四区麻豆综合| 99视频内射三四| 18禁中文字幕| 亚洲日韩精品一区二区| 久久久婷| 偷拍 精品另类 凸凹了四区| caoni国产亚洲av| 亚洲在饯| 91超碰丝袜制服| 蜜臀AV一区二区三区激情综合| 精品伊人久久久大香线蕉小说| 精品性爱| 99re在线视频这里只有精品| 九九精品美女高溯喷水| 国产农村一一级特黄毛片| 91天天| 国内毛片四区| 95精品在线| 中国亚洲呦女专区| 无码国产Av| 蜜臀久久99精品久久久久久婷婷| 久久99深爱久久99精品| 一区二区三区日韩欧美 | 午夜小电影在线插入淫高潮| 欧美成人精品一区二区男人蜜臀 | 国产一区二区欧美日本| 国产成人99久久亚洲综合| 91蜜臀人妻中文字幕在线| 日韩电影天堂视频一区二区| 欧洲综合视频| 国产一级αv免费看片| 久久综合国产精品国产| 欧美色图片欧美色图| 2017大香蕉国产精品久久| 亚洲欧美九九| 91麻豆va国产精品| 玖玖爱免费观看视频| 韩三级a视频在线观看 | 丝袜高跟澳门91视频| 久久综合18p| 综合色图亚洲欧美| 久久久婷婷婷| 人干人人人操人人摸| 自拍偷拍亚洲熟女妇人精品| 日本孕妇一区二区视频操逼免费看| 骚日日av| 热久久无毒不卡| 亚洲人精品午夜不卡| 97国产天堂岛| 97这里都是精品| 欧美色66| AV色天香在线| 极品白嫩福利在线| 亚洲精品819| 麻豆久久久一区二区| 99热超碰| 国内精品久久人妻性色av| 亚洲无码 国产无码| 国产欧美黑人丰满在线| 插插综合网天天影视网| 999综合色| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 伊人久久亚洲中文字幕| 97在线国产精品| 久7色| 少妇国产不卡| 九九热五区| 亚洲s在线观看| 殴美综合色88| 久9久9精品| 国产中文福利| 粉嫩久久久久| 啊啊在线| 丝袜加勒比| 伊人久久AV诱惑悠悠| 亚洲无码精品AV久久久| 国产色产精品在线观看| 天天看精品动漫视频一区| 精品人妻1区| 日日噜噜夜夜狠狠视频无| 亚洲九月丁香| 强奸xx国产| 成人片在线播放| 天美av在线观看| 久草精品国产蜜臀| 嗯嗯啊啊视频一区二区三区| 色九九综合AV| 青青五月天| 中文久久久| 精品日韩中文在线| 国产成人无码网站在线视频| 精品久久人妻成人网| 91狠婷| 精品美女少妇一区二区三区| 人妻少妇精品久久久| 噜噜瑟| 国产主播福利| 国产粉嫩蜜臀av一区二区三区| 亚洲激情综合另类男同| 五月婷婷丁香中文字幕| www.人人cao| 天天欧美欧美亚洲网| 操逼精品视频| 一区二区无码视频| 香蕉视频欧美一卡二卡| 亚洲欧洲综合av在线| 亚洲欧美经典一区二区| 久久久久成人蜜桃精品|