国产成人欧美一区二区三区vr_久久国产精品人人爽人人爽_国产精品永久免费播放_肉欲啪啪a∨无码精品一区二区_国产超短裙jk丝袜在线_亚洲AV片高清资源在线观看_国模无码一区二区三区久久_国产成年人未进视频_中文字幕无码精品夜_一区二区三区在线视频免费看_亚洲成AV人片在线观看网址_日本激情视频高清综合久久_亚洲午夜视频福利_国内大量揄拍人妻精品視_久久国产精品福利二区三区

ARTICLE DETAIL

資訊詳情

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

昇騰NPU接入Kubernetes:從驅(qū)動(dòng)到device-plugin的完整實(shí)戰(zhàn)

昇騰NPU接入Kubernetes:從驅(qū)動(dòng)到device-plugin的完整實(shí)戰(zhàn) 把昇騰 NPU 接進(jìn) Kubernetes這句話聽(tīng)起來(lái)就是一行需求但實(shí)際上背后藏著一整條軟件鏈驅(qū)動(dòng)、CANN、Ascend Docker Runtime、device-plugin再加上監(jiān)控。任何一個(gè)環(huán)節(jié)沒(méi)對(duì)上NPU 在容器里就是“看不見(jiàn)、摸不著、調(diào)度不了”。最近在 CubeStudio 這套環(huán)境里完整跑了一遍昇騰基礎(chǔ)部署從裸機(jī)裝驅(qū)動(dòng)一直到 K8s 里跑通多卡訓(xùn)練中間踩了不少坑也把整條鏈路的邏輯徹底捋順了。這篇就按實(shí)操順序把步驟、原理和排查經(jīng)驗(yàn)一次講清楚適合正在做昇騰 NPU 容器化接入、或者準(zhǔn)備在企業(yè) K8s 集群里納管異構(gòu)算力的朋友參考。1. 昇騰 NPU 接入 Kubernetes 的整體思路1.1 容器要“看見(jiàn)” NPU繞不開(kāi)這三件事很多人第一次接觸這個(gè)需求時(shí)會(huì)覺(jué)得K8s 里調(diào)度 CPU、內(nèi)存這么成熟把 NPU 加進(jìn)去不就是多一種資源嗎實(shí)際上沒(méi)那么簡(jiǎn)單。Kubernetes 默認(rèn)認(rèn)識(shí)的資源只有 CPU 和內(nèi)存GPU 是依靠 device-plugin 以 Extended Resource 的形式上報(bào)給 kubelet再由調(diào)度器感知和分配的。昇騰 NPU 走的是同一個(gè)機(jī)制但底下的硬件和軟件棧比 GPU 更特殊一點(diǎn)。要讓容器真正用上昇騰 NPU必須解決三件事。第一件是系統(tǒng)層面能不能看見(jiàn)設(shè)備。昇騰 NPU 在宿主機(jī)上體現(xiàn)為/dev/davinci0、/dev/davinci1這類(lèi)設(shè)備節(jié)點(diǎn)外加一個(gè)/dev/davinci_manager管理設(shè)備。這些設(shè)備由驅(qū)動(dòng)程序創(chuàng)建驅(qū)動(dòng)沒(méi)裝好一切免談。第二件是容器層面能不能訪問(wèn)設(shè)備。即使宿主機(jī)能看到設(shè)備容器默認(rèn)是隔離的你必須在創(chuàng)建容器時(shí)把設(shè)備文件、驅(qū)動(dòng)目錄、CANN 相關(guān)庫(kù)都掛載進(jìn)去并且配置好運(yùn)行時(shí)環(huán)境。這一步在昇騰體系里由 Ascend Docker Runtime 自動(dòng)完成。第三件是調(diào)度層面能不能按卡分配。K8s 調(diào)度器不知道davinci0是什么東西需要 device-plugin 把節(jié)點(diǎn)上的 NPU 資源數(shù)量上報(bào)給 kubelet并負(fù)責(zé)在 Pod 啟動(dòng)時(shí)把具體的設(shè)備列表交出去。三件事環(huán)環(huán)相扣任何一層斷了都會(huì)表現(xiàn)為“資源有了但容器里用不了”或者“節(jié)點(diǎn)上明明有卡但調(diào)度不上去”。1.2 軟件棧分工驅(qū)動(dòng)、CANN、Runtime 與 device-plugin 各管一段整條鏈路可以拆成四個(gè)軟件角色它們各管一段職責(zé)非常清晰但都是缺一不可的。表格里列一下方便對(duì)照組件作用出問(wèn)題時(shí)的典型現(xiàn)象固件與驅(qū)動(dòng)初始化 NPU 硬件創(chuàng)建/dev/davinci*設(shè)備節(jié)點(diǎn)提供npu-smi工具宿主機(jī)npu-smi info報(bào)錯(cuò)找不到設(shè)備CANN Toolkit提供算子庫(kù)、圖編譯、運(yùn)行時(shí)等開(kāi)發(fā)能力類(lèi)似 CUDA 在 NVIDIA 體系里的位置訓(xùn)練時(shí)報(bào)算子不兼容、庫(kù)文件找不到Ascend Docker RuntimeDocker/containerd 創(chuàng)建容器時(shí)自動(dòng)注入 NPU 設(shè)備、驅(qū)動(dòng)庫(kù)和 CANN 環(huán)境變量容器內(nèi)沒(méi)有/dev/davinci*npu-smi無(wú)法執(zhí)行device-plugin向 kubelet 上報(bào)huawei.com/Ascend910等擴(kuò)展資源支持調(diào)度與設(shè)備分配節(jié)點(diǎn)資源數(shù)為 0Pod 調(diào)度失敗或分配不到設(shè)備以我實(shí)際部署的感受來(lái)說(shuō)最容易翻車(chē)的不是驅(qū)動(dòng)本身而是 Runtime 和 device-plugin 之間的配合。因?yàn)?Runtime 管的是“容器起來(lái)時(shí)設(shè)備在不在”device-plugin 管的是“這個(gè) Pod 被調(diào)度到節(jié)點(diǎn)后容器該用哪張卡”。如果只裝了 device-plugin 沒(méi)配 Runtime調(diào)度能成功但容器進(jìn)去發(fā)現(xiàn)/dev/davinci0不存在訓(xùn)練直接啟動(dòng)失敗而且報(bào)錯(cuò)信息還很不直觀。1.3 為什么用 CubeStudio 來(lái)做這套基礎(chǔ)部署CubeStudio 在我們的環(huán)境里是一個(gè)統(tǒng)一管理昇騰算力資源和部署流程的平臺(tái)它把所有碎片化的操作收斂成了可復(fù)用的流程。剛剛接觸昇騰 K8s 接入時(shí)可以完全靠手搓命令但如果集群規(guī)模變大、節(jié)點(diǎn)變多每次都去 SSH 到每臺(tái)機(jī)器上裝驅(qū)動(dòng)、改配置顯然不現(xiàn)實(shí)。CubeStudio 的價(jià)值在于把“節(jié)點(diǎn)納管 - 驅(qū)動(dòng)安裝 - Runtime 配置 - device-plugin 部署 - 監(jiān)控接入”串成一條標(biāo)準(zhǔn)的部署流水線任何新節(jié)點(diǎn)加入后能快速?gòu)?fù)制環(huán)境。當(dāng)然平臺(tái)只是把操作標(biāo)準(zhǔn)化了底層每一步的原理還是得搞清楚。下面所有實(shí)操內(nèi)容都是我在裸機(jī)環(huán)境下先手工驗(yàn)證過(guò)一遍再固化成 CubeStudio 里的部署流程的。接下來(lái)按順序拆解。2. 環(huán)境準(zhǔn)備與版本配套檢查2.1 硬件形態(tài)與操作系統(tǒng)選擇昇騰 NPU 的產(chǎn)品形態(tài)比較多。如果是 Atlas 300I/300T 推理卡通常是 PCIe 插卡插在通用服務(wù)器上如果是 Atlas 800 訓(xùn)練服務(wù)器一般是整機(jī)交付里面有多張昇騰芯片。不管哪種形態(tài)對(duì) Kubernetes 接入來(lái)說(shuō)看到的都是/dev/davinci*設(shè)備只是數(shù)量不同。操作系統(tǒng)方面昇騰官方支持的主要是 Ubuntu、openEuler、CentOS 等常見(jiàn)發(fā)行版但要注意 CPU 架構(gòu)。昇騰服務(wù)器大多是aarch64ARM 架構(gòu)也有少數(shù) x86 平臺(tái)驅(qū)動(dòng)包和 CANN 包都是分架構(gòu)的下載時(shí)一定要選對(duì)。我第一次部署時(shí)誤下了 x86 的 CANN 包在 aarch64 機(jī)器上直接提示架構(gòu)不匹配浪費(fèi)了不少時(shí)間。Kubernetes 版本建議選 1.26 以上的穩(wěn)定版因?yàn)樾掳?K8s 對(duì)擴(kuò)展資源的調(diào)度、設(shè)備插件的接口更成熟。如果集群還是用 Docker cri-dockerd 的舊模式或者已經(jīng)切換到 containerdRuntime 的配置方式會(huì)略有不同這個(gè)后面會(huì)單獨(dú)說(shuō)。2.2 版本配套關(guān)系是最大的隱形坑昇騰軟件體系的版本配套關(guān)系非常嚴(yán)格這是新手最容易踩的坑。驅(qū)動(dòng)、固件、CANN 三者必須滿足官方配套表的要求不是說(shuō)“驅(qū)動(dòng)是最新的就行”。比如某張訓(xùn)練卡固件需要 X 版本驅(qū)動(dòng)需要 Y 版本CANN 需要 Z 版本三者搭錯(cuò)一個(gè)輕則告警重則設(shè)備直接掛掉。我整理了部署前必查的幾項(xiàng)信息硬件型號(hào)npu-smi info能夠輸出芯片型號(hào)、固件版本、驅(qū)動(dòng)版本前提是驅(qū)動(dòng)已經(jīng)裝好。固件版本如果卡是全新的需要先刷固件再裝驅(qū)動(dòng)。CANN 版本工具包分為cann-toolkit、cann-kernels等一定要和驅(qū)動(dòng)版本、昇騰芯片匹配。torch_npu / MindSpore 版本后續(xù)要跑訓(xùn)練框架的話框架版本和 CANN 版本也要對(duì)齊。昇騰社區(qū)官網(wǎng)有“軟件配套表”里面有非常詳細(xì)的版本矩陣。我的建議是先確定要用什么訓(xùn)練框架PyTorch 還是 MindSpore再根據(jù)框架要求的 CANN 版本反推驅(qū)動(dòng)和固件版本這樣最不容易出錯(cuò)。2.3 安裝前三條硬檢查在開(kāi)始安裝之前我會(huì)強(qiáng)制自己在每臺(tái)節(jié)點(diǎn)上做三件事。第一確認(rèn)系統(tǒng)干凈。如果有舊版驅(qū)動(dòng)殘留直接用./Ascend-hdk-*.run --uninstall卸載干凈或者用npu-smi info看看是否已經(jīng)能識(shí)別設(shè)備。強(qiáng)行覆蓋安裝偶爾能成功但容易留下版本殘留。第二確認(rèn)內(nèi)核頭文件齊全。昇騰驅(qū)動(dòng)安裝時(shí)會(huì)編譯內(nèi)核模塊需要當(dāng)前內(nèi)核對(duì)應(yīng)的 kernel-devel 或 linux-headers 包。很多節(jié)點(diǎn)裝完系統(tǒng)后內(nèi)核升級(jí)過(guò)但頭文件沒(méi)跟上驅(qū)動(dòng)裝到一半就報(bào)編譯失敗。第三確認(rèn) BIOS 和 PCIe 狀態(tài)。用lspci | grep -i ascend或lspci | grep -i huawei看設(shè)備是否存在如果看不到設(shè)備先排查硬件插槽、PCIe 鏈路而不是急著裝軟件。這三條檢查五分鐘就能做完但能省下后面半小時(shí)的排錯(cuò)時(shí)間。3. 驅(qū)動(dòng)與 CANN 安裝實(shí)操3.1 安裝固件和驅(qū)動(dòng)在昇騰網(wǎng)站上按硬件型號(hào)和操作系統(tǒng)下載好固件包和驅(qū)動(dòng)包之后安裝命令很簡(jiǎn)單都是.run包執(zhí)行。以 Atlas 訓(xùn)練卡為例命令大致是# 安裝固件 ./Ascend-hdk-910b-firmware_6.3.3_linux-aarch64.run --full --quiet # 安裝驅(qū)動(dòng) ./Ascend-hdk-910b-npu-driver_23.0.rc3_linux-aarch64.run --full --quiet注意不同型號(hào)的包名不一樣910b只是示例。--full表示完整安裝--quiet表示靜默模式不給交互提示。裝完驅(qū)動(dòng)之后執(zhí)行npu-smi info如果能看到類(lèi)似下面的輸出說(shuō)明驅(qū)動(dòng)和固件已經(jīng)正常工作------------------------------------------------------------------------------------ | npu-smi 23.0.rc3 Version: 23.0.rc3 | -------------------------------------------------------------------------------------- | NPU Name | Health | Power(W) Temp(C) Hugepages-Usage(page)| | Chip | Bus-Id | AICore(%) Memory-Usage(MB) HBM-Usage(MB) | | 0 | OK | ...如果這里就報(bào)錯(cuò)先不要繼續(xù)往后走一定是驅(qū)動(dòng)或固件有問(wèn)題。3.2 驗(yàn)證驅(qū)動(dòng)并安裝 CANN Toolkit驅(qū)動(dòng)裝好之后npu-smi能看到卡只能說(shuō)明設(shè)備節(jié)點(diǎn)有了。接下來(lái)要裝 CANN Toolkit這是讓上層框架PyTorch、MindSpore能夠調(diào)用 NPU 算力的關(guān)鍵。CANN 的安裝包同樣是.run格式./Ascend-cann-toolkit_8.0.RC1_linux-aarch64.run --install安裝完成之后需要把環(huán)境變量加到 shell 配置里CANN 的set_env.sh腳本會(huì)幫你一次性配好所有路徑source /usr/local/Ascend/ascend-toolkit/set_env.sh建議把這一行寫(xiě)到/etc/profile或每個(gè)用戶的.bashrc里否則每次登錄都要手動(dòng) source。對(duì)容器場(chǎng)景來(lái)說(shuō)這個(gè)環(huán)境變量實(shí)際上不是由宿主機(jī)傳遞的而是由 Ascend Docker Runtime 在容器啟動(dòng)時(shí)注入的所以宿主機(jī)的環(huán)境變量配置主要用于裸機(jī)驗(yàn)證。3.3 驅(qū)動(dòng)、CANN 裝完后先做一次裸機(jī)驗(yàn)證很多人裝完 CANN 就直接跳到 K8s 環(huán)節(jié)這是不對(duì)的。至少要花五分鐘在宿主機(jī)上確認(rèn)“裸機(jī)可以調(diào)用 NPU”。最簡(jiǎn)單的驗(yàn)證是跑一個(gè) Python 腳本確認(rèn) torch_npu 能正常裝載并識(shí)別設(shè)備import torch import torch_npu print(torch.npu.device_count()) print(torch.npu.get_device_name(0))如果輸出正常的設(shè)備數(shù)量和名稱(chēng)說(shuō)明驅(qū)動(dòng)、CANN、torch_npu 三者已經(jīng)打通。這時(shí)候再去接容器化和 K8s排錯(cuò)范圍會(huì)小很多。我踩過(guò)一個(gè)教訓(xùn)當(dāng)時(shí)直接上了容器出了問(wèn)題排查了半天最后發(fā)現(xiàn)是宿主機(jī)裸機(jī)環(huán)境下 CANN 版本和 torch_npu 不匹配。如果先做裸機(jī)驗(yàn)證問(wèn)題在第一步就暴露了。4. Ascend Docker Runtime 接入容器運(yùn)行時(shí)4.1 Ascend Docker Runtime 到底做了什么昇騰的 Ascend Docker Runtime 在角色上很像 NVIDIA Container Toolkit。它的原理是Docker 創(chuàng)建容器時(shí)可以通過(guò)--runtime參數(shù)指定一個(gè)自定義 OCI Runtime這個(gè) Runtime 在真正啟動(dòng)容器進(jìn)程之前會(huì)把宿主機(jī)上的/dev/davinci*設(shè)備、驅(qū)動(dòng)目錄、CANN 庫(kù)目錄以及環(huán)境變量注入到容器里。所以它本質(zhì)上不是“讓 NPU 變快”的組件而是“讓容器看見(jiàn) NPU”的組件。如果沒(méi)配置 Runtime即使設(shè)備節(jié)點(diǎn)存在容器內(nèi)的 namespace 也看不到這些設(shè)備文件自然無(wú)法訪問(wèn)。安裝 Ascend Docker Runtime 很簡(jiǎn)單把包解壓到宿主機(jī)目錄然后配置 Docker。解壓后的目錄通常包含一個(gè)ascend-docker-runtime可執(zhí)行文件這就是我們要掛到 Docker 里的 Runtime。4.2 Docker 運(yùn)行時(shí)配置對(duì)于使用 Docker 作為容器運(yùn)行時(shí)的情況需要修改/etc/docker/daemon.json。這里有個(gè)細(xì)節(jié)昇騰官方提供的安裝腳本有時(shí)候會(huì)直接幫你把配置寫(xiě)好但也有時(shí)候只解壓文件。手動(dòng)配置的話格式如下{ runtimes: { ascend: { path: /usr/local/Ascend/Ascend-Docker-Runtime/ascend-docker-runtime, runtimeArgs: [] } } }配置完成后重啟 Dockersystemctl restart docker docker info | grep -A5 Runtimes如果配置正確docker info的 Runtimes 列表里會(huì)出現(xiàn)ascend。在測(cè)試階段建議先手動(dòng)跑一個(gè)容器看看設(shè)備是否注入成功docker run --rm --runtimeascend -it \ ascendhub.huawei.com/public/ascend-mindspore:latest \ npu-smi info容器里能看到 NPU 信息說(shuō)明 Runtime 生效了。4.3 containerd 場(chǎng)景下的配置如果你的 K8s 集群用的是 containerd現(xiàn)在主流版本基本都是不能只配 Docker還需要把昇騰 Runtime 接入 containerd。containerd 的配置在/etc/containerd/config.toml需要在 CRI 插件下面增加 runtime 配置。大致的配置段如下實(shí)際操作時(shí)版本不同格式會(huì)稍有差異[plugins.io.containerd.grpc.v1.cri.containerd.runtimes.ascend] runtime_type io.containerd.runc.v2 runtime_path /usr/local/Ascend/Ascend-Docker-Runtime/ascend-docker-runtime改完以后重啟 containerdsystemctl restart containerd這里要特別提醒K8s 1.24 版本之后默認(rèn)不再支持 Docker 作為運(yùn)行時(shí)除非額外部署 cri-dockerd所以新集群幾乎都是 containerd配置好 containerd 的 Runtime 是必須做的一步。有些部署文檔只寫(xiě)了 Docker 而沒(méi)寫(xiě) containerd照著做就會(huì)卡在容器起不來(lái)。4.4 驗(yàn)證容器內(nèi) NPU 是否可見(jiàn)Runtime 配完后除了用docker run --runtimeascend驗(yàn)證還要驗(yàn)證 containerd 環(huán)境下是否也能自動(dòng)注入??梢酝ㄟ^(guò)crictl工具創(chuàng)建一個(gè)測(cè)試容器或者直接跳到下一步用 K8s 的 Pod 來(lái)驗(yàn)證。我的經(jīng)驗(yàn)是越早驗(yàn)證容器層后面 device-plugin 出問(wèn)題時(shí)就越容易定位是調(diào)度問(wèn)題還是運(yùn)行時(shí)問(wèn)題。有一個(gè)細(xì)節(jié)要留神如果容器內(nèi)的鏡像沒(méi)有安裝npu-smi工具即使設(shè)備注入成功你也無(wú)法用npu-smi info檢驗(yàn)。所以驗(yàn)證鏡像要選昇騰官方帶工具的鏡像或者自己在基礎(chǔ)鏡像里拷貝一份驅(qū)動(dòng)下的npu-smi可執(zhí)行文件。5. device-plugin 部署與資源調(diào)度驗(yàn)證5.1 Extended Resource 機(jī)制K8s 怎么知道節(jié)點(diǎn)有 NPUK8s 官方留給異構(gòu)設(shè)備接入的標(biāo)準(zhǔn)接口是 device plugin 框架。device-plugin 是一個(gè)運(yùn)行在節(jié)點(diǎn)上的 gRPC 服務(wù)kubelet 啟動(dòng)時(shí)會(huì)去/var/lib/kubelet/device-plugins/目錄下尋找 Unix socket然后通過(guò)這個(gè) socket 和 device-plugin 通信。device-plugin 需要做兩件事第一向 kubelet 上報(bào)這個(gè)節(jié)點(diǎn)上有多少?gòu)?NPU 卡這個(gè)數(shù)字會(huì)體現(xiàn)在節(jié)點(diǎn)的allocatable里第二當(dāng) Pod 被調(diào)度到該節(jié)點(diǎn)后kubelet 會(huì)拿著 Pod 請(qǐng)求的資源數(shù)量問(wèn) device-plugin 要具體的設(shè)備 IDdevice-plugin 返回/dev/davinci0、/dev/davinci1這樣的設(shè)備列表和對(duì)應(yīng)的驅(qū)動(dòng)掛載信息。昇騰體系里擴(kuò)展資源的名稱(chēng)一般是huawei.com/Ascend910或者h(yuǎn)uawei.com/Ascend310取決于芯片型號(hào)。Pod 的 YAML 里只要寫(xiě)上resources: requests: huawei.com/Ascend910: 1 limits: huawei.com/Ascend910: 1調(diào)度器在看到這類(lèi)資源請(qǐng)求時(shí)就會(huì)自動(dòng)把 Pod 分配到有對(duì)應(yīng)資源的節(jié)點(diǎn)上。5.2 部署 Ascend device-plugin昇騰的 device-plugin 是以 DaemonSet 形式部署的也就是說(shuō)每個(gè)節(jié)點(diǎn)上跑一個(gè) agent負(fù)責(zé)上報(bào)本節(jié)點(diǎn)設(shè)備、響應(yīng) kubelet 的分配請(qǐng)求。部署前確認(rèn)幾件事節(jié)點(diǎn)上已經(jīng)配好 Ascend Docker Runtime或 containerd Runtime。節(jié)點(diǎn)驅(qū)動(dòng)已經(jīng)正常npu-smi info能看到設(shè)備。給節(jié)點(diǎn)打上標(biāo)簽方便調(diào)度和篩選例如kubectl label node node-name acceleratorhuawei-ascenddevice-plugin 的 YAML 大致如下具體鏡像名和掛載路徑以官方文檔為準(zhǔn)apiVersion: apps/v1 kind: DaemonSet metadata: name: ascend-device-plugin namespace: kube-system spec: selector: matchLabels: app: ascend-device-plugin template: metadata: labels: app: ascend-device-plugin spec: hostNetwork: true containers: - name: device-plugin image: ascendhub.huawei.com/public/ascend-k8sdeviceplugin:latest imagePullPolicy: IfNotPresent securityContext: privileged: true volumeMounts: - name: device-plugins mountPath: /var/lib/kubelet/device-plugins - name: ascend-driver mountPath: /usr/local/Ascend/driver volumes: - name: device-plugins hostPath: path: /var/lib/kubelet/device-plugins - name: ascend-driver hostPath: path: /usr/local/Ascend/driver這里需要解釋一下為什么要掛載/usr/local/Ascend/driver。device-plugin 需要訪問(wèn)宿主機(jī)驅(qū)動(dòng)里的某些模塊來(lái)獲取設(shè)備狀態(tài)和分配信息如果不掛載插件可能能啟動(dòng)但拿不到設(shè)備列表。部署完成后查看節(jié)點(diǎn)資源kubectl describe node node-name | grep -A5 huawei.com/Ascend910如果一切正常capacity和allocatable里會(huì)顯示對(duì)應(yīng)的卡數(shù)量。如果這里為 0多半是 device-plugin 的 Pod 有問(wèn)題去看日志。5.3 跑一個(gè)測(cè)試 Pod 走通全鏈路節(jié)點(diǎn)資源上報(bào)成功之后創(chuàng)建測(cè)試 Pod 驗(yàn)證整條鏈路。昇騰官方的推理或訓(xùn)練鏡像體積比較大但勝在環(huán)境齊全。我在 CubeStudio 環(huán)境里用的驗(yàn)證 YAML 大致是apiVersion: v1 kind: Pod metadata: name: ascend-test spec: restartPolicy: OnFailure containers: - name: ascend-test image: ascendhub.huawei.com/public/ascend-mindspore:latest command: [sleep, 3600] resources: requests: huawei.com/Ascend910: 1 limits: huawei.com/Ascend910: 1 securityContext: runAsUser: 0創(chuàng)建后進(jìn)入容器執(zhí)行kubectl exec -it ascend-test -- npu-smi info容器內(nèi)能正常顯示 NPU 信息說(shuō)明從驅(qū)動(dòng)到 Runtime 再到 device-plugin 的整條鏈路已經(jīng)打通。這時(shí)候如果直接用昇騰官方鏡像跑一段訓(xùn)練代碼比如用 MindSpore 跑 LeNet或者用 torch_npu 跑一個(gè)矩陣乘法能真實(shí)看到算力調(diào)用。5.4 用 Kubernetes Dashboard 發(fā)布測(cè)試服務(wù)在實(shí)際交付的時(shí)候很多運(yùn)維同學(xué)習(xí)慣用 Kubernetes Dashboard 來(lái)管理服務(wù)和 Pod而不是每次敲kubectl apply。這里有一個(gè)典型的使用場(chǎng)景想通過(guò) Dashboard 創(chuàng)建一個(gè)新的 Pod 作為新服務(wù)發(fā)布。具體操作路徑是這樣的在 Dashboard 的 Namespace 里選擇對(duì)應(yīng)命名空間進(jìn)入“工作負(fù)載 - Pod”點(diǎn)擊右上角創(chuàng)建按鈕可以直接粘貼 YAML也可以走表單。如果你走表單需要手動(dòng)填鏡像地址和資源請(qǐng)求但 Dashboard 的舊版本表單在“資源請(qǐng)求”里不一定支持huawei.com/Ascend910這種自定義資源所以穩(wěn)妥的做法是直接選“從 YAML 創(chuàng)建”把上面那份測(cè)試 Pod 的 YAML 粘貼進(jìn)去。另外要強(qiáng)調(diào)一點(diǎn)Dashboard 本身是一個(gè)高權(quán)限管理組件千萬(wàn)不要把它暴露到公網(wǎng)。企業(yè)內(nèi)部建議通過(guò) ingress 加認(rèn)證、或用 kubectl proxy 方式訪問(wèn)利用 KubeConfig 的 token 鑒權(quán)。之前安全圈通報(bào)過(guò)不少 Kubernetes 未授權(quán)訪問(wèn)漏洞很多就是 Dashboard 或 API Server 直接暴露在公網(wǎng)沒(méi)有開(kāi)啟 RBAC 限制。Kubernetes 只要配置了合理的 RBAC給 Dashboard 賬號(hào)只授予需要的 namespace 的只讀或指定權(quán)限就能避免大多數(shù)風(fēng)險(xiǎn)。6. 監(jiān)控體系搭建NPU 狀態(tài)可視化6.1 快速排查容器內(nèi)看 npu-smi接入 K8s 之后最基礎(chǔ)的監(jiān)控還是npu-smi。這個(gè)工具在宿主機(jī)可以看整機(jī)的卡在容器內(nèi)只能看到分配給當(dāng)前 Pod 的設(shè)備。如果容器內(nèi)執(zhí)行npu-smi info只看到一張卡而宿主機(jī)上明明有四張卡這是正常的因?yàn)?Runtime 只把分配給 Pod 的卡注入到了容器里。一條非常實(shí)用的命令是持續(xù)刷新當(dāng)前設(shè)備狀態(tài)watch -n 1 npu-smi info在訓(xùn)練過(guò)程中可以觀察 AICore 利用率、HBM 占用率、溫度、功耗這幾個(gè)指標(biāo)。利用率長(zhǎng)期低于 30%說(shuō)明算子下發(fā)或者數(shù)據(jù)讀取有瓶頸HBM 接近滿說(shuō)明 batch size 或者模型尺寸需要調(diào)整。6.2 Prometheus 導(dǎo)出器采集 NPU 指標(biāo)生產(chǎn)環(huán)境不可能靠人肉watch npu-smi需要把指標(biāo)接入 Prometheus 和 Grafana。昇騰的監(jiān)控方案有兩類(lèi)一類(lèi)是官方提供的 exporter另一類(lèi)是自己寫(xiě)腳本基于驅(qū)動(dòng)接口采集。官方 exporter 的部署方式一般是 DaemonSet在每個(gè) NPU 節(jié)點(diǎn)上跑一個(gè)指標(biāo)導(dǎo)出器暴露/metrics接口給 Prometheus 抓取。指標(biāo)包括 NPU 溫度、HBM 使用量、AICore 利用率、芯片功耗等。如果你暫時(shí)找不到合適的官方 exporter也可以用 Python 腳本每隔 5 秒解析一次npu-smi info的輸出轉(zhuǎn)成 Prometheus metrics 格式這不是最優(yōu)雅的方案但能快速解決問(wèn)題。Prometheus 采集端的配置只需要在scrape_configs里增加一個(gè) job選擇帶有ascend-exporter標(biāo)簽的節(jié)點(diǎn)scrape_configs: - job_name: ascend-npu kubernetes_sd_configs: - role: pod relabel_configs: - source_labels: [__meta_kubernetes_pod_label_app] action: keep regex: ascend-exporter打上標(biāo)簽、配置完 Prometheus再到 Grafana 里導(dǎo)入一個(gè) NPU 相關(guān)的 dashboard很快就能看到全集群 NPU 的實(shí)時(shí)狀態(tài)。我自己習(xí)慣把“卡健康狀態(tài)”“平均利用率”“溫度告警”放在一個(gè)面板上運(yùn)維同事看板子不需要懂昇騰細(xì)節(jié)也能快速定位問(wèn)題。6.3 訓(xùn)練場(chǎng)景的深層次監(jiān)控與性能分析Prometheus 監(jiān)控解決的是“節(jié)點(diǎn)活著嗎、卡忙不忙”的問(wèn)題但真實(shí)訓(xùn)練場(chǎng)景里還需要更深的性能數(shù)據(jù)。比如在跑 swift Megatron 大規(guī)模模型訓(xùn)練時(shí)經(jīng)常出現(xiàn)“卡利用率不錯(cuò)但整體吞吐上不去”的情況這時(shí)候必須看通信和算子層面的 profile。CANN 自帶的 msprof 工具可以抓取 NPU 算子耗時(shí)和通信耗時(shí)。在容器里執(zhí)行類(lèi)似msprof --output/tmp/profiling python train.py跑一小段時(shí)間后分析輸出的op_statistic和timeline能看到每個(gè)算子耗時(shí)、AICore 利用率、HCCS 通信等待時(shí)間等。這一步對(duì)于我們后期做分布式訓(xùn)練調(diào)優(yōu)非常有價(jià)值尤其是多卡并行時(shí)通信時(shí)間占比過(guò)高的話需要檢查單卡 batch size、梯度同步策略、是否啟用了混合精度等設(shè)置。還有一個(gè)小技巧用torch_npu跑 PyTorch 時(shí)torch.npu.synchronize()可以用來(lái)做計(jì)時(shí)基準(zhǔn)避免異步執(zhí)行導(dǎo)致的時(shí)間測(cè)量不準(zhǔn)。這個(gè)在評(píng)估單卡算子性能時(shí)很關(guān)鍵否則你會(huì)以為算子很快其實(shí)根本沒(méi)跑完。7. 常見(jiàn)問(wèn)題與排查技巧實(shí)錄7.1 device-plugin 上報(bào)資源為 0先看 device-plugin 的 Pod 日志常見(jiàn)報(bào)錯(cuò)是拿不到設(shè)備列表。這時(shí)候按順序檢查npu-smi info在宿主機(jī)上是否正常。device-plugin 是否掛載了/usr/local/Ascend/driver。節(jié)點(diǎn)是否打上了 device-plugin 需要匹配的標(biāo)簽。如果用的是 containerd 而不是 Docker要確認(rèn) device-plugin 的存活探針和 kubelet 通信正常。有個(gè)容易忽略的點(diǎn)device-plugin 是通過(guò) kubelet 的 socket 通信的如果 kubelet 啟動(dòng)時(shí)加了--feature-gatesDevicePluginsfalse老版本有這個(gè)參數(shù)或者 socket 目錄權(quán)限不對(duì)插件注冊(cè)不會(huì)成功。新版本 K8s 里DevicePlugins默認(rèn)開(kāi)啟一般不會(huì)遇到但排查時(shí)值得確認(rèn)。7.2 Pod 調(diào)度失敗提示節(jié)點(diǎn)資源不足明明kubectl describe node里顯示有 NPU 資源但 Pod 一直 Pending。大概率是以下原因Pod 請(qǐng)求的資源名和節(jié)點(diǎn)上報(bào)的資源名不一致。比如節(jié)點(diǎn)上報(bào)的是huawei.com/Ascend910而 Pod 寫(xiě)的是huawei.com/Ascend910B調(diào)度器自然認(rèn)為資源不存在。資源請(qǐng)求值超過(guò)了節(jié)點(diǎn)可用值。比如節(jié)點(diǎn)只剩 1 張卡而 Pod 一次性申請(qǐng) 2 張。節(jié)點(diǎn)被打了taintPod 沒(méi)有對(duì)應(yīng)的容忍。用kubectl describe pod查看調(diào)度事件是最快的排查方式事件里會(huì)明確寫(xiě)出為什么節(jié)點(diǎn)不可用。不要靠猜直接看調(diào)度器給出的事件信息。7.3 容器內(nèi)看不到/dev/davinci設(shè)備這個(gè)問(wèn)題的鍋基本在 Runtime。如果 Pod 請(qǐng)求了 NPU 資源調(diào)度和分配都成功了但容器內(nèi)沒(méi)有設(shè)備先確認(rèn)以下配置如果是 containerdconfig.toml里是否加了 ascend runtime。如果是 Docker/etc/docker/daemon.json里runtimes是否配置了ascendDocker 是否重啟。Pod 創(chuàng)建時(shí)是否實(shí)際上用了默認(rèn) runtime 而不是 ascend runtime。有些環(huán)境里 device-plugin 分配了設(shè)備但 Runtime 沒(méi)有生效設(shè)備自然進(jìn)不到容器。容器鏡像里是否真的存在/dev/davinci*的掛載位置。設(shè)備文件由 Runtime 在啟動(dòng)時(shí)創(chuàng)建在容器內(nèi)和鏡像無(wú)關(guān)但如果沒(méi)有 Runtime 介入容器內(nèi)自然沒(méi)有。排查時(shí)可以先在容器內(nèi)執(zhí)行l(wèi)s /dev/davinci*如果提示 No such device再去宿主機(jī)上檢查 Runtime 配置效率最高。7.4 CANN 算子報(bào)錯(cuò)與版本不匹配這是所有問(wèn)題里最隱蔽的一類(lèi)。訓(xùn)練時(shí)算子報(bào)錯(cuò)或者無(wú)法識(shí)別的設(shè)備類(lèi)型搜索結(jié)果會(huì)指向 CANN 兼容性問(wèn)題。昇騰的版本矩陣非常嚴(yán)格尤其是 torch_npu、CANN、驅(qū)動(dòng)固件三者之間。排查思路是npu-smi info # 看驅(qū)動(dòng)和固件版本 cat /usr/local/Ascend/ascend-toolkit/latest/version.cfg # 看 CANN 版本 pip show torch-npu # 看 torch_npu 版本三者對(duì)不上直接去昇騰社區(qū)查配套表。出現(xiàn)這類(lèi)問(wèn)題不要浪費(fèi)時(shí)間猜原因版本矩陣是明規(guī)則照著改就完事了。7.5 安全與權(quán)限相關(guān)的幾個(gè)坑最后說(shuō)幾個(gè)實(shí)際部署中容易忽略的安全問(wèn)題。昇騰驅(qū)動(dòng)和 CANN 的工具鏈很多需要 root 權(quán)限容器里跑訓(xùn)練時(shí)如果鏡像內(nèi)沒(méi)有普通用戶可以加securityContext.runAsUser: 0臨時(shí)解決但生產(chǎn)環(huán)境建議在鏡像里創(chuàng)建專(zhuān)用用戶結(jié)合 PSP/Pod Security Admission 限制 root 權(quán)限。Kubernetes Dashboard 這類(lèi)管理組件必須配合 RBAC 最小權(quán)限使用。不要圖省事給 dashboard service account 綁定cluster-admin否則一旦 Dashboard 被未授權(quán)訪問(wèn)整個(gè)集群就危險(xiǎn)了??梢栽诿臻g級(jí)別授予只讀權(quán)限或者使用臨時(shí) token 登錄。集群網(wǎng)絡(luò)層面也要限制 Dashboard 只允許內(nèi)網(wǎng)訪問(wèn)不建議直接暴露 NodePort 到公網(wǎng)。最后再分享幾個(gè)實(shí)戰(zhàn)中的小習(xí)慣昇騰 NPU 接入 Kubernetes 這套流程跑通之后維護(hù)成本主要在版本升級(jí)和節(jié)點(diǎn)擴(kuò)容上。我個(gè)人的經(jīng)驗(yàn)是每次有新的驅(qū)動(dòng)或 CANN 版本發(fā)布先在測(cè)試節(jié)點(diǎn)上完整跑一遍“驅(qū)動(dòng) CANN Runtime device-plugin 訓(xùn)練驗(yàn)證”確認(rèn)沒(méi)有問(wèn)題再推到生產(chǎn)節(jié)點(diǎn)千萬(wàn)不要直接在線上批量升級(jí)。節(jié)點(diǎn)擴(kuò)容時(shí)如果新節(jié)點(diǎn)加入集群后 device-plugin 的資源沒(méi)有顯示先不要急著重啟 kubelet檢查一下新節(jié)點(diǎn)的驅(qū)動(dòng)是否安裝、是否和已有集群節(jié)點(diǎn)版本一致。昇騰設(shè)備在集群內(nèi)保持版本統(tǒng)一很重要混用驅(qū)動(dòng)版本雖然短期能跑但后續(xù)大規(guī)模訓(xùn)練時(shí)容易出現(xiàn)隱性故障。另外一個(gè)小細(xì)節(jié)給 NPU 節(jié)點(diǎn)設(shè)置資源預(yù)留時(shí)要留出 CPU 和內(nèi)存給 device-plugin、exporter 本身體面運(yùn)行否則節(jié)點(diǎn)資源緊張時(shí)基礎(chǔ)組件的 Pod 可能被驅(qū)逐影響設(shè)備上報(bào)和監(jiān)控采集。調(diào)度器層面可以通過(guò)在 device-plugin 的 DaemonSet 里設(shè)置tolerations和priorityClassName來(lái)規(guī)避這類(lèi)問(wèn)題。這套部署方案目前在我們 CubeStudio 環(huán)境里已經(jīng)穩(wěn)定運(yùn)行了一段時(shí)間支撐了從單卡推理到多卡 swift Megatron 訓(xùn)練的各種負(fù)載。希望這份實(shí)操記錄能幫你少走一些彎路。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
oumeisetu综合| 亚洲情色 欧美| 91久久国外网| 久久↗↗| 亚洲国产97| 日本成a人v网站在线观看| 新亚洲无码| 95自拍视频在线观看| 人妻熟女av国产网站| 中文字幕在线观看丝袜| 97碰碰日本乱偷人妻中文的| 中国91AV| 熟妇的味道HD中文字幕| 麻豆视频test| 操老熟女AV| 欧美夜夜| 色婷婷小说| 青青操在线亚洲视频观看欧美在线| 热热热热日日漂亮永久永久国产日| 超碰97.com| 99热伊人| 亚洲九月丁香| 男人把坤坤插入女人的下体| 亚洲色图欧美一区二区不卡| 欧美九9 9 9| 青青草视频久久久久| 丁香7月婷婷| 欧美gv在线观看| 欧美精品999| 青青草啪啪网| 精品一区二区三区免费古装毛片香港三级日本三级人妇 | 97 色综合| 中文字幕一区二区三区高清| 久久久一热在线播放| 97精品久久久久中文字幕| 91丝袜在线观看| 凹凸视频特色日本特黄| 久久久成人精品| 91精品国产91综合久久蜜臀| 九月丁香| 人人妻人人澡人人爽人人精品浪潮| 96精品久久久| 人妻乱仑一区二区三区| 欧美国产一区二区三区麻豆传媒 | 欧美亚洲天天| 亚洲欧美日韩二区视频| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 婷婷五月花| 久久久久9999精品九九九| 欧美一区二区三熟女剧情| 亚洲精品视频在线播放| 97视频620| 91亚洲欧美激情| 91丝袜在线观看| 免费在线黄片视频| 日日A∨| 校园春色 亚洲| 国产精品宅男免费| 大香蕉日韩欧美| 精品国产一区二区三区在线播出| 澳门成人网站久国产日韩| 综合自拍| 亚洲.欧美.丝袜.中文.综合| 男人的天堂久久狠| 免费无码国产精品v片在线观看| 久久久999日本大片| 2019亚洲男人天堂| 日本午夜久久电影| 日本久久久精品电影| 日韩欧美国产一区二区三区四区| 久久爱超碰网| 免费看黄视频亚洲网站| 亚洲色悠悠久久88| av在线免费一区二区| 91中文精品日韩欧美在线| 免费精品无码一级毛片牛牛影视| 美女刺激久久国产欧美| 亚洲 暴爽 AV人人爽日日碰| 人妻日日夜夜精品| 四虎AV在线观看| 日本精品不卡一二三区| 亚洲风情综合网| 日本国产欧美高清在线| 超碰色图| 狠狠爱夜夜干| 深田咏美亚洲精品福利社| 97精品综合久久网| 夜夜爽妓女| 夜夜草网站| 激情文学亚洲| 99精品视频在线观看| 日本一二三免费久久| 嫩草影院性色| 欧洲精品欧洲精品| 丁香婷婷啪啪| 人人妻人人澡人人爽人人精品浪潮| 久久丁香五月天| 亚洲小说视频| 欧美乱色| 国产三级资源在线观看| 91精产一区二区三区| 看一级特黄a大一片| 亚洲天天影视色综合| 99热99在线播放激情| 久久久久久久9最新免费视频观看| 少妇干B| 中文字幕午夜精品久久久| 欧美很很操视频| 亚洲国产福利视频| 婷婷久草一区二区三区| 国产中出内射一区二区| 麻豆精品A片免费观看| 大香蕉免费3| 9精品久久| 五月婷久久| 天天92av| 性性久久| 99久热| 超碰97久久| 超碰天天操你比| 99久久久久久久久| 久热热| 亚洲色图 欧美热图 清纯唯美 另类自拍| 强奸乱伦 亚洲一区| 超碰538| 亚洲AV无码国产精品久久久久| 九九热re99re6在线精品| 久久精品免费| 六月婷婷综合| 亚洲成人激情小说视频| 99re在线视频国产| 亚洲天堂色图| 亚洲aV性爱| 熟女探花啪啪| 亚洲熟妇AV日韩熟妇在线| 亚洲激情综合| 国产黄片精品在线| 91狠狠综合| 99re6在线视频精品免费完整版安卓版| 激情综合网五月婷婷| 色色色日本| 国产成人精品一区| 欧美综合制服在线| 九九成人视频| 密乳AV免费观看| 天天摸天天操视频| 亚洲欧美日韩国产丝袜自拍中文| 狠狠干综合| 亚洲精品一区二区精品| 精品视频在线观看| 九七超碰人人乐| 九九热这里只有在线精品视 伊人草 成人菠萝蜜视频在线观看 | 嗯嗯啊啊好爽| 欧美丝袜美女电影一二三四区| 熟女人妻av在线资源,黄色的资源| 久久精品中文字幕观看| 91精品导航| 60秒免费小视频| 很很干很很操| 操婢日韩| 2019精品国产无码成人| 久久这里只| 91激情网| 美女诱惑在线一区| 欧美午夜精品久久久久久超碰| 婷婷丁香九月| 国产精品香蕉| 超碰97 线线 在现| 一区二区三区男人的天堂| 性爱AV天堂| 色色色色色色色色色色色色色色综合| 久久色情| 欧美日韩操逼嗦吊| 欧美午夜视频精品久久| 国产91福利小视频在线观看| 超碰97人妻| 有码专区最新中文字幕有码| 色偷偷超碰亚洲| 国产熟女二区| 色女99一级片在线观看| 超碰久久中文| 久青草影院| 免费a在线播放v| 色婷婷六月丁香七月婷婷| 日韩综合色图| 97美日韩视频| 97亚洲综合在线| 亚洲欧美日韩中文久久自慰| 操亚州| 久久久不能久久久久| 麻豆精品久久久久久久| 夜夜肏2021| 日韩女模中文造逼| 午夜福利免费福利视频| 欧美色婷婷| 拍拍拍拍大尺度黄色三级片拍拍拍拍拍照| 激情久久av一区av二区av| 亚洲国产成人7777| 欧美一区二区三区互相| 久久久久久亚洲Av无码精| 丝袜AV一区二区三区| 91天堂丝袜美腿| 欧洲精品久久| 白丝AV网站| 蜜色网色哟哟| 天堂无码精品国产久| 亚洲天堂AV在线播放| 国产精品成人久久一区二区三区| 热无码中文亚洲H一道本一区二区| 天天上日日上日韩精品| 自拍偷拍第26| www.大香| 五月丁香成人网| 夜间福利片1000无码| 中国一区二区亚洲人妻| 国产亚洲精品第一最新| 精品国产久热在线观看| 黑丝少妇在线观看| 欧美日本天堂| 激情小说亚洲视频| 四虎免费在线播放| 夜夜夜夜久久久久| 免费观看一区| 性无码专区2020| 日韩免费av片高清无码| 久久综合资源一区二区| 91精品国产高清久久久久久,亚洲成人 | 玖玖色综合| 伊人天堂在线| 免費人妻夜夜爽天天爽爽一区| 2020中文字幕在线观看| 国产精品久久久777| 亚洲综合成人网| 亚洲第2页| 国产欧美岛国精品一区| 狠狠干狠狠色| 亚洲狼狼干综合1| 神马久久久久久久久久| 婷色五月| 91网亚洲| 亚洲国产成人精品女人久久久| 操淫穴亚洲五月丁香| 天天天操天天天爱| 亚洲美女AV无码| 日本欧美韩国国产在线| 99色婷婷| 欧美一区二区传媒| 国产九九九九九九| 久久超碰国产一区二区三区| 中国一区二区亚洲人妻| 歐美一級亂黃99在綫精品| 久久久久久久久久久久久久久久9| 欧美综合777| 97超碰欧美精品| 一本色道无码DVD中文字幕| 精品亚洲| 人人干人人搞人人摸| 色五月婷婷中文字幕| 天天淫人人妻日日色| 91 国产丝袜在线放观看| 97超碰总站| 日本熟妇人妻一区二区三区| 91操人视频| 国产精品亚洲免费| 免费网色网站| 日本天天干天天操一区| 日韩在线性爱免费视频| 家庭乱伦网站国产| 中文高清一区二区的| 国产精品久久久久久9999| 岛国不卡超碰护士AV在线播放| 久夜操| 国产精品永久免费10000| 日韩性爱高清免费视频| 亚洲熟妇丝袜在线观看| 九九九只有精品| 亚洲欧美一区二区网址| 女人爽到高潮潮喷18禁网站| 性爱AV天堂| 91欧美情色| 欧美aaaaaaa| 久久久人体| 手机av亚洲丝袜美腿日韩第一页二页| 丝袜人妻av一区二区| 国产伦精品一区二区三区在线观 | 啊啊啊啊啊啊好多水| 久久久99999久网站| 亚洲色阁| 日韩黄色成人性爱| 欧美激情精品久久久| 中文字幕国产在线天堂| 中文字幕亚韩| 加勒比东京热五月天天堂网| 狠狠久久手机视频精品| 日韩人体偷拍| 久久久极品| 家庭乱伦网站国产| 青青操在线亚洲视频观看欧美在线 | 日本黄色裸日本黄色裸体 | 女人 A一级| 狠狠中文字幕| 欧美一二级| 国产91亚洲精品一区二区三区| 亚洲天堂热| 天堂网 主播 亚洲| 国产成人精品必看 | 国产精品欧美激在线| 啊啊啊久久| 久久久久国产一区二| 国产精品一区二区后入| 天天艹天天日| 久久神马影院| 亚洲日韩美女丝袜美腿人妻视频| 狠狠狠狠狠狠| 日韩欧视频| 一起草精品人妻| 另类专区加勒比| 亚洲伊人a线观看视频| av操操不卡| 亚洲激情色片| 午夜亚洲WWW湿好大| 色婷婷成人综合| 国产精品福利视频| 欧美日韩情色一区二区| 国产精品内射婷婷一级二| 欧美色图天堂在线| 91丝袜在线播放| 五月激情小说| 国产后入| 久久久啊啊| 春色综合网| 懂色AV蜜臀无码精品APP| 亚洲综合射| 亚洲精品无码久久AV| 91久久18禁| 人人艹亚洲| 91爱看| 精品久久无码午夜福利| 久热精品色情| 2017人人操,人人摸| 91精品婷婷国产综合久久竹菊| 最新日日夜夜天天干干| 亚洲日韩东京热一区| 亚洲中文国际强奸字幕| 久久老熟女| 久久久久13| 国产在线综合福利网站| 另类成人首页一区| 亚洲无码国产精品久久| 熟女网站最新| 国产成人网站在线观看| 欧美综合网在线| 殴美,日韩国产伦精品| 91精品人妻一品二品三品| 116美女午夜| 夜夜草我| 噜噜噜亚洲精品| 日韩乱伦视频| 成人性生活高清视频在线播放| 日韩免费人妻色情网站| 国产狂喷潮在线精品| 加勒比AV天堂| 久久五月丁香| 人妻少妇久久中文字幕一区二区 麻豆 | 九月丁香婷婷| 91亚洲色人| 中出在线视频| 920日本午夜免费| AV乱伦专区| 国产欧洲精品亚洲午夜拍精品| 丁香五月性| 亚洲精品99999| 又黄又粗又硬又长又大| 久久精视频美日韩在线视频| 国产品精品自在在线午夜免费 | 99少妇| 人人澡人人爽人人精品| 亚洲系列第一页| 精品无av| 亚洲色图美腿丝袜| 大香蕉宗合网在线| 国产精品 久久久精品一牛| 中出20p| 亚洲伊人久久精品狠狠在线| www.大香| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 玖色AV| 欧美呦呦性爱| 男人天堂新| 成人熟女区| 狠狠色婷婷| 国产成人 综合亚洲 天堂| 在线色资源| 好爽,再快点啊哈嗯嗯嗯嗯| 国产精品久久久无码AV网站| 大香蕉中文| 人妻精品一区二区| 91 丝袜在线| 96超碰网| 人妻天天操天天爽视频免费| 熟女精品日韩一区二区三区| 综合日韩激情另类图片| 91色色色| 人人妻人人爽 97人人看碰人免费公开视频| 去干网最新版| 大香蕉www.超碰| 欧美日韩不卡传媒| 欧美夜色| 91蜜臀在线久久久久| 色综合久久88色综合久久天天| 91狠狠综合| 色香91| 一区,二区,三区视频| 久久人妻办公室视频| 岛国免费黄色网址| 手机看片91人妻| www.91视频网| 精品少妇人妻一区二区三区| 美女主播色欲91抠b在线播放| 亚洲宅男天堂| 欧美黄片视频在线观看免费 | 国产亚洲一黄| 色狠狠综合| 国产精品免费美女视频| 日韩欧美午夜一区二区| 国产1024在线播放| 青青草中出视频 | 黄色网址久久精品欧美喷水| 久久人人看| 激情综合二| 国产操逼视频在线观看| 日本影视久久免费| 麻豆精品一区二区三区四区免费观看| 97亚洲综合在线| 碰人碰碰人人开房人肉| 91N综合网在线| 青青操在线亚洲视频观看欧美在线 | 少妇人妻在线| 亚洲久久东京热一二三四五区视频| 欧美白嫩女HD| 在线黄色污污网站| 亚洲综合图文| 欧美极品少妇交| 成人午夜无码视频| 日韩国产中文字幕| 中文字幕av乱伦| 国产高清成人传媒影视| 特级毛片特黄久久免费看| 天天草夜夜草高潮片| 东京热毛片177b2viP| 9久热这里只有精品| 日本黄色精品| 97精品在线视频| 天天网综合| 欧美 亚洲| 午夜九九九九九九| 亚州高清AV| 欧洲精品二区| 欧美综合天天| 亚洲欧美高清无码| 先锋影音av先锋一区| 色屁屁影院www国产| 日韩精品中文字幕人妻| 成人怡红院| 东京热一区二区中文字幕| 超碰午夜| 麻豆国产视频精品观看| 亚洲午夜福利在线影院| www成人啪啪18秘 免费| 欧美日综合| 亚洲少妇色| 91人妻视频在线| 性欧美体内射精| 国精综合一二三区影视| 青久久| 欧美少妇高潮视频| 亚洲成人ab| 99婷婷一区二区| 国产多人在线观看视频| 91社操逼| 日韩av乱伦| 婷婷色一区| 久久久穴999| 日韩视频小说在线观看| 清纯唯美综合| 色吧5亚洲| 在线观看无码三级少妇| 亚洲蜜乳av| 久久98| 久久黄色网址| 超碰97最新人妻| 欧美综色欧| 白丝AV| 一二三四视频中文字幕在线看| 无遮挡一级毛片视频免费的| 午夜福利视频在线一区| 这里有精品| 亚州综合电影| 揉揉揉夜夜| 久久在线观看免费视频| 乱论91| 久久思思热| 极品内射| 中出20p| 亚洲人妻中文在线视频| 国产成人精品日本视频| 久视频在线观看| 欧美色图中文字幕| 天美国产三级传媒| 欧美成人一区二区| 欧美激情在线观看视频| 无码操逼视频一下| 日本在线不卡一二区| 骚乳在线| 精品女同一区二区三区| 国内毛片热久久思思热| 十八禁视频网站| 爱爱动态试试看6 0秒| 亚欧操逼片在线观看 | 91天天c| 99少妇内射| 天天躁日日躁AAAAXXXX国产| 色色五月天激情| 性性久久| 91丝袜在线观看| 免费强奸av| 九九精品美女高溯喷水| 免费视频观看60秒| 欧美 日韩 亚洲 春色| 99自拍视频在线| 精品九九淫乱男| 蜜臀99久久| 欧美性爱一级操| 少妇天堂网络| 人人操,人人液| 国产亚洲精品自在线亚洲情侣| 极品少妇99| 亚洲欧美人妻| 婷婷久草| 精品欧美日韩在线观看| 香蕉久久AⅤ...| 欧插网站| 欧亚三区动漫| 日韩乱伦AⅤ| 澳门成人网站久国产日韩| 新怡红院| 欧美大香蕉专区网| 传媒免费一区二区三区| 久久夜夜| 婷婷色网| 精品一区二区三区蜜桃| 日本在线视频导航| 色偷综合| 久草午夜| 啊啊啊 在线观看| av天堂加勒比| 深田咏美亚洲精品福利社| 制服中出中文人人精品| 亚洲精品性爱片| 精品一区二区三区最新| 又粗又长又大国产不卡| 伊人久久88国产女| 久久亚洲一区女同性恋中文字幕| 久操网视频| av天天在线| 亚洲另类欧美精品| 97一区二区蜜臀| 欧美成人免费在线观看| 九九热九九热| 超碰在线一区| 999久久久久久久精| 好爽免费视频| 国产av尤物| 91精品婷婷国产综合久久| 99久久精品无码一区二区| 久久精品视| 国产亚洲日韩在线三区黑人| 国产熟妇一区二区| 啪啪视频亚洲第一| 超碰在线第一页| 懂色AV蜜臀无码精品APP| 91少妇通奸网站| 色综合久| 一卡二卡三卡| 天天日少妇逼AV| 99热| 亚洲日韩青青草色月| 国产无马在线| 天天α片| 国产精品久久久无码AV网站| 久久久久久久久国产| 粉嫩不卡一区二区性爱| 国产精品午夜福利| 亚欧国产无码精品在线| 97中文字幕一区| 亚洲欧洲偷拍一区| 欧美片第一页| AV丝袜东京热| 精品国产片亚洲一区| 亚洲人妻爽爽爽| 国产人妻精品久久久一区二区三区| 久久男人| 自拍盗摄一区| 日韩欧美tv一区二区在线观看| 欧美在线视频观看一二三四区高清| 国产精品无码论坛| 欧美色图99| 亚州色图第三区| 岛国黄片网站| 韩国女主播青草在线| 乱欲一区二区| 精品日日人妻| 美女高潮视频91| 乱欲一区二区| 97色综合中文网| 综合久欧洲| JIZZJIZZ国产精品喷水| 国产视频第二页| 欧美色图中文字幕| 免费黄色A片| 超碰97亚洲| 欧美成人综合| 五月婷婷六月丁香| 精品日韩人妻精品一二三区| 91国产丝袜美女| www五月| 女人与公拘交酡2020视频| 91成人久久| 色播五月丁香| 国产高清免费不卡av| 亚洲精品黄码久久久久| 97超碰天天爱天天爱| 一区三区啪啪| 国产精品福利资源在线尤物| 国产人妻精品一区二区三区秋霞| 天天影视综合网欧美精品| 在线观看无码三级少妇| 欧洲精品二区| 五毛骚逼极品美女怕怕| 亚洲色图久久精品蜜| 亚洲性爱免费电影| 欧美色图自拍| 天堂在线一区二区| 天天综合网站| 国产精品毛片?v一区二区三区 | av天堂天堂av日韩| 日夜伊人网| 亚洲综合骚逼| 国产亚州精品美女久久久免费| 精品国产乱码久久| 亚洲伊人青青草| 电影69乱码96| 丰满的三级少妇欧美久久久| 91精品微拍福利| 九九九999久久久网站| 精品一区二区三区四区外站| 骚货人妻偷情自拍在线视频| 1禁看欧美黄片免费看| 亚洲无码国产探花在线观看| 亚洲精品97久久中文字幕| 国产最新小视频在线播放下载| 99久久久| 内射中国少妇高清视频免费视频| www.四虎在线| 婷婷久久网| 亚洲第2页| 国内精品嫩模A∨私拍小视频| 97亚洲自在精品在线观看| 日本亚洲vr欧美不卡高清专区| 久操热线| 欧美性巨大╳╳╳╳╳高跟鞋| 亚洲无992tv| 欧美人妻制服| 成人草草视频| 97国产伦理| 啊灬快c我灬啊灬用力灬啊灬-国产精品性做久久久久久-成人AV | 欧美狠狠弄| caopeng97| a网站免费观看| 欧美性爱一级操| 日本免费一级AAA大片器| 精品一区二区三区国产| 91丝袜在线播放| 东京热,男人的天堂| 夜色97| 欧美日韩青操| 午夜欧美J进J出白浆流出久久久| 淫色网综合| 国产第25页在线观看| 一个国产在线综合网站| 久久精品一区二区一8| se..亚洲欧美| 91色插| 蜜臀久久久99久久久久 | 久久一区二区三区四区五区| 欧美天天综合在线| 丰满人妻-区二区三区免费看 | 中国熟女老妇仑乱一区二区三区| 亚洲情色 欧美| 91 手机在线播放 绯色| 91蜜桃婷婷狠狠久久综合9色| 桃花色涩综合影院| 操逼网站视频漫画国产| 97欧美性爱| 久久久久久久久久久免费精品| 中文?日韩?免费?精品| 欧美少妇人妻| 久久久久久久97| 精品国产Av无码久久久伦古装| 久久青青草在线视频| 花花AV导航| 欧美爱爱97| 亚洲欧美综合| 日本性感人妻91| 免费的黄片有限公司| 色欲三区| 思思热免费在线视频| 亚洲天堂人妻熟妇视频| 免费A V在线播放| 91精品伊人久久久大香线蕉91| 大屁股xxxxx| 色色色五月婷婷| www.色婷婷.com| 久久婷色| 久久久一热在线播放| 超碰国产情侣自拍网| 超碰97欧美在线| 色第一页| 精品久久九| 精品久久久不卡一区二区| 美女爽爽爽刺痛洞洞| 91亚洲黄色网| 欧洲亚洲人妻无码高清久久三区四区| 97这里只有精品| 成人五级久久| 日韩久久.一级黄色片| 爱做久久久久久| 日韩AV片| 97爱爱影院| 操逼内射干逼白丝91| 中文字幕诱惑制服人妻丝袜美丝袜美 | 欧美视频一区二区在线| 99re国产中文字幕| 日韩免费人妻色情网站| 男人天堂久久日韩| 久久综合久色欧美综合狠狠| 超碰97人人乐| 亚洲精品久久久久久久蜜桃臀| 澳门色噜噜色噜噜色噜噜色噜噜色噜噜| 超碰91在线| 亚洲无码精品AV久久久| 国产曰批免费观看久久久| 欧美丰满少妇xx高潮| 萌白酱自拍视频| 婷婷六月色| 欧美综合站| 色噜噜人妻丝袜AV资源| 亚洲美女黄色| 亚洲91网| 亚洲第一无码播放立川理惠| 91爱综合| 久久有码| 超碰在线免费一区二区三区| av爱爱爱| 亚洲制服aⅴ中文字幕| 九九内射在线| 色九九九综合| 欧美色图亚洲色| 超碰在线观看av不卡| 色情成人五月天| 精品一国2| 中文字幕制服诱惑| 性色av蜜臀av色欲aV| 综合网,亚洲,欧美| 日本久久999| 欧美在线91| 国产18精品亚洲精品| 国产精品熟女AV中文字幕在线播放| 足交视频老司机| 亚洲精品久久久久毛片A片拉屎 | 色婷婷综合久久久久中文一区二区| 性爱AV天堂| 国产精品久久| 操逼操操操91| 欧美男女午夜啪啪| 色哟哟av| www亚洲免费| 大香蕉520| 香蕉免费一区二区三区不读| 九九九九免费| 国产综合网站在线播放| 超碰97资源大奶| 天天超级碰碰碰| 久久久久亚洲Av无码专区老牛影视 | 国产精品点击进入在线影院| 爽爽淫人网| 青青草国产盗摄一二三区| 91亚洲综合| 亚洲av乱伦色图网站| 超碰性爱97| 校园春色亚洲色图| 日韩成人性爱电影在线播放| 亚洲色图国产另类| 国产亚洲精品农村妇女| 久久九九网| 欧美情色贴图| 亚洲影院无码在线| 日韩欧美女优电影| 99热精品在线观看| 日本熟妇人妻中出视频| 激情终合网| 百度百度日本操逼| 五月婷婷六月天| 久久精品国产精品| 92性色国产午夜福利在线661| 丰满的三级少妇欧美久久久| 加勒比综合a∨| 1级午夜影院费免区| 伊人青青一区成人视频在线观看区| 国产精品丝袜在线| 人妻少妇av在线观看| 天天操人人操骚逼网站| 一级@啪啪视频| 嗯~啊~快点 死我视频| 九九热三级片| 天天流夜夜操| 99热这里都是精品| 国产男人又猛又粗又爽| 青青草久草AV| 色伊人91| 国产精品乱码久久久久久| 国产黄片精品在线| 四虎国产成人精品免费一女五男| a片久久久久久久久久久久 | 神马午夜久久| 丁香激情网| 亚洲色交| 9久综合网| 午夜精品久久久久久久久久久久久| 激情五月天丁香| 91热| 国产AV高清AV无码| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 亚洲视频一二区| 青青在线视频日韩欧美| 日韩人妻操B| 国产精品久久久| 2010男人的天堂| 国产深喉视频一区二区| 亚洲色欲一区二区三区| 精品一级毛片在线观看| 717影院理论午夜伦八戒| 中文子幕一二三| 亚洲精品日韩国产欧美| 亚洲日韩狠狠撸视频| 国产无码一二三区| 青青草色AV| 狠狠干综合| 资源新线在线天堂| 欧美最婬乱婬爆婬性视频| 亚洲中字幕日本一区二区三区| 亚洲 日韩 欧美 国产综合体| 91爱网| 天无日色综合| 久久精品久久久久久久久| 日韩av色图综合| 日韩欧美亚洲自拍偷拍| 天天夜夜久久| 精品亚洲国产成人精品| 久久精品噜噜噜成人看免欧美大片| 97碰在线视频| 欧美东京热青青草| 黑丝少妇在线观看| 人妻另类 专区 欧美 制服| 96AV久久久| 国产精品999zyz| 日韩射图| 欧美一级色| 无码高清操逼| 另类视频在线| 超碰在线国产| 七月丁香婷婷| 麻豆 亚洲 97| 午夜色婷婷| 97综合国产| 一区 欧美 日韩 麻豆| 国产区性爱在线视频秋霞豆| 日本黄色精品| 久久国产99精品72福利| 日本欧美一区二区三区免费| 久久久性少妇| 九九九综合精品| 国产欧美精选自拍一区| 亚洲中文字幕久久无码精品| 青娱乐导航AV| 国产探花精品在线| 日韩欧美女求操每天更新| 九一综合精品视品av| 国产精品不卡av免费在线观看| 91欧美性| 五月天偷拍| 懂色av色欲av蜜臀av| 人妻激情视频| 精品国产网站| HEYZO高无码国产精品227| 亚洲欧美综合网| 屌色在线97视频| 伊人国产成人av网站| 欧美在线中M| 毛片电影一区二区三区| 一级乱伦网站| 成人AV在线网站| 一区二区三区国产精产| 欧美日韩免费性爱| 葡萄牙性视频一二区| 性爱欧美五月| 麻豆天美久久91| www黄片免费看com| 日韩无码人妻| 91色射| 青青草精品| 伊人五月天激情| 青青操网| 欧美九九九| 欧美熟女丝袜| 九月丁香婷婷| 亚洲中文字幕三级在线| 国产乱色国产精品免费视| www.91视频网| 精品亚洲俞拍视频一区| 又黄又爽在线观看视频| 欧美丝袜制服久久| www.色吧5.com| 草草草视频| 东北操逼| 人人澡综合涩| 熟女丰满人妻一区| 91成人久久| 美女被啪到深处抽搐视频| 欧美亚洲韩国视频十五区| 99在线视频播放| 欧美制服另类丝袜| 亚洲AV无码久久久国产精品| 性色生活片久久毛片婬片免费放女人一级毛片 | 亚洲一区二区三区AV无码| 97超碰人人操人人操| 国产精品3| 97精品第3页| www.四虎在线| 偷拍 精品另类 凸凹了四区| 91人人臊| 日本熟女不卡视频| 啊啊啊啊啊啊好多水| 日本国产二线女色| 麻豆天美在线喷水AV| 97人亚洲综合字幕| 欧美精品另类人妖xxxx| 天天流夜夜操| 91九九| 99天堂网| 日韩av影片在线观看| 欧美另类精品xxxx| 国产AV色黄看到爽| 白丝被操91| 青青草一本道福利视频| 久久成人网站| 天美传媒av一区二区| 黑人精品久久97| 欧美78| 久久精品老司| 大吊色| 久久久久中出| 久综合网| 亚洲天堂 视频你懂的| 国产午夜激片Av毛片不卡| 乱伦av国产| 成人性爱av.com| 麻豆三极片| 国产毛片毛片4p懂色| 日韩在线国产字幕| 曰韩人妻中文字幕在线| 久久免费少妇| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 97人妻免费中文字幕| 亚洲精品国产熟女| 一区二区免费电影久久| 黄色激情电影在线观看| 成人av福利在线观看| 欧美真人抽搐一进一出gif | 97超碰亚洲| 久久超碰98| 免费成人在线熟妇网| 色悠久久久av| 一区二区亚州激情久婷婷欧美| 日韩精品国模| 蜜桃传媒视频第一区入口在线看| 欲综合网| 97资源久久| 综合网天天| 啊啊啊在线观看| 大香蕉乱级| 欧美日韩另类在线播放| 日本操逼aaaaa| 自拍偷拍草一草| 岛国视频一二三区| 插日本熟女视频| 91精品国产高清久久久久久,亚洲成人| 乱伦图一区| 日韩av乱伦| 人妻少妇精品一区二区三区| 无码一区二区三区四区五区六区七区八区九区十区视频 | 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 74成人在线| 一类av片在线看| 熟女五十路一区二区三| 中文字幕123| 99色在线视频| 日韩偷拍色图| 黄网站黄视频网站进入口| 亚洲第一页欧美| 久久熟女久| 操淫穴亚洲五月丁香 | 欧美一区二区三区黄色影视| 精品成人久久久人人亚洲| 女生91网站| 午夜乱轮操逼视频免费看| 欧美日韩性爱无码| 五月天丁香网| 日本天堂网| 欧美大战久久久伊人| 亚州熟妇精品| 久久婷婷一区| 日韩欧美日韩| 一级特级aaaa毛片免费观看| 丁香六月激情综合| 激情一区二区三区在线观看| 激情文学欧美| 人妻大香蕉| 精品无码久久久久久久杏吧| 国产女人与拘做受视频免费| 婷婷五月天色色| 国内黄色精品| 加勒比久久av| 好吊色综合| 国产51色综合久久免费| 狼人久草| 天天综合香 ld视频| 精品二区三四区五电影 | 97超碰中文字幕| 97久久超碰日韩精品| 国产高清午夜成人在线观看| 国产高清精品一区二区三区毛片| 久久久精品成人国产| 在线黄页看毛片| 九九热精彩视频| 中韩中文字幕在线观看| 日韩av在线精品观看| 亚洲精品啪视频| 国产原创精品| 中出91视频| 久久九色| 囯产乱伦一区二区三女| 色呦呦、国产精品| 蜜桃臀久久| 亚洲欧美日韩免费观看| 黑人狂躁日本妞一区二区三区| 高清无码网址| 亚洲色91C| 东京热综合久久一区二区| 国产精品亚洲无码| 夜夜爽33333| 欧美与日韩97| 亚洲丝袜综合| 在线可观看的黄色网址| 99自拍B亚洲| 美女十八禁| 日本成人A片免费看| 人人天天欧洲| 九九五月天| 911av网站免费观看| www超碰| 日本精品九九九| 国产精品又黄又猛又粗| 午夜精品久久久久久久男人的天堂 | 性色av一区二区| 999综合网| 天堂种子在线www网资源| 亚洲91射| 欧美色图电影| 以及麻豆国产入口在线观看免费| 欧美操逼一二三区| 夜夜嗨免费视频| 国产AV久久野战精品| 欧美久久久15P| 84YTCOM性无码| 在线 制服丝袜中出 人妻| 蜜臀久久99精品| 日本国产欧美一区三区二区| 任你草| 超碰97.com| 国产精品无码论坛| 伦理弟一页| 久久久久亚洲AV无码专区少妇| 国产性感骚丝袜在线| 国产传媒av天美传媒在线| www.99色| 2019亚洲男人天堂| 免费看国产曰批40分钟怎么下载| 欧美1727免费观看视频| 亚洲a色| 国产超碰| 超碰人人干天天射| 成人免费福利在线观看| 国产做?爰片久久毛片?片美国| 艳尻美人妻| 偷拍偷窥与盗摄视频专区| 中文字幕大片三级狠狠干| 国产综合久| 久热9| 欧美激情一| 婷婷AV一区二区三区| 丰满人妻一区| 无码 黑人一区二区三区| 亚洲成a人v欧美综合天堂下载 | 久久一区二区蜜桃| 免费人成?大片在线播放| 久久久久久无码人妻中文字幕| 一线黄色免费性爱片| 国产视频第2页| 中文字幕91页| 好湿好紧好爽 视频| 国产精品久久久久9999小说| 九九黄色视频在线观看| 人妻久热在线| 二级久久网| 免费日韩黄片| 国产欧美日韩臀| 亚洲一区二区三区春色| 一区=区三区视频| 亚洲国产综合视频| 色婷婷在线视频精品导航| 水多多映视AV| 麻豆婷婷成人一二三| 亚洲欧美日韩制服另类| 青青欧美在线| www.99色| 青青国产在线拍揄自揄拍| 2019久久久久久久久福利| 97频视在线| 精品超碰国产| 大香久久| 69人妻人人揉人人躁人人精品| 超碰欧美| 亚洲人在线成线成人| 岛国1区2区3区在线观看| 成年男人的天堂| 日韩成人高清一区二区| 欧美大香蕉97| 超碰人妻天天干| 成年人免费观看网站|