日韩精品一区二区三区在线视频放-无码中文字幕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
返回資訊列表
17c嫩草51久久91嫩草| 嫩草影院在线观看精品| 中文字幕乱偷人妻久久艾草网| 国产色呦呦| 99热在线只有精品| 91熟女综合| 国产精品人妻熟女aⅴ| 国产情色第一第二页在线观看| 99这里有精品| 色婷婷丁香五月| 色综合天天| 中文字幕一二三| 超碰综合色| 99热9| 亚洲精品性爱片| 日本天天干天天操一区| 亚洲天堂一二| 欧洲亚洲综合| 熟女网站最新| 中文字幕在线观看网页| 五月丁香婷婷综合| 最新国产亚洲精品精品国产亚洲综合| 国产精品免费1区2区视频| 亚洲另类色综合网站| 91在线视频免费中出| 亚洲av无线观看| 日韩精品在线视频在线观看| 九九视频黄色片| 91丝袜视频在线观看| 亚洲高清男人天堂| 九一综合网| 国产原创精品| 性色中出| 裸体女人草逼视频播放一区,二区,三区,四区,五区 | 成人性爱av| 婷婷伊人五月| 69精品| 操一对老熟妇爽上天视频| 操曰本熟女| 热久久国产精品视频大陆精品| 女人爽到高潮久久久| 一区二区三区激情在线观看| 无码WWW免费视频网站| 亚洲av综合伊人久久| 亚洲熟女人妻中文字幕一区二区| 精品人妻一区二区三区不卡断 | 欧美日韩国产另类综合| 2019精品国产无码成人| av日韩国产一区二区| 欧美特大AA级黄片| 97超碰碰| 最新无码国产| 日韩免费大片一级播放| 国产精品探花在线| 嗯嗯啊在线视频| 鲁鲁色综合网| 日本999精品| 久久爽爽精品| 中日韩久久久免费看| 国产91丝袜在线播放蜜月| 伊人久日| 一区二区三区四区理论片| 日日躁夜夜躁狠狠躁超爽| 人妻丰满熟妇av无码区蜜桃| 亚洲精品97p| 综合欧美亚洲| 亚洲成人在线高清| 亚洲AV秘 精品久久老牛影视| 园内精品自拍视频在线播放| 亚洲AV免费在线观看| 久久久工口| 校园春色亚洲无码| 久久久新亚洲AV| 免费的黄片有限公司| 国产51色综合久久免费| 亚洲欧美精品91| 小少妇| 校园春色综合色| 91天射| 5252色欧美在线男人的天堂| 丝袜人妻av一区二区| se吧提供国产乱老熟视频胖女人| 99精品在线观看| 99国产精品免费| 青青草伊人久久| a片亚洲一本通视频| AV久日| 91亚洲色人| 国产精品一区二区亚洲人成毛片| 首页中文字幕中文字幕免费| 97资源制服丝袜| 欧美大香蕉97| 69精品| 美女国产一区二区久久| 啊好爽快点-国产一区二区三区撒尿在线-成人AV | 人妻少妇久久久| 久久鲁夜| 欧美精品欧美精品系列| 精品久久久久久中文字幕视频免费| 亚洲囯产精品女人久久久| 色五月亚洲| 青女在线| 久久精品国产亚洲AV清纯| 综合久久久久久久久91| 天天爽天天| 超碰97男人| 亚洲91网| 久久久久成人蜜桃精品| 中文字幕激情小说| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 制度丝袜99| 久久女人视频| 不卡二三区人妻少妇| av天堂精品久久| 人妻熟女字幕一区二区| 日日爽熟女| 无码 黑人一区二区三区| 国产欧美伊人| 久久欧美激情| 91狠狠色丁香婷婷综合久久| 久久久久久久久久久久久女过产乱-少妇高潮一区二区三区喷水-成人AV | 日韩熟女视频二区| 精品久久久亚洲AV成人网站| 日日干夜夜欢| 日韩无码黄色片| 天天日日本| 久久在线观看免费视频| 久久久久七视频| 国产农村妇女精品| 男人的天堂,欧美亚洲另类国产日韩,日本高清一区二区 | 久久久不能久久久久| 久久宗合97| 久精品无码av一区二免费国产在线观看| 人妻爽爽啪视频| 最新无码国产| 天天天乱色综合全| 国产成人99久久亚洲综合| 日韩紧密久久| 国产一区二区三三视频| 国产丸一视频| 丁香五月天啪啪| 欧美碰碰综合色| 吻戏激情性巴克| 亚洲天堂欧美| 亚州春色| 另类小色呦| 久久久精品九| 99热这里只有精| 少妇久久久久久久久| 欧美|91色综合| 精品在线蜜臀| 蜜臀AV成人精品蜜臀| 中文精品一区二去| 中文熟女五十乱码在线| 五月婷婷激情综合| 男插女青青影院| 九九九九日本 | 亚洲成人av电影在线| 国桃视频产巨乳精品一区二区在线| 色嗨嗨在线| 另类欧美综合| 91偷拍欧美亚洲| 无码丰满熟妇一区二区浪潮AV| 久日综合网| 国产精品久久久久久片| 激情欧美97| 白丝jkav| 天天色播亚洲综合网站| 欧美激情综合网| 欧美日韩一干二干| 狠狠激情综合狠狠操中文字幕| 人妻另类| 无码视频一区二区| 精品人妻伦一二三区久久| 国产一级舔足在线观看| 欧美极品色| 精品久久在线区一区| 九九精品无码专区免费| 99精品九九九九九九| 日韩人妻网站| 无码聚合| 午夜影美女日鸡鸡天天视频国产| 欧美在线啊啊| 美女啊啊啊啊啊啊| 青青草原av| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 东京男人天堂| 极品粉嫩一区二区| 丝袜美腿欧美| 五月婷在线| 凹凸视频在线观看伊人| 亚洲精品亚洲人成人网| 成人5码视频| 欧美亚洲自拍另类人妻| 国产精品久久久久9999小说| 欲综合网| 婷婷8月天青娱乐| 久久久久久久久久久久久久久久9| 超碰97起碰| 国产 丝袜 欧美中文 另类| 26UUU欧美激情一区二区| 日韩高清黄片| 亚洲一级特黄大片在线播放91| 密乳AV免费观看| 久久久久久99AV无码免费网站| 性天堂| 熟女精品日韩一区二区三区| 男人的天堂久久久| 青娱乐国产剧情av一区| 偷拍综合网| 另类图片天天影视| 无码人妻一区二区三区色欲aⅴ| 麻豆成人影音在线| 日韩免费a级毛片无码a∨| 天天噜| 国产精品扒开腿做爽爽爽视频| 99热这里都是精品| 2023天天操夜夜操| 黄色片一区二区三区四区五区| 97超碰人人操人人操| 人人么人人操| 日本色色色| 91狠狠综合久久| 91 亚欧| 秋霞视频一区二区 | 色欲久久99精品久久| 亚洲色图第四色| 国产AB视频| 91操熟女视频| 69av一区二区三区| 久久久亚洲欧美综合| 蜜桃av综合网发布| 色av中文字| 一区二区三区四区久久视1| 欧美乱妇狂野欧美在线视频| 性感美女91影视| 精品免费囯产一区二区三区 | 国产1769在线| 夜夜嗨AV一区天天| 夜夜福利| 最新无码国产| 亚洲激情在线| 国内操逼视频二区| 久热一区二区| 性色av蜜臀av色欲aV| 日韩乱插| 日韩精品高清资源在线| 精品大全99999| 97超碰人人模人人拍人人| 精品午夜福利国产一区二区在线观看 | 精品人妻免费观看| 亚洲欧美日韩精品久| 婷婷啪啪| 人妻熟妇一区二区三区| 在线A日本| 久都青青视频| 中文字幕免费在线观看| 韩国成人精品久久久免费看| 久九九九九九九热| 亚洲人妻日日日| 嫩草影院在线观看精品| 啊好爽受不了无码| 无套后入双马尾| 国产精品网址| 妇人噜噜| 久久性爱视频免费看| 极品尤物在线观看| 97国产精品在线观看| 日韩黄色av中文字幕| 91丨九色丨熟女高潮| 天堂伊人久久| 日韩人妻免费精品| 欧美亚洲美少妇一区二区| 日本精品一区二区不卡| 午夜欧美女人操逼| 夜夜爽爽夜夜精品视频| 少妇一区二区三区精选| 亚洲天堂另类小说男人| 国产偷人伦激情在线观看| 黄色av一区二区在线| 国产综合久久久鬼色| 精品视频久久| 禁止观看美女黄| 清纯唯美综合| 91色碰| 亚洲图片第一页| 91GD.COM| 夜夜欧美| 亚洲 日韩 欧美 国产综合体| 国产风韵犹存熟妇三区| 成年人一级黄色毛片大全在线观看| 少妇被玩视频二三区| 少妇无码999| wwwss在线观看| 欧美 亚洲精品首页| 免费综合亚洲中文| 97国产|免费| 国产亚洲国产超碰| 亚洲一区二区av| 亚洲激情网| 9丨久久九九九| 久久熟女人| 日本一级特级毛片视频| 91色五月俺来也| 国产精品蜜臀久久久久无码AV| 亚州操操穴网| 久久精品中文字幕观看| 91激情综合| 亚洲导航深夜福利| 一本久道久久综合狠狠爱一密臀精| 国模精品娜娜一二三区| 78久久| 午夜成人福利影视| 国产精品无码av嫩草| 伊人色综合欧美| 中文字幕在线免费观看视频| 欧美劲爆第一页| 日韩三级久久久| 综合亚洲欧美精品日韩?v| 老女人老91妇女老热女| 九月婷婷综合| 天天操夜夜嗨| 精品人妻丰满熟妇一区二区三| 大香蕉伊人色偷偷在线| 麻豆视频国产一区二区| 色香91| 五月丁香在线| 日本狂喷奶水在线播放212| 黄色一区三区| 伊人97超碰| 久久久精品电影| 精品9999| 美女裸体麻豆天美蜜桃91| 国产51色综合久久免费| 国产精品内射婷婷一级二| 成人黄页| 91老司机在线视频免费观看| 免费操逼视频下载| 黄色AV免费| 啊啊啊 在线| 久久精品亚洲东京热色播| 日本在线不卡v二区| 国产深喉视频一区二区| 亚州国产成人精品女人久久 | 九九九九九九精品| 91高跟美女在线播放| 婷婷九月色| 久久男人精品| 久久久99免费| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 嗯嗯不要 视频| 动漫片子网站3黄| 免费a在线播放v| 亚洲无码太久| 狠狠爱综合网| 亚洲综合有码| 欧美天天在线| 蜜屁Av| 97久久免费| 亚洲有码 视频一区| 日本国产高清色www视频在线| 蜜臀在线视频| 热热色91| 蜜臀久久99精品久久久久久-DVD| 91精品婷婷国产综合久久| 欧美亚洲美少妇一区二区| 久久久久久久极品香蕉视频| 女优免费一区二区永久| 婷婷丁香六月天| 国产呦精品一区二区三区下载| 亚洲av国产av综合av卡| 高清有码一区二区| 久久久久久69国产一区二区| 无码不卡八戒| 国产精品一区二区校花| 91精品国产日韩欧美综合| 人妻色偷色噜| 69av一区二区三区| 免费又黄又裸乳的视频| 日本一本道A级黄色毛片试看60分钟| 家庭乱伦国产| 欧美亚洲另类在线蜜桃| 日韩av一级黄片| 免费强奸av| 久久久久亚洲Aⅴ无码| 国产三级日产三级韩国三级| 乱伦3P视频| 亚洲精品aa久久伊人| 人妻在线视频| 婷婷亚洲综合| 亚洲图片 91| 夜夜操老骚逼视频网站| 亚洲和欧美裸体美女双飞视频| 久久久久久久久久久久黄色| 超碰久在线天天做| 老熟妇一区二区三区| 乱操9999| 97aiaiai| 亚洲一级性爱视频免费看| 日本成人电影资源网| 操逼网站地址| 日韩pv中文| 91美女视屏| 69精品人人人人| 射丝袜大香蕉| 97色亚洲| 插穴性爱视频在线观看| www.天天干| 国产青一二三| 欧美亚洲清纯| 中文久久| 国产精品久久久久久片| 六九九九| 欧美97日韩精品| 精品二区三四区五电影| av亚欧| 三级特黄60分钟播放| 天天日天天干天天整| 天天欧美色| 天天舔天天日天天射| 国产国产亚洲一二三久久| 男人天堂网址| 1024人妻| 99这里只有精品| 岛国在线国产| 亚洲一区二区麻豆影院| 久久久免费懂色| 亚洲97综| 99精品在线| 极品色电影院| 9久在线视频只有精品| 日韩乱伦影音先锋| 91欧美成人色站| 色狠狠一区二区三区香蕉| 免费无码婬片AAAA片直播色戒| h无码动漫在线观看| 啊啊啊啊啊在线观看网址| 91操人| 88xx成人精品视频| 一二三区在线| 九九久久国产精品怡红院| 人人妻碰人人免费| 久久人妻四季| 试看60秒 爽| 韩国一级做A片免费的| 高潮嗯啊性感美女久久久| 久久粉色| 综合网色| 骚熟女AV网| 四虎影视永久在线免费| 东北女人的毛片| 丰满人妻一区二区三区色-百度| 91人妻Pr| 国产久久天堂资源| 爱我干综合| 欧美综合色综合| 天天操天天干一区二区| 美女大乳久久久久久久女人18| 97视频免费播放| 大屁股xxxxx| 国产免费一区| 免费啪啪一级视频| 蜜臀99久久精品| 国产亚洲禁久一区二区 | 被窝影院午夜看片无码| 亚洲精品蜜桃久久久一区二区三区| 狠狠入| 欧美日韩成人| 五月天伊人网| 日韩精品.久久精品.AV女优.天美传媒| 国产在线激情| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 国产欧美日韩在线观看麻豆传媒公司 | 国产精品直播在线观看直播| 色呦呦、国产精品| 亚洲自拍天堂| 性九九九九九九| 免费中文在线| 哈哈操电影| 美中韩AV综合网| 天天色图| 热热热热日日漂亮永久永久国产日| 国产成年女人免费视频播放a| 91麻豆天美国产| 丁香六月激情| 久久精品一区一起草| 秋霞视频一区二区| 欧美综合天天| 性性欧美| 色情五月婷婷| 日产欧美电影一区二区三区| 色网1| 久热九九| 国产在线视频二区| com 首页 18岁 禁区 女优 免费 精选 同城| 日本岛国黄色网址| 中文操逼字幕| 青青草久久| 精品一区二区三区蜜桃臀赵总 | 另类欧美色| 一区二区精品更新提醒| 免费观看的黄色的网站| 亚洲国产精品无石码久久 | 最新无码国产| 超碰在线1234区| 国语人妻精彩刺激| 91在线精品| 加勒比综合| 足交视频老司机| 97电影院超碰| 国产激情av女片自拍| 久久久人妻| 青草影院内射高潮| 成 人 影视 一区 二区 三区 四区 | 日韩精品碰碰| 亚洲爽图| 日韩成人小视频| 97免费视频网| 91久久久久免| 日韩探花精品在线视频| 午夜福利国产欧美日韩夜夜| 天干天干天干天天做| 亚洲 图片 欧美 色图| 毛片电影一区二区三区| 樱花蜜乳av| 亚洲熟妇A V黑人| 国产久久男人天堂| 精品美女在线视频| 国产久久一区二区午夜| www.色婷婷色综合| 日韩卡一卡二卡三在线| 1769一区| 91天天| www欧美91| 久久久91福利姬| 欲射影视| 国产五码丝袜屁眼| 久久111| 九久久九精品视频| 亚洲av夫妻操穴网| 大香交伊人网| 五月婷在线| 国产福利第一视频| 亚洲一区二区三区欧美日韩| 天天操天天射天天日| yw尤物av无码点击进入麻豆| 亚州性色| 资源新线在线天堂| 999久久久九九九九| 人妻熟女一区二区三区视频| 91色射| 久久久久幕乱码| 天天综合网合集91| 一本一道久久综合久久| 日韩有码回春沙龙第一页| 欧美 综合 亚洲| 久久噜| 久久人妻少妇| 91男人综合| 加勒比色99999| 国产9熟妇视频网站| 3级毛片一二| 男人的天堂1024| 亚洲图片第一页| 欧美裸体美女日麻屄| 欧美狠狠干| 秋霞操逼片| 国产一级137片内射麻豆| 国产对白刺激视频| 加勒比在线视频一区二区三区| 亚洲情色中文字幕一区| 亚洲AV无码久久久国产精品| 大香蕉啪啪网| 熟妇视频一区二区三区在线观看| 欧美日韩少妇色情| 久久9精品网站| 欧美在线电影| 亚洲电影中字一区二区| 黄页视频网站野外| 91五月天| 久久精品天美| 我爱操| 亚洲学生妹高清av| www.91理论| 色一情一乱一乱一区91Av| 九色 人妻 大香蕉| 超碰97首页| 嗯嗯不要视频| 日本免费一级AAA大片器| 久久婷婷综合国际产色怕| 精品区9| 熟妇高潮一区二| 午夜美女诱惑电源网| av黄图片在线观看| 青草青草久热| 亚洲s在线观看| 99这里都是精品| 97视频网站| 五月婷婷丁香中文字幕| 伊人大香蕉在线| 好爽要喷了| 成人五月天丁香激情综合| 精品亚洲国产成人av网站| 先锋精品av色鲁| 久久99精品国产| 69一区二区三区 | 99re在线视频| 亚洲av性爱电影| 操逼网免费无码视频| 亚洲最大黄网| 中文字幕一区二区无码成人| 日韩色欲久久一二三四区| 欧美淫穴| 999国产精品999久久久久久| 一级做a爰片久久毛片图片| 骚逼高潮久久精品| 大香交| 亚洲,日韩,欧美,成人播放| 五月丁香啪| 2003天天干夜夜操| 欧美日韩免费性爱| 自拍盗摄一区| 翔田千里AV无码秘 三区| 97最新在线播放视频| 最新av在线| 中文AV制服乱伦| 欧美 亚洲 综合 制服| 9九九国产| 一级特级aaaa毛片免费观看| 蜜臀久久在线视频| 国产一区二区三区高清视频| 久久精品一区二区三区不卡| 99re99在线视频| 在线观看日韩av不卡| 动漫av中文| 国产欧美日韩一区二区三区| 啊啊啊啊二区好大| 国产精品ⅴ无码大片在线看.| 亚洲色图久久成人| 国产强奸乱伦第1页| 婷婷久草一区二区三区| 亚洲在饯| 精精夜夜| 亚洲无码超碰免费| 国产青视频| 日韩欧美大力操| 日本黄色裸日本黄色裸体| 欧美日韩黄片精品在线| 国产天天看| 精品成人亚洲午夜电影| 欧美国产操逼| 国产精品久久久鸭无码的功能| 爱丝福利| 激情文学网伊人| 久久永久无码人妻视频| 亚洲色图加勒比| 欧美日韩免费性爱| 精品欧美日韩在线观看| 亚洲图片偷拍视频区| 欧美se综合| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 特色a在线上| www四虎| 亚洲国产91精品一区二区久久| 97干天天| 久久人人爽人人爽人人片Ⅴ| 96精品久久| 欧美色九九九| 国产精品女久久久久av爽| 精品一区99999| 婷婷尹人大香蕉免费| 欧美午夜视频免费观看| 国产精品夜夜| 亚洲丰满很很操| 亚洲福利影院一区久久| 嗯嗯啊啊啊好舒服| 日韩无码黄色片| 91中文字幕在线观看| 久久黄黄| 日韩免费大片一级播放| 97久久久网站| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 大香蕉五月天婷婷| 探花视频免费观看国产专区| 亚洲 另类 丝袜 自拍 动漫| 久热大香蕉| 老外又粗又长一晚做五次| 国产精品电| 国产九九久久久精品| 少妇高潮特黄A片| 无码人妻1727| 大香蕉一人| 欧美熟女妇同| 黄色AV影视| 日本色色色色色视频| 欧美一级A一级a爱片久久| 9ⅰ久久久天天| 超碰97玖玖爱| 亚洲男人天堂Av| 在线无码操| 日熟女| 狠狠操狠狠操操| 中文字幕无码不卡啪啪| 91殴美大片| 久操大香蕉手机视频在线看| 韩国午夜理伦三级好看| 91性高朝久久久久久久久| 人妻熟女一区二区三区视频| 91美女看B| 伊人国产av| 黄色污污污污污污网站| 欧美在线播放aaaa| 国产一级作爱毛片| 九月激情婷婷| 日本黄大片在线观看视频| 青青操国产夫妻| 日韩欧美久久婷婷网站| 久久久久9| 97自拍一区| 久久精品天美| 色婷婷在线视频精品导航| 天天日天天插| 99九九精品| 国产成人久久久精品免费AV| 思思热影视| 亚洲 自拍偷拍 欧美| www.99色| 亚洲无码成人精品| 先锋影音av先锋一区| 日本国产欧美一区三区二区| 色与欲影视| 久久伊人影院| 亚洲色阁| 屁股久久久久久久| 91精品国产91久久青草| 尤物网站91| 超碰成人人人爽人人爽| 日本淫乱女一区二区三区视频| 久久久久久久9999| 大香蕉99999| 野狼福利社区| 亚洲熟伦熟妇AV无码春色| 亚洲av噜噜噜噜噜噜| 13小男生GAY自慰脱裤子| 国产粉嫩蜜臀av一区二区三区| 国产一区二区二区按摩精品啪视频| 亚洲情色视频| 最新亚洲黄色免费电影| 91久久久亚洲| 亚洲色图尤物视频| 欧美精品xxxwww| 欧亚性爱啪啪| 国产99 中文字幕日韩小视频| 这里都是精品在线观看| 人妻少妇色综合| 丰满欧美少妇| 刺激精品视频| 精品二区三四区五电影 | 欧美亚洲AN| 亚洲性感丝袜诱惑在线观看| 日本在线15p| 本道综合精品| 亚洲AV成人无码一二三久久| 国产成人亚洲精品无码古代早漏男 | www.超碰在线| 小草三级久久观看| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 亚洲综合一| 少妇三p| 黄片qw| 在线看免费无码AV天堂的| 六六久久日韩不卡| 欧美A√综合网| 老鸭窝在线视频播放| 97免费在线观看| 国产操伦| 人妻久久久| 美性中文综合网| 少妇的嫩逼图片| 国产亚洲精品A在线观看下载| 91快色色色色色| 日韩另类色图| 日本中文字幕熟妇| 欧美影院一区二区三区| 性爱乱伦网址| 欧美性后入| 色97欧美| 午夜男人av| 熟女丝袜视频| 中文字幕色AV| 一区不卡在线观看av| 97人人干| 97网址97| 亚洲天堂五月天国产| 韩国黄色片精品久久久 | 91在线超高颜值国产| 亚洲午夜免费狠狠干| 天天草AV| 国产在线观看91精品一区| www.婷婷五月天| 无码九九| 国产精品一级特黄aaa大片在线观看| 日韩免费人妻色情网站| 无码精品啪啪啪一区二区三区三州| 亚洲日韩人妻中文字幕一区| 色色五月天婷婷| 少妇人妻激情四射| 国产丝袜美女在线一区| 夜夜嗨AV一区天天| 伊人网在线点播| 国产极品美女高潮无套在线观看| 欧美色图亚洲色图成人在在线| 又黄又硬又粗又长国产视频| 日本一区二区三区四区免费观看| 大香蕉天天看妹子| 国产强奸乱伦第1页| 亚洲激情综合| 男人的天堂com| 亚洲免费人妻在| 啊啊啊啊啊啊啊网址在线观看| 无码人妻一区二区三区色欲aⅴ | 色偷偷综合91久久噜噜| 免费观看国产不卡av| 精久久久91| 亚洲AV麻豆Aⅴ无码电影一| 欧美日韩情色一区二区| 日韩超碰97| 狠狠久久亚洲欧美专区| 国产精品不卡少妇白| 婷婷综合在线| 中国特猛少妇色xxx| 婷婷五月天丁香花| 欧美色九九| julia高潮后不停追击中出| 国产精品伦理| 色色热| 亚洲黑人在线| 久久久久久久久久久97| 伊人天天久久动态图| 91人妻视频在线| 久久久久亚洲熟妇熟女| 亚洲蜜臀懂色| 久久这里是精品| 欧美亚州色的图| 操逼网站视频漫画国产| 成人夜夜| 六月婷婷综合| 日韩中文字墓| 一本一首道人妻少妇免费久久| 一级毛片久久久久久久女人18| 99色婷婷中文字幕乱色| 91艹B视频| 大香蕉2017| 啊啊啊好爽快点啊啊啊嗯嗯| 激情综合网亚洲| 一区| 亚洲精品成人激情在线| 超碰碰97资源站| 日韩天堂av电影在线观看| 色翁荡息又大又硬又粗又爽| 日日妻色网| 激情开心五月天| 天天日天天操天天射河南省| 淫骚熟女一区二区三区| 黄aaaaaaaaaaaaaaaaaa色网站| 日本二三四区| 97色97好| 人人插人人搞人人操| 久久精品久| 久久人妇| 久久麻豆一区二区| 欧美日韩色综合网| 精品少妇99| 精品一久久久| 亚洲免费看片| 99久久精品无码一区二区毛片免费| 亚洲欧美国产va在线| 丁香五月婷婷基地| 天堂俺去俺来也www久久婷婷| 亚州,欧美在线| 青青草视频久久久久| 黄色高清无码无码破解免费暗网| 欧美色女人| 国产人妻精品一区二区三区秋霞 | 囯产精品久久久久久久久久梁医生 | 久操综合在线| 色综合久久88色综合久久天天| 一起草视频在线| 日本超碰色精品| 天天透伊人| 曰韩成人免费视频| 中文字幕一区二区三区四区在线视频| 9.1小视频| 西西美女视频网| 丝袜美腿欧美| 影音先锋国产精品| 伊人精品久久网站| 天天躁日日躁狠狠躁| 91模特在线观看| 亚洲欧美精品久| 青草青青久久久久久国产| 午夜福利成人免费视频| 高清国产成人无码| 午夜啪| 91人人操| 91无码精品| 日韩精彩视频| AV99热18这里只有精品| 嗯嗯啊啊亚欧精品| 混色激情av| 99色热| 亚洲日韩精品在线播放| 中文字幕日韩人妻视频一区二区三区| 亚洲 无码 偷拍| 国产传媒日韩| 久久久日本电影| 国产精品白丝AV| 天天操熟妇| 视频黄站| 久久久精品中文字幕麻豆| 抽插爽| 男人的天堂色偷偷青青草视频婷婷网| 偷拍欧美综合| 97精品国产97久久久久久| 亚洲无码99| 五月婷婷深深爱| www.五月天| 五月天激情小说网| 色99视频| 992这里有精品| 嗯嗯啊操我| 超碰日本97美女人妻人人玩人人爱| 婷婷伊人綜合中文字幕| 丁香啪啪| 首页亚洲国产高跟丝袜诱惑视频| 色婷婷99| 在线黄页看毛片| 欧美大码在线视频| 日本一区二区三区精品| 丝袜喷水在线| 日本东京热大香蕉a片| 99re99视频在线免费观看| 久婷婷一区| 欧洲亚洲天堂精品| 色天使AV天堂| 国产97色在线 | 亚洲| 超碰诱惑| 国产免费一区2区3区| 激情黄色片在线观看| 久综合国内精品自在自线| 国产精品无码久久久久2028| 秋霞无码av鲁丝片一区| 麻豆国产96在线| 亚洲综合五月天| 亚洲有码 视频一区| 狠肏骚人妻| 男人的亚洲天堂| 日本道人妻久久久在线不卡色视频| 国产午夜精品一区二区三区牛牛| 欧美东京热青青草| 伊人操你| 日韩人妻一区二区精品| 精品国产一区二区三区av在线资源| 97精品国产97久久久久久免费| 人妻精品一区二区全免费| 高清不卡 中文 人妻| 在线看污网站| 91大神精品长腿在线观看网站| 一起草日韩| 激情五月婷婷| 操学生天天| 成人AV在线网站| 国产成年女黄特黄| 日本天天操| 伊人97超碰| 成人精品欧洲亚洲| 九九亚洲| 搡老人老9丨女老熟人| 成人情色一区二区| 蜜桃色院一区久久| 97碰久久| 女人 A一级| 懂色综合久久久| 丝袜高跟澳门91视频| 综合网91| 澳门特级毛片免费观看| 91视频观看网站| 亚洲 欧美 日韩另类 麻豆| 伊人操你| www.91色综合| 97超碰中文字幕| 黄色免费网| 国产99 中文字幕日韩小视频| 好吊色一区| 伊人超碰97| 黄色大香焦1级‘′‘| 欧美少妇第一页| 操熟女91| 日本一区二区不卡精品| 免费看污网站| 伊香蕉综合久久久久久久噜噜噜| www.黄色在线| 宗合情欲网| 日本一二区不卡| 精品超碰国产| 风月影院男女十八禁| 日韩欧美大片免费高清啪啪| 久久激情视频| 人乳av| 色欲蜜臀AV| 大香蕉色网| 欧美性爱第1 页| 久久人妻办公室视频| 九热超碰| 老司机深夜影院18未满| 欧美视频第二页| 亚洲无码 国产无码| 少妇二级| 九月伊人中文字幕| 综合久久婷婷| 99re这里只有精品2| 伊人女女资源在线观看| 久久久久久久六六| 草草影院日本第一页| 美女久久久久久久| 国产无码精品成人| 色盈盈影院| 国产高清视频无码在线| 欧美大香蕉在线观看| 亚洲精品97| 国产人妻精品久久久一区二区三区 | 91精品91久久久中77777| 色综合色欲色综合色综合色综合| 五月天亚洲网| 中国探花熟女| 欧美草草高清日韩视频| 九九色图| 日韩精品啪啪啪| 婷婷五月天成人| 超碰97 线线 在现| 99这里有精品| 操逼A∨| 日夜久久久九九九久| 99这里只有精品国产| 亚洲性少妇| 日本一级性爱| 日韩性色| 国产久久视频| 韩国一级婬片A片无码天美| 使劲用力艹少妇视频一区二区 | 青青草AV色| 免费观看欧美日韩操逼视频| 中文久久久| 日韩99神马视频播放| www.99中文字幕| 97久久超碰亚洲| 久久久久久夜夜夜夜夜| 欧美日韩性爱电影在线| 狠狠做深爱婷婷久久二区| 日韩av乱伦| 亚洲 暴爽 AV人人爽日日碰| 天美一二三在线观看Av| 国产传媒操逼视频| 国产9熟妇视频网站| 2001天天操| 精品九九国产无码| 久草色在线观看| 天天干天天日天天射黄色| 熟女这里只有精品6| 午夜福利一区二区三区四区五区色婷婷| www久久99| 成人一二| 玖玖爱伊人玖玖爱| 99中出在线| 3d成人精品一区二区| 中国少妇啪啪视频| 亚洲男人的天堂AV| 国内精品伊人久久久久影院会| 精品九九九九九九| 小骚逼被操的爽不爽| 五月婷婷无码| 激情五月天插| 亚洲熟妇A V黑人| 亚洲精品国产av天美传媒| 免费一级毛片在线视频观看| V A在线| 999久久芭蕾| 国产久久一区二区三区野外在线| 亚洲最新a在线观看| 天美传媒婬乱| 97射欧美| 精品小视频在线| 九九精品热| 日韩国产欧美伦理在线| 天天92av| 天天天堂影视日韩亚洲91| 精精夜夜| 国产免费一区二区在线A片视频| 91精品微拍福利| 91爱网| 91高清日| 成人一区二区三区四区| 日本91白丝| 十八禁啪啦拍视频无遮挡| 伊人精品久久网站| 东京热一区二区中文字幕| 人人搞人人插人人操| 伊人久久大香线综合无码| 一起草AV| 伊人五月天激情| 9国产超碰| 天天综合-91入口| 超碰97综合网| 后入式视频国产自| 91天堂视频| 一本正道久久熟女| 亚洲情色第一页| 婷婷综合网| 性色av婷婷久久一区二区点复制| 日韩簧片免费看| 性夜影院爽黄A爽免费动漫| 99re黄| 亚洲一区中文字幕| 久久久久九九九九九| 青草园大香蕉| 婷婷五月天无码 | 蜜桃视频一区二区三区| 人人操天天爽| 97精品国产97久久久久久免费| 97人人干| 99这里有精品视频| 日本一级一级一级一级| 免费视频a级毛片免费视频| 人人操人人大香蕉| 中文字幕成人理论在线| 亚洲少妇综合在线播放| 手机在线视频国内精品| 国产高清免费不卡av| 精品中文字幕第一页| 多毛小伙内射老太婆| 神马久久久久久伦理片| 在线一道啪| 熟女字幕| 欧美黄片视频在线观看免费 | 亚洲天天影视色综合| 天综合网欧美| 熟女露脸激情自拍视频| 欧美成人精品一区二区男人蜜臀| 超碰在线1234区| 97在线播放| 欧美熟妇精品黑人巨大91| 五十路熟女人妻一区二区在线观看| 亚洲影视综合| 日韩av性爱在线播放| 日本性爱欧美性爱| 懂色天天爱天天日天天射天天澡| 国产区性爱在线视频秋霞豆| 99精品成人免费看| 欧美日韩国产在线| 美女露胸露屁股|