日韩精品一区二区三区在线视频放-无码中文字幕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
返回資訊列表
亚洲91色| 中文?日韩?免费?精品| 美国黄片aaa| 青草伊人网| 亚洲欧美九九九| 啪啪啪精品| 性爱Av免费| 国内一区二区三区| www.一本大99| 精品久久久久久久久久久久 | 爆乳免费黄网站| 国产精品一二三免费网站| 亚洲欧洲无码97久久精品| 综合欧美日韩在线观看| 91视频伊人| 男女啊啊啊| 性交一区二区在线播放| 色爱欲亚洲| 国产精品一二三免费网站| 人人操肉肉| 翔田千里AⅤHD无码| 屁股久久久久久| 超碰免费欧美7| 97超碰无码网| 亚洲情色图片区| 国产原创精品| 午夜天堂精品久久久久91| 国产熟女免费观看久久| 一起草日韩| 国产综合在线视频网站| 五月天我淫我色av| av在线免费一区二区| 久久无码成人| 综合操逼| 亚洲一区二区三区欧美日韩| 99精品成人免费看| 亚洲第一在线视频| 五月天激情网图片| 97视频网站在线观看| 久久婷婷一区二| 久久熟女人| 亚洲欧洲小说图片视频 | 天综合网欧美| 好湿好紧视频| 97色色色| 日韩在线欧美精品一区二区| 国产精品一区二区校花| 97人人操人人摸人人爱| 中文字幕黑人大片| 天天日熟妇| 97国产中文| 欧美美女视频| 亚洲黄片免费在线播放| 日韩av一级黄片| 天天色综合天天操| 97视频620| 超碰视97中文| 91啪啪| 国产亚洲精品无码三区| 99这里有精品视频| 老女人老91妇女老热女| 人妻二区| 97综合在线| 天综合中文| 久久只有精品一区二区三区| 91日日夜夜| 一区二区三| 久久五月天婷婷丁香中文字幕| 亚洲av无码国产精品字幕| 人妻一区视频| 国产久久一区二区午夜| 国产熟妇一区二区| 亚洲综人| 欧美欧美啪啪视频| 欧美日韩操逼嗦吊| 91久久久老司机| 欧美丰满少妇交换91欧美精品| 校园春色亚洲| 中文久久爆乳| 丁香婷婷激情五月天无毒不卡| 亚洲日韩久久精品一区| 中文字幕在线观| 久久精品国产99久久,亚洲日韩久久日本一区一区三区 | 加勒比伊人| 中文字幕一区二区日韩网| 五月天黄色激情视频| 狠狠操狠狠| 欧美精品91| 日韩人妻无码不卡网站| 日本欧美一区二区三区免费| 色妹子A V| surenchaopeng| 色欲av国内精品久久久久久| 美女国产一区二区久久| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 亚洲福利影院一区久久| 久久99视频| 久久九九热| 激情 欧美 亚洲 小说| 久久久九九网站| 午夜精品久久久久久久99热影院| 欧美性夜| 亚洲成人网站在线观看| 四虎影视 亚洲无码| 日韩在线一区高清在线| 黄色成品网站| 欧美精品69性爱| 亚洲黄网在哪免费看| 无码99| 亚洲黄色电影| 天天视频黄网站| 欧美色97| 色踪合AV| 白天啪啪晚上啪啪视频| 综合 青草 伊久久 影院 综合| 蜜臀va69| 欧美国产日韩高清在线| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 亚洲天堂电影网| 天天射天天| 国产精品情侣啪啪| 思思热国产在线视频| 校园春色美腿丝袜 | 人人爽天天爽| 日韩欧美女优电影| 91操人| 超清福利精品视频在线| 嫩草影院在线观看精品| 怡春苑东京热| 91春色| 91午夜无码| 大香蕉伊人亚洲| 亚洲国产美女久久久久| 婷婷激情一区二区三区俺也去| 91亚洲网| 欧美综合色站| 国产精品女生av| 99久在线精品99re8a| 国产强奸91| 诱惑人妻欧美一区在线播放| av天堂天堂av日韩| 91女优在线观看 | 性色AV蜜色av色欲av| 精品久久久久,69国产成人精| 综合久久99| 青青草日逼视频| 免费人成毛片乱码| 亚洲偷91色| 精品性爱无码在线播放| 日本不卡在线二区三区| 欧美超碰96| 久久成人午夜精品影院| 易易A毛视频| 嫩草 人人网精品| 婷婷久草一区二区三区| 91热爆在线| 欧成人精品H无码| 久久久18禁| 欧洲熟妇xxXx欧美老妇裸体 | 欧美亚洲日韩人妻在线观看| 久久69精品久久久久久久| 亚洲系列欧美| 亚洲av夫妻操穴网| 亚洲最新av无码成人精品区 | 美女刺激久久国产欧美| 黄片在线免费在线观看| 日韩熟女操逼| 水多多映视AV| 久久精品女同亚洲女同13| 日韩免费人妻色情网站| 国产 无码 一区二区| 欧美日韩中文字幕人妻| 久久久96精品| 中文字幕熟女人妻丝袜| 大奶的诱惑| 中文字幕88av在线| 青青操青娱乐| 黄网色一区二区三区四区精品| 夜夜高潮夜夜爽夜夜爱爱一区 | 青操影院| 色月天AV导航| 九色97| 热99这里只有精品| 丝袜熟女一区二区三区| 天天视频黄| 97超碰影音| 神马久久网| www五月| 国产熟女完整版中字| 又大又大又大又粗爽高潮观看| 日韩中文字幕精品一二三事国产精品| 日韩二三区| 天天肏美女| 色999亚洲人成色| 欧美国产伊人久久久久| 日韩av影片在线观看| 亚洲伊人成综合成人网| 久久久性爱| 狠狠操,使劲操| 欧美国产伊人久久久久| 精品毛片av一区二区| 欧美色999| 国产97/欧美| 热热色色综合| 91网站在线播放| 激情图片亚洲色图| 久久蜜桃综合网| 99国产精品人妻人伦| 天天爽天天| 一区二区三区欧美激情| 99热欧美| 青娱乐日韩无码| a一区二区三区乱码在线| 久久精视频美日韩在线视频| 福利在线观看一区二区| 97视频在| 久久久久密臀视频| 亚洲日韩少妇一道本视频| 色五月天AV| 啊啊好多水| 青女在线| 干我久操| 视频国产精品未满十八禁止在线观看| 日韩无码黄色片| 欧美区亚洲区偷拍区| 成人午夜高潮av猛片| 思思热国产高清| 肉动漫无遮挡h在线观看| 黄色免费网| 精品久久久高清无码| 久久夜黄色无码A级大片| 国产精品视频麻豆入口| 91精品国产高清久久久久久,亚洲成人 | 中文字幕成人乱码熟女精品国50 | 国产亚洲综合欧美一区| 亚洲男人的天堂亚洲| 成人欧美日超碰| 岛国毛片在线观看免费| 国产有码一区| 婷婷探花久久精品一区| 夜色91| 婷婷久久五月综合激情| 国产精品成人无码a v毛片| 亚洲成人美女无吗| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 婷婷五月色| 欧美中文字幕男人天堂久久精品 | 亚州色综合| 久久激情五月| 伊人青青一区成人视频在线观看区| 九九九九九九九九九五码| 嗯~啊~快点 死我视频免费看网站| yazhououmeizongya| 麻豆美女丝袜人妻中文| 一区二区三区免费岛国片| 能看的av| 香港久久久| AV不卡在线| 久久久中文| 美欧老女人97| 亚洲丝袜少妇在线| 日本精品一区二区中文字幕| 欧美中文字幕一区| 一级性爱视频免费观看| 国产无套粉嫩白浆在| 91色图片| 欧美综合网在线| 手机看片1025| 日产成人久久| AAAAAAAAA黄片| 精品人妻一区二区乱码一区二区| 国产成人精品必看| 欧美黑人猛交春色影视大全| 伊人四虎综合| 成年女人黄网站| 黄页大片在线观看| 久操免费电影| 狠狠色噜噜狠狠狠狠狠色综合久久| 91在线美女| 中文字幕免费在线观看| 乱伦系列一区二区| 裸体1区| 亚洲在线| 久久日韩毛| 97色欧洲| 人人做人人妻人人夜视频| 精品国产乱码久久久兰草影视| 国产一级高清免费观看| 久操99| 欧洲精品二区| 日日干夜夜干| 中文字幕一二三| 久久婷五月| 性欧美| 亚洲欧美国产其他二区| 亚洲欧美综合网| 成人性爱美曰韩| 亚洲综合性网址| 欧美日产国产在线成人第一区| 亚洲色图加勒比| 国产精品人妻免费精品| 九九九九日本 | 亚洲天堂一区二区久久| 亚洲人精品久久久| 丁香五月激情五月| 午夜精品久久99蜜桃的功能章节| 精品人妻1237| 黄色av网站在线播放| 蜜桃精品视频一区| 亚洲成A∨人影院在线欢看| 亚洲极品| 男人天堂久久精品| 色哟哟综合| 60秒免费小视频| 91三级理论片播放器| 99这里只有精品| 五月丁香啪啪啪| 91国模| 97超碰色屌| 亚洲一欧洲中文字幕在线| 精品一区二区久久| 成人五月香网在线| 亚洲三区视频| 97久久精品| 校园春色宗合网| 色综合婷婷| 超碰91在线| 91av熟女人妻| 亚洲吊色| 大香蕉AV丝袜| 久久久久久久国产| 亚洲欧美国产其他二区| 91n处女在线观看| 一区二区三区网站日日骚| 久久69精品久久久久久久| 99国内熟女露脸视频| 国产免费一区在线观看| 视频国产成人精品日本亚洲18| 精品国产91久久久久久一区黄无| 丁香五月天啪啪| 9色国产精品一区粉嫩| 欧美色图97| 偷拍欧美激情| 中文字幕一区日韩精| 高清无码久操视频| 亚洲综合嫩| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 久久久亚洲熟妇熟女| 东北女人操比视频| 欧美极品女人的天堂| www.91理论| 亚洲无码 国产无码| 精品久久久一本一道| 91色综合激情| 人妻在线中出视频| 爱射综合| 一区二区三区黄色片a| 久久系列| 国产一线二线三线av| 精品中文日韩字幕视频| 欧美 青青草| 夂久色| 在线v中文字幕一区二区三区| 东京热一区二区中文字幕| 久久久一区二区三区麻豆| 国产十八禁视频| 在线啊啊啊啊| 久久黄黄| 97久久精品亚洲| 欧美99热| 欧美成人精品A片免费一区99| 综合久久99| 日本A级视频| 五月婷婷六月丁香网址| 欧美一区二区| 欧美激情亚洲情色| 蜜臀av中文字幕| 超硑97精品| 丝袜夫妻自拍| 9999伦理视频| 四季AV综合网址| 91N五十路| 97人肏| 色婷婷久久| 大香蕉久操| 可以免费观看的AV| av婷婷色网| 蜜臀亚洲中文| 韩国三级三级BD在线| JULIA人妻风俗店中出电影| 中文字幕视频在线观看一区二区| 一区黄二区黄| 青青操在线亚洲视频观看欧美在线| 久久精品视-一级做a爰片性色毛片16美国-中国女与老外在线精品 | 成人影院永久免费观看网址| 九九久久一区二区伦理| 国产网红精品| 俺去俺来也在线www| 日本 欧美 国产一区| 人成午夜免费大片| 日韩人妻精品久久久久| 青青青国产| 97欧美精品综合| 中文字幕国产| 欧洲亚洲人妻无码久久三区四区| 蜜臀久久99精品久久久久| 91老女人| 久久久久久亚洲中文| 激情干在线| 99ri在线视频| 看黑丝美女操逼青青网站| 啊啊啊在线观看免费视频| 六月天婷婷| 日韩八十路老熟女| 国产熟女一区二区| 国产偷仑| 亚洲另类色图片| 做爱福利视频一区二区| 久久精品操| 17c嫩草51久久91嫩草| 中国AV美女| 亚洲国产激情国产av| 欧美色棕合| 国产吹潮女在线观看| 久久久久久久久久久久97| 思思热在线视频在线| 久热香蕉精品在线视频| 亚洲天堂男人在线| 96久久久精品| 日韩福利电影网| 中国亚洲呦女专区| 禁十八久久| 啊啊啊啊在线观看网址| 粉嫩av平台| 美女91网| A 天堂| 国产精品一区av在线| 麻豆黄站| 久久久无码精品人妻二区| 国产精品白领在线观看| 插欧洲美女欧美精品| 丝袜狠狠草尤物人妻av91| 乱色老一区二区三区的观看方式| 操碰97| 探花精品视频| 青青草久久| 亚欧无码线免费观看视频| 亚洲熟女av日韩熟女| 午夜欧美J进J出白浆流出久久久| 国产精品久久| 男人的天堂,欧美亚洲另类国产日韩,日本高清一区二区 | 家庭乱伦国产精品| 久久色激情一区二区三区| 成人开心网在线视频| 成人无码在线超碰网| 欧美不卡在线美女| 亚洲一区二区AV| 国产成人网站在线观看| 欧洲一区二区三区四区在线观看| 国产精品毛片?v一区二区三区| 亚洲高潮少妇| 男人的天堂va| 嗯啊不要在线观看嗯啊| 日本免费一区二| 国产成久久综合片| 亚洲精品蜜桃久久久| 岛国色情视频在线观看| 中文字幕久久精视频久久大全| 91亚洲电影| 成人日韩欧美| 91丝袜在线播放| 天天做天天爱| 亚洲熟女人妻中文字幕一区二区| 久久久久久国产精品| 97欧美日韩精品| 99操碰| 99re6在线视频播放免费精品| 最新日产中文在线麻豆| 96精品一区| 日韩女模中文造逼| 清纯唯美激情| 久久久久密| 国产精品com| 四虎永久在线精品免费网址| 欧美一区二区一级岛国大片| 九九成人精品| 人人操人人操草草| 精品午夜福利| www.一本大99| 91c色| 人妻 欧美亚洲| 思思热免费视频观看| 少妇的嫩逼图片| 国产亚洲 中文欧美久久| 久久精品国产亚洲AV先锋| 真实高潮91| 国产免a费看黄片在线| 亚洲偷91色| 午夜人妻精品综合在线| 青娱乐999| 一区二区视频你懂的| 91精品啪在线观看国产城中村| 熟女高潮精品一区二区| 青青草在线成人视频| 日本狂喷奶水在线播放212| 国产精品动态一区二区三区四四| julia高潮后不停追击中出| 家庭乱伦国产精品| 欧美黑人与女人91| 久久男人网| 日韩中文字幕二区| 青青操网| 99视频自拍区| 亚洲综合影片| 天天色播| 国产精品一区av在线| 超碰色大香蕉| 青青草色情网站视频| 丁香婷婷啪啪| 啪啪视频亚洲第一| 加勒比海色香蕉婷婷| 91无摭挡| 色噜噜人妻丝袜AV资源| 久久婷婷视频| 国产69精品久久久久99尤物| 国产又黄又粗又猛大片| 欧美亚洲特P| 97一区二压| 久操视频免费在线观看| 91日本在线观看| 亚洲小电影免费涩涩成人在线高清| 99热一区二区三区四区| 综合大香蕉美。| 久久久久久久久久久久久久久乱码| 国产成人在线观看综合| 女人被男人桶爽视频网站| 色五月AV| 91亚洲网站| 91人妻久久久久久久久久久久久| 密臀AV在线| 情色日播放AV| 亚洲天堂,男人| 亚洲天堂热| HEYZO高无码国产精品227| 国产不良强奸视频免费看| 97香蕉网| 国产 日韩 欧美一区| 欧色网址| 91熟女在线| 精品天堂| 懂色Av一区二区三区| 91麻豆天美国产欧美高潮| 久久高清无码夜夜操| 蜜臀99999| 91欧美长吊| 嗯嗯,啊啊,国产精品| 亚洲……91| 亚洲nv男人的天堂网| 成年女人18级毛片毛片免费观看| 激情久久av一区av二区av| 亚洲系列第一页| 亚欧日韩成人| 亚洲人妻中文高清| 亚洲砖码砖专无区2023| 在线性黄高清免费视频| 久久老子无码午夜伦不卡| 人妻激情偷乱视三区频一区二区| 五月天黄色激情视频| 牛牛aV| 2024人人操人人摸| 99热综合在线| 少妇一区二区三区在线观看| 操逼999| 日本道日本道中文字幕日本道最新日本道在线观看 | 丝袜亚洲综合| 欧美在线色| 日韩中字av一区| 麻豆婷婷成人一二三| 裸体女人草逼视频播放一区,二区,三区,四区,五区 | 午夜啪啪片| 国产成人欧美一区二区三区的国产| 高清一区AV无码| 日本色色色视频| 91粉嫩萝控精品福利网站_精品影音先锋国 | 亚洲影院小综合| 日韩欧亚中文在线| 久久一二三四五六七八九区| 欧美九九九九九| 亚洲麻豆av一区二区| 午夜福利激情在线视频| 乱老女人一区二区视频| 色色色色色色色色色色色色色色综合| 国产SV一线| 九9精品| 狠狠91| 伦伦成年午夜免费视频| 色区久久| 啊啊啊好大好湿| 天天色综合影视网| 亚洲av国产av综合av卡| 久久九色| 九区国产| 日韩视频中文字幕| 天天干天天操天天干天天操| 人人乐大香蕉| 亚洲AV色图一区| 最新日本中文字幕| 中字乱伦AV| 男人的天堂色偷偷青青草视频婷婷网| 人人操人人操人妻人| 1000部熟女视频在线观看| 欧美日韩性爱操大逼| 青青草在线成人视频| 日本97久久| 97精品一区二区视频| 六十路日本| 青青青艹在线视频| 97超碰久久| 日本操逼视频在线| 午夜福利在线合集| 国产 日韩 欧美一区| 97色欧洲| 97久久超碰日韩精品| 老熟女搡BBBB搡BBBB视频| 九九激情网| 欧美久久久| 日韩 国产 欧美自拍| AA丁香综合激情| 国产精品乱码久久久久久久| 99久久久无码精品国产人| 夜夜操二区| 久草综合网| 美女国产一区二区久久| 超碰中文字幕人妻草一区| 人妻精品视频一区二区三区 | 成人热久久精品| 久久精品人妻一区| 五月丁香啪啪啪| 97中文字幕一区| 天天躁日日躁XXXXYY| 欧美熟女丝袜| 少妇3P性爱自拍| 国产亚洲色婷婷99精品91| 麻豆国产97在线| AV天天综合| 激情五月天中文字幕色| 天天操av懂色| 国产午夜精品理论片一二三区区 | 97综合国产| 女优视频第10页| 美女啊啊啊啊啊啊| 人妻久久久久久久久久久久久久久 | 日本精品一级二级三级| 亚洲色9| 一级毛片久久久久久久女人18| 自拍盗摄一区| 亚洲色图尤物视频 | 亚洲天堂中文字| 亚洲综合贴图91| 唐山老熟妇露脸啪啪叫| 亚洲精品久久久久久| 欧美日综合| 九色黄站| 欧美少妇第一页| 一区二区三区黄色片a| 成熟熟女国产精品一区二区| 国产熟女免费观看久久| 91久久婷婷| 综合国产97| 久久无码成人| 亚洲日本大香蕉1| 六月婷婷综合| 久久在线观看免费视频| 国产女人9999| 激情综合五月| 国产婷婷综合在线观看| 啊啊啊啊啊啊啊在线| 99热这里是精品| 日本久久女同性恋视频| 亚洲色图欧美另类在线| 日本岛国黄色网址| 在线日韩日本亚洲国产| 91老熟女老女人国产老太| 免费黄色A片| 精品九九| 免费草草草草草视频| 发朗少妇买婬全视频中文| 97超碰磁| 欧美97av| 九九自拍伦理| 日韩草久视频| 国产大学生口爆吞精合集| 天天干18禁| 亚洲天堂情色| 超碰79人人乐| 99久久久er直播网址| 亚洲另类天堂| 蜜桃臀一区二区三区久久| 中文啪啪视频| 亚卅熟女乱色| 九九热久久99精品re| 亚洲第一视频 欧美风情 日韩| 亚洲综合性感在线| 97福利视频| 超碰在线观看av不卡| 天天日夜干| 人人九九精| 操B久久| 中文字幕国产精品1区| 男人a天堂手机在线版| 翔田千里A片一区二区| 热G综合热G中文| 97色涩| 色噜噜国产在线| av在线资源| 全免费a敌肛交毛片免费| 欧美性xxxxx狂欢| 九九热av| 欧日韩一二三f区| 国产精品不卡一区二区三区| 岛国AV一区二区电影| 亚洲精品色| 国内精品伊人久久久久影院会| 男女做爰猛烈动高潮A片免费应用| 少妇无码999| 色九九久九九| 女人18精品一区二区三区| 欧美91网站| 亚洲永久永久永久永久一级一级一级精品| 99色视频| 大香蕉啪啪啪| 婷婷丁香在线| 亚洲色啪| 免费黄色视频网址| 激情五月天综合网| 六月天婷婷| 99热在线观看| 日韩有码一区三区| 色婷婷五月天| 国产丝袜视频| 欧美.亚洲.另类.丝袜.制服.诱惑| 久久精品99| 亚洲激情网| 屌逼传媒| 九九热精品免费视频| 亚州色图第三区| 中亚精品极乱| 伊人97色天使| 丁香婷婷激情五月天无毒不卡| 亚洲综合888| 99xav| 亚洲精品一区二区免费在线观看| 国产日韩人人| 久热99999| 性欧美| 欧美天天搞| 亚洲国产一级黄色视频| 91av熟女人妻| 国产精品无码av| 国产精品视频精品一二| 婷婷五月丁香五月| 天色综合网| 欧洲自拍色图gif在线| 国产热av| 蜜臀中文字幕| 一个人免费视频观看在线WWW| 八戒午夜福利理论片| 一区操逼日比视频| 操一区| 欧美嗯啊……在线观看视频免费| 夜夜国产一区| 久久一二三四五六七八九区| 欧洲精品一级二级精品综合视频综合| 一起草三级AV电影在线观看| 欧美经典一区二区三区 | 91亚.色| 欧美中出| 国产www色在线观看| 9 9精品一区二区三区| 刺激性视频黄页| 色欧洲97| 亚洲国产精品成人久久蜜臀| 久操网视频| 色婷婷在线视频| m欧洲一级午老| 男人天堂导航| 99久久久无码精品国产人| 日本精品第一视频在'| 男人天堂.AB| 久久久性少妇| 色欲三区| 亚洲激情久久| 我爱搞逼综合网| 97欧美色| 玖玖无码超碰| 超碰色综合| 亚洲最大AV网| 蜜奶av| 亚洲情色 自拍| 日韩精品在线放| 操一区| 在线情色电影 91大| 91夜色| 黄色高清无码无码破解免费暗网| 国精品一区二区三| 亚洲国产日韩精品久久久| 91丝袜美腿网站| 97在线无精品| 熟妇人妻一区二区三区| 日韩青久久| 欧美 日韩 亚洲 春色| 熟妇熟女亚洲天堂网| 日本国产二线女色| 国产日产精品久久快鸭的功能介绍| 九九九九九九九精品视频| 欧美丝袜美女电影一二三四区| 尤物av网站免费在线播放| 五月天激情四射| 台湾佬中文娱乐网久久久久久久久久com| 老司机福利青青草| 女优免费一区二区永久| 婷婷10月天青娱乐| 天天躁日日躁XXXXYY| 97丝袜亚洲在线播放| 黄色片A级一区二区三区| 熟女人妻av在线资源,黄色的资源| 亚洲中文字幕一区| 中日韩欧美精品无码AⅤ一区二区| 国产亚卅97| 国产午夜福利专区综合| 岛国小电影| 亚洲激情视频| 97精彩视频网站| 97天天摸天天碰| 亚洲丝袜制服国产91_国语字幕免费观看完整版下载第5集_ | 国产精品制服丝袜清纯唯美 | 亚洲 自拍偷拍 欧美| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 麻豆国产原创AV色哟哟| 91久久青青草原精品| 欧美性猛交美女自慰91| 欧美双插| 国产免费大片| 自拍偷拍 日韩欧美| 精爱久久| 大学生美女口爆| 亚洲欧美色图| 玖玖资源中文字幕制服丝袜| A级国产欧美激情在线| 日韩美女,国产传媒,视频一区| 激情色图| 天天插夜夜操| 91亚.色| 免费一级欧美片片线观看| 黑人精品欧美一区二区蜜桃| 去干网最新版| 国产美女自拍视频| 国产欧美伊人| 欧美色www亚洲国产阿娇要播| 久九九九九九九热| 18啪啪手机免费性爱| 亚洲色图 图片| 久草免费在线一区二区| 欧美春色| 精品国产污一区二区三区| 91丨九色丨国产丨人妻在线| 新精精品久久精品| 日本女人操逼| 思思久热在线精品66| 欧美性爱网97| 色综合九九| 国产一国产一级毛片古装| 日本啊啊啊啊啊视频| 99精品久久久久久久婷婷| 91日产桃蜜| 蜜臀AV一区二区三区激情综合| 日韩无码三级影院| 亚洲欧美校园| 日本999精品视频| www成人啪啪18秘 免费| 久久区| 91精品成人| 日本在线激情一区二区三区| 97亚洲综合影院| 亚洲自拍欧美色综合| 五月天激情网站| 370p日韩欧美亚洲精品| julia国产在线| 又摸又舔在线观看网站| 狠狠色色| 国产精品久久久久亚洲av| 青草一区二区| 使劲用力艹少妇视频一区二区| 亚洲另类在线观看| 密乳AV免费观看| 欧美中文综合| 日韩专区久久久| 少妇天堂网络| 91美女中出| 草草网站影院白丝内射| 欧美性天天| 人妻另类| 啊啊啊啊啊好舒服视频| 综精品久久久aaaa| 色色激情五月天| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 中文乱码字幕观看| 国产丝袜高跟美女av免费观看| 内射中出日韩在线观看视频| 中文字幕 国产 精品| 九九综合久久中文字幕| 欧美爱爱97| 一区二区三区一亚洲中文字幕、综合区灬 | 女人妻一区| 99精品网| 激情久久久| 成人美女av| 99re公开精品免费视频| 三级精品三级在线观看| 中文一区二区三区影院| 四方色播| 久久在肏| 天天躁日日躁狠狠狠躁| 日韩成人人妻网站| 囯产精品强| 99色骚| 天天色怡春院| 超碰97最新人妻| 午夜欧美神马久久久久| 97干色天堂| 欧美三级免费伊人| 干b在线性社区| 天天做天天爱天天爽AV| 久久亚州高清| 丝袜综合| 日韩午夜国产| 中文幕97| 亚洲图片 激情小说| 亚州欧美一区| 岛国999| 一本色道久久综合亚洲二区三区| 中文字幕乱偷人妻久久艾草网| 日欧毛片久久| 蜜臀无码一区二区| 不卡六六在线91| 91天天综合在线观看| 亚洲 欧美 日韩另类 麻豆| 亚洲图片视频小说| 91精品网站| 精品国产Av无码久久久伦古装| 热99这里有精品综合久久 | 国产高清自拍视频| 人人操人人爽人人操人人| 黄色免费一级在线毛片| 超碰国产精品无码| 亚洲午夜av| 涩涩这里只有精品视频| 91free福利| 97狠狠| 久久久久少妇| 亚洲A曰本VA欧美VA视频| 久久久久久久久久久久久久久久9| 亚洲乱熟女一区二区三区大香蕉| 国产AV高清AV无码| 天天欧美欧美亚洲网| 日韩人妻网站| 亚洲涩图欧美| 亚洲色人阁| 欧美A片中文字幕| 亚洲国产精品无码AV在线| 国产激情在线观看| 久久国产精品91| 校园春色亚洲无码| 婷婷国产精品一区二区| 乱伦日本中文自拍| 欧美系列在线一区二区| 女优视频第10页| 91丝袜激情在线| 亚洲 欧美 日韩另类 麻豆| 欧美亚洲中文| 亚洲精品无码成人久久久99| 婷婷综合激情| 超碰精品| 91精品导航| 欧美性爱无码一区二区三区| 中日高清无码操逼视频| 熟妇人妻一区二区 | 又粗又长又大国产不卡| 不卡一区二区日本视频| 日韩AV电影网站| 五月天亚洲网| 亚洲码在线中文在线观看| 激情看片网站| 骚熟女吞| 亚洲天堂欧美| 不卡啪啪视频| 久9久9精品| 九九九免费视频| 国产CHASE男男GAYGA 毛多色婷婷| 999久久久久久久精| 97在线观看视频| 福利操逼| 麻豆黄四叶草网站| 草草草草视频| 亚洲国产一区二区三区四区国产| AV天堂男人的天堂| 91肉丝| 亚洲激情网| 欧美日韩精品青青| 91午夜无码| 97久久精品亚洲中六字幕| 久久久久久久性爱| 色综合九九| 精品二区三四区五电影 | 久久人人看| 精品视频久久区| 正在播放国产精品一区| 日本三级小说中文字幕| 久久久久夜夜夜夜| 五月天伊人| 78m成人视线| 91黑人无码激情在线| 超碰免费欧美7| 精品中文字幕一区二区| 精品国产一区二区三区久久久蜜臀| 久夜视频| 男人的天堂2010| 欧美激情高清性猛交| 亚洲另类电影| 嗯嗯不要 视频| 激情四射五月天| 欧美丝袜亚洲| 爱射综合| 少妇淫妇久久久久久久| 91九色首页| 蜜臀99久| 2020视频1区2区3区| 黄页av| 91亚州日韩高清| 偷拍精品一区二区三区| 人妻天天爽夜夜爽爽| 凹凸视频在线一区二区| 久久蜜桃综合网| 国产Av超碰| 老女人碰碰在线碰碰视频| 亚洲囯产精品女人久久久| 九九九九九用不成了| 久久美女国产| 97欧美久久久久久久| 欧美日韩性爱视屏免费看了| 熟人人妻少妇精品久久| 欧美日不卡| 欧美不卡五十路| 美女主播色欲91抠b在线播放| 欧美 日韩 亚洲 春色| 夜色97| 丁香色五月 97干| 啊啊啊草死我| 一区麻豆 高清中文字幕| 欧美亚洲色图另类国产| 激情婷婷丁香网| 亚洲天堂,男人| 亚洲日韩在线a不卡99精品 | 青娱乐国产精品| 欧美激情亚洲| 嗯啊啊啊轻点视频 | 五月香婷婷| 操逼A∨| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 欧美女同在线| 精品国产乱码久久久久久久久1 | 我爱大香蕉| 超碰午夜| 青操影院| 超碰资源亚洲97| 天堂俺去俺来也www久久婷婷| 日韩BBN| 91最新综合| 亚洲精品中文字幕一区在线视频 | 亚州人妻| 激情综合网五月婷婷| 亚洲一级黄色毛片| 啊灬啊灬啊灬啊灬高潮奶出了免费视| 91狼人| 91伊人久| 人妻娇喘 激情视频| 亚洲精品色| 国产女乱淫真高清免费视频| 欧美激情高清性猛交| 天天看高清麻豆| 日本3级一区二区免费| 在线观看一级α片刺激高潮视频| 国产人人干| 国产精品久久久久久夜夜夜| 国产高清免费不卡av| 清纯唯美亚洲综合| 国产久久久久影院老熟女| 91碰碰碰| 亚洲高清无码在线桃色| 成人精品无码| 偷偷人人精品女女久久| 91九色丨国产丨爆乳| 99热91| 亚洲 国产 精品一区| 三级日本一区二区三区| 搡老熟女国产1000部| 亚洲情色一区三区| 亚洲第一页色| 久久性爱大全| 翔田千里无码一区| 96久久久久| 日韩91网| 综合天天。| 91色图片| 7月婷婷综合| 920日本午夜免费| 免费αV在线视频| 好涩综合| 九九九偷拍| 无卡一区=区| 在线观看一卡二卡| 影音先锋少妇| 人妻熟女一区在| 亚洲操逼视频网站| 欧美性爱精品七区| 亚州国产成人精品女人久久| 六月丁操逼| 顶级少妇BT天堂| 国产最新AV| 亚洲国产成人精品久久久国产成人一区二区三.| 亚洲天堂久久久久久粉红视频| 加勒比综合在线| 精品二区久久| 久久久精品中文字幕麻豆| 欧美日韩青操| 一区二区三区色综合| silk lablo在线观看一区二区| 久久欧美按摩999| 91九九九馒头| 亚殴在线| av操操不卡| 视频在线观看一二三区| 中文字幕亚洲在线一区| 搡老人老9丨女老熟人| 国产欧美岛国精品一区| 无码精品蜜桃一区二区三区ww| 亚洲中文字幕久久人妻| 国产亚洲性生活视频播放| 亚洲 日本 国产 综合| 日本免费一级AAA大片器| 国产亚洲中文不卡二区| a一区二区三区乱码在线| 乱伦a片视频| 综合影视国产无码| 免費黃色視頻觀看一| 国产人妻天天干精品| 99自拍视频在线观看| 日本天天操| 夜夜操老骚逼视频网站| 97视频观看|