精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

聊聊 GPU 監(jiān)控那些事:利用率 & 故障等 精華

發(fā)布于 2024-12-25 12:03
瀏覽
2收藏

一、背景

在之前的多篇文章中,我們?cè)阈翘岬竭^ GPU 利用率以及 GPU 異常引發(fā)的大規(guī)模任務(wù)失敗問題。在本文中,我們將對(duì)這些內(nèi)容進(jìn)行更為系統(tǒng)的匯總,具體介紹常見的 GPU 監(jiān)控指標(biāo)及各種 GPU 異常情況。為了更好地說明問題,我們還將結(jié)合我們自己的實(shí)踐經(jīng)驗(yàn)以及其他相關(guān)論文中的案例進(jìn)行分析和討論。

二、引言

2.1 MFU & HFU

為了評(píng)估 LLM 訓(xùn)練時(shí)的效率,業(yè)界通常會(huì)使用 Model FLOPS Utilization(MFU) 和 Hardware FLOPS Utilization(HFU) 兩個(gè)關(guān)鍵指標(biāo)來評(píng)估模型的 Forward 和 Backward 過程中(包括任何的網(wǎng)絡(luò)同步開銷和 DataLoader IO)硬件的利用率。

  • MFU= 預(yù)估 FLOPS/硬件理論 FLOPS。其中,預(yù)估 FLOPS 就是模型訓(xùn)練時(shí)理論需要的計(jì)算量,并不包括各種優(yōu)化方案額外引入的計(jì)算量,比如 Gradient Checkpointing/Activation Recomputation 等引入的額外計(jì)算量。
  • HFU= 實(shí)際 FLOPS/硬件理論 FLOPS。其中,實(shí)際 FLOPS 也就是理論上所有實(shí)際發(fā)生的計(jì)算量,包含 Gradient checkpointing/Activation Recompution 等引入的額外計(jì)算量,因此 HFU 應(yīng)該總是 >= MFU。

如下所示為 Maximizing training throughput using PyTorch FSDP [1] 中 Meta 在 LLM 訓(xùn)練時(shí)的 MFU 和 HFU。對(duì)于 LLM 訓(xùn)練任務(wù)而言,通常在 A100/A800 GPU 集群中,MFU 可以達(dá)到 50%+,甚至接近 60%;而在 H100/H800 GPU 集群中, MFU 往往不超過 50%。

聊聊 GPU 監(jiān)控那些事:利用率 & 故障等-AI.x社區(qū)

2.2 GPU 監(jiān)控集成

NVIDIA DCGM(GitHub - NVIDIA/DCGM: NVIDIA Data Center GPU Manager (DCGM) is a project for gathering telemetry and measuring the health of NVIDIA GPUs [2])是一套專為 NVIDIA GPU 集群管理和監(jiān)控而設(shè)計(jì)的工具,其涵蓋健康檢測(cè)、全面診斷、系統(tǒng)報(bào)警及治理策略等。DCGM 通過 DCGM-Exporter(NVIDIA GPU metrics exporter for Prometheus leveraging DCGM [3])可以很方便的與 Kubernetes 生態(tài)系統(tǒng)集成,為容器化環(huán)境提供豐富的 GPU 監(jiān)測(cè)數(shù)據(jù)。

如下圖所示是一種簡(jiǎn)單又常用的使用方式,每個(gè) Node 上會(huì)部署一個(gè) dcgm-exporter 實(shí)例,然后由 Prometheus 來周期性的抓取監(jiān)控?cái)?shù)據(jù),并由 Grafana 進(jìn)行相應(yīng)監(jiān)控的可視化(https://github.com/NVIDIA/dcgm-exporter/tree/main/grafana [4] 中也有相應(yīng)的 Grafana config):

聊聊 GPU 監(jiān)控那些事:利用率 & 故障等-AI.x社區(qū)


2.3 GPU 監(jiān)控指標(biāo)

DCGM 的監(jiān)控指標(biāo)非常豐富,包括顯存占用,各種算力利用率,溫度、功率、頻率以及 NVLink 和各種異常相關(guān)指標(biāo)。其實(shí)可以在 github/DCGM/dcgmlib/src/dcgm_fields.cpp [5] 中看到所有相關(guān)指標(biāo),甚至一些單位不清晰的指標(biāo)也可以從中獲取。如下圖所示,可以看出 DCGM_FI_DEV_NVLINK_BANDWIDTH_L0 的單位為 MB/s。

聊聊 GPU 監(jiān)控那些事:利用率 & 故障等-AI.x社區(qū)

部分監(jiān)控的說明也可以參考:ACK集群GPU監(jiān)控2.0指標(biāo)有哪些- 容器服務(wù)Kubernetes 版 ACK - 阿里云 [6]

PS:由于指標(biāo)眾多,本文中只會(huì)介紹一些關(guān)鍵指標(biāo),更多指標(biāo)可以根據(jù)實(shí)際需求相應(yīng)添加。

2.4 NVIDIA Fabric Manager

要想使用 NVSwitch 的 Sharp 能力,也就是 NCCL AllReduce 中的 NCCL_ALGO=NVSL 以及 NCCL_NVLS_ENABLE,需要啟動(dòng)對(duì)應(yīng)的 nvidia-fabricmanager,可以參考 1. Overview — Fabric Manager for NVIDIA NVSwitch Systems r560 documentation [7]。

NVIDIA FM(Fabric Manager)負(fù)責(zé)配置 NVSwitch 內(nèi)存結(jié)構(gòu),以在所有參與的 GPU 之間形成一個(gè)統(tǒng)一的內(nèi)存結(jié)構(gòu),并監(jiān)控支持該結(jié)構(gòu)的 NVLink。從較高層次來看,F(xiàn)M 承擔(dān)以下職責(zé):

  • 配置 NVSwitch 端口之間的路由;
  • 與 GPU 驅(qū)動(dòng)程序協(xié)調(diào),初始化GPU;
  • 監(jiān)控結(jié)構(gòu)中的 NVLink 和 NVSwitch 錯(cuò)誤。?

聊聊 GPU 監(jiān)控那些事:利用率 & 故障等-AI.x社區(qū)

NCCL 在 2.17+ 版本開始支持 NVLink Sharp,這個(gè)也是在 H100 的 NVSwitch 才支持的。

聊聊 GPU 監(jiān)控那些事:利用率 & 故障等-AI.x社區(qū)

2.5 GPU 故障

GPU 故障是大規(guī)模 GPU 集群中最常見的問題之一,通常會(huì)暴露 ECC Error 或 Xid Code,有關(guān) Xid Code 的錯(cuò)誤可以參考 NVIDIA 的官方文檔 XID Errors :: GPU Deployment and Management Documentation [8]。也可參考一些公有云平臺(tái)上的 FAQ,比如 常見 Xid 事件的處理方法--機(jī)器學(xué)習(xí)平臺(tái)-火山引擎 [9],此外也會(huì)提供一些排查手段,比如 自助診斷GPU節(jié)點(diǎn)問題-阿里云 [10]。

GPU 故障最大的挑戰(zhàn)是其數(shù)量比較多,故障率比較高,一個(gè) GPU 異常往往意味這個(gè)訓(xùn)練任務(wù)的暫停,而且通常需要按照整機(jī)的方式替換。比如 1 個(gè) GPU 異常,通常是直接驅(qū)逐整機(jī)。這是因?yàn)榇笠?guī)模 LLM 預(yù)訓(xùn)練往往要利用單機(jī)內(nèi)高速的 NVLink,如果不是整機(jī)調(diào)度很可能會(huì)影響整體吞吐。假設(shè)一天內(nèi) GPU 發(fā)生故障的概率為 0.1%,則一臺(tái) 8 卡 GPU 機(jī)器每天發(fā)生故障的概率為 1-(1-0.1%)^8=0.8%,萬卡 GPU 一天內(nèi)有 GPU 發(fā)生故障的概率為 1-(1-0.1%)^10000=99.99%。

三、GPU 利用率指標(biāo)

3.1 GPU Utilization

對(duì)應(yīng) DCGM 的 DCGM_FI_PROF_GR_ENGINE_ACTIVE,表示在一個(gè)時(shí)間間隔內(nèi) Graphics 或 Compute 引擎處于 Active 的時(shí)間占比。Active 時(shí)間比例越高,意味著 GPU 在該周期內(nèi)越繁忙。該值比較低表示一定沒有充分利用 GPU,比較高也不意味著已經(jīng)充分利用 GPU。如下圖所示,表示幾個(gè) GPU 的 Utilization 到了 80%-90% 左右:

聊聊 GPU 監(jiān)控那些事:利用率 & 故障等-AI.x社區(qū)

其實(shí)更早之前的 Utilization 指標(biāo)為 DCGM_FI_DEV_GPU_UTIL,只是因?yàn)槠渚窒扌袁F(xiàn)在往往會(huì)使用 DCGM_FI_PROF_GR_ENGINE_ACTIVE,更多說明也可以參考:Question about DCGM fields · Issue #64 [19]。

3.2 GPU SM Active

對(duì)應(yīng) DCGM 的 DCGM_FI_PROF_SM_ACTIVE,表示一個(gè)時(shí)間間隔內(nèi),至少一個(gè) Warp 在一個(gè) SM 上處于 Active 的時(shí)間占比,該值表示所有 SM 的平均值,對(duì)每個(gè) Block 的線程數(shù)不敏感。該值比較低表示一定未充分利用 GPU。如下為幾種 Case(假設(shè) GPU 包含 N 個(gè) SM):

  • Kernel 在整個(gè)時(shí)間間隔內(nèi)使用 N 個(gè) Block 運(yùn)行在所有的 SM 上,對(duì)應(yīng) 100%。
  • Kernel 在一個(gè)時(shí)間間隔內(nèi)運(yùn)行了 N/5 個(gè) Block,該值為 20%。
  • Kernel 有 N 個(gè) Block,在一個(gè)時(shí)間間隔內(nèi)只運(yùn)行了 1/4 時(shí)間,該值為 25%。

如下圖所示為幾個(gè) GPU 的 SM Active,可見只有 60% 左右,還有一定提升空間:

聊聊 GPU 監(jiān)控那些事:利用率 & 故障等-AI.x社區(qū)

3.3 GPU SM Occupancy

對(duì)應(yīng) DCGM 的 DCGM_FI_PROF_SM_OCCUPANCY,表示一個(gè)時(shí)間間隔內(nèi),駐留在 SM 上的 Warp 與該 SM 最大可駐留 Warp 的比例。該值表示一個(gè)時(shí)間間隔內(nèi)的所有 SM 的平均值,該值越高也不一定代表 GPU 使用率越高。

如下圖所示為幾個(gè) GPU 的 SM Occupancy,只有 20% 多:

聊聊 GPU 監(jiān)控那些事:利用率 & 故障等-AI.x社區(qū)

3.4 GPU Tensor Active

對(duì)應(yīng) DCGM 的 DCGM_FI_PROF_PIPE_TENSOR_ACTIVE,表示一個(gè)時(shí)間間隔內(nèi),Tensor Core 處于 Active 的時(shí)間占比,該值表示的是平均值,而不是瞬時(shí)值。如下所示是幾種 Case(假設(shè) GPU 包含 N 個(gè) SM):

  • 整個(gè)時(shí)間間隔內(nèi),N/2 個(gè) SM 的 Tensor Core 都以 100% 的利用率運(yùn)行,該值為 50%。
  • 整個(gè)時(shí)間間隔內(nèi),N 個(gè) SM 的 Tensor Core 都以 50% 的利用率運(yùn)行,該值為 50%。
  • 整個(gè)時(shí)間間隔內(nèi),N/2 個(gè) SM 的 Tensor Core 都以 50% 的利用率運(yùn)行,該值為 25%。
  • 整個(gè)時(shí)間間隔的 80% 時(shí)間內(nèi),N/2 的 SM 的 Tensor Core 都以 50% 的利用率運(yùn)行,該值為 20%。

3.5 GPU NVLink Bandwidth

對(duì)應(yīng) DCGM 的 DCGM_FI_DEV_NVLINK_BANDWIDTH_TOTAL,表示 GPU 通過 NVLink 的通信帶寬情況。甚至還可以使用 DCGM_FI_DEV_NVLINK_BANDWIDTH_L0 獲取其中 Lane 0 的通信帶寬情況,由于 H100 GPU 有 18 個(gè) NVLink Lane,因此對(duì)應(yīng)的通信帶寬往往是上述總帶寬的 1/18。

3.5 實(shí)驗(yàn)

3.5.1 GPU Util & SM Active

如下圖所示,我們?cè)?T4 GPU(包含 40 個(gè) SM) 上通過一個(gè)小的實(shí)驗(yàn)來說明幾個(gè)指標(biāo)的關(guān)系:

  • 當(dāng)只有1 個(gè) Block,1 個(gè) Thread時(shí),GPU Util 也是 100%,因?yàn)?GPU 一直在占用,此時(shí) 40 個(gè) SM 中只有 1 個(gè)一直 Active,所以 SM Active 為 2.5%。
  • 當(dāng)有 40 個(gè) Block,每個(gè) Block 1 個(gè) Thread時(shí),GPU Util 為 100%,SM Active 也為 100%,因?yàn)槊總€(gè) Block 都會(huì)占用一個(gè) SM。
  • 當(dāng)有 40 個(gè) Block,每個(gè) Block 128 個(gè) Thread時(shí),GPU Util 為 100%,SM Active 也為 100%,因?yàn)槊總€(gè) Block 都會(huì)占用一個(gè) SM。此時(shí) SM Occupancy 到了 12.5%。?

聊聊 GPU 監(jiān)控那些事:利用率 & 故障等-AI.x社區(qū)

聊聊 GPU 監(jiān)控那些事:利用率 & 故障等-AI.x社區(qū)

3.5.2 Tensor Active

如下圖所示,我們?cè)?H100 GPU(包含 132 個(gè) SM,每個(gè) SM 上 4 個(gè) Tensor Core) 上通過一個(gè)小的實(shí)驗(yàn)來說明 Tensor Active 指標(biāo)的關(guān)系。因?yàn)?Tensor Core 用于矩陣乘法,所以這里我們構(gòu)造了一個(gè) C(M, N) = A(M, K) x B(K, N) 的矩陣乘法操作, 而每個(gè) Block 負(fù)責(zé)的是 C(16, 16) = A(16, K) x B(K, 16) 的計(jì)算:

  • A100 Tensor Core 一次可以完成 8x4x8 的矩陣乘法,而 H100 Tensor Core 一次可以完成 8x4x16 的矩陣乘法,因此上述一個(gè) Block 里 16x16x16 可以充分利用上一個(gè) SM 里的 4 個(gè) Tensor Core。
  • 當(dāng)只有1 個(gè) Block時(shí)(16,16,16),只用 1 個(gè) SM,也能充分利用該 SM 的 Tensor Core,因此 SM Active 和 Tensor Active 都是 0.69%,接近 1/132=0.8%。
  • 當(dāng)有16 個(gè) Block時(shí)(64,512,64),可以利用 16 個(gè) SM,也能充分利用該 SM 的 Tensor Core,因此 SM Active 和 Tensor Active 都是 12.1%,接近 16/132=12.1%。
  • 當(dāng)有128 個(gè) Block時(shí)(128,16,256),可以利用 128 個(gè) SM,也能充分利用該 SM 的 Tensor Core,因此 SM Active 和 Tensor Active 都是 96.3%,接近 128/132=97%。?

聊聊 GPU 監(jiān)控那些事:利用率 & 故障等-AI.x社區(qū)

PS:Tensor Core 不支持 FP32 的矩陣乘法,上述實(shí)驗(yàn)使用的是 FP16 的矩陣乘法。

3.5.3 Tensor Active & HFU

我們?cè)谶M(jìn)行大規(guī)模 LLM 預(yù)訓(xùn)練時(shí)通常會(huì)關(guān)注相應(yīng)的 MFU,以便評(píng)估 GPU 算力發(fā)揮水平,了解當(dāng)前訓(xùn)練任務(wù)是否還有比較大的優(yōu)化空間。然而,有些任務(wù)并沒有提供相應(yīng)的 MFU 指標(biāo),此時(shí)可以使用 Tensor Active 指標(biāo)來近似 HFU。

Tensor Active 可以近似 HFU 的上限,主要是因?yàn)?LLM 中的大部分操作是矩陣乘法,而且往往會(huì)采用 BF16 來訓(xùn)練,此時(shí)主要的計(jì)算都由 Tensor Core 來承擔(dān),而 Tensor Active 正好可以反應(yīng) Tensor Core 的發(fā)揮水平。(PS:我們?cè)趯?shí)際的訓(xùn)練任務(wù)中也有驗(yàn)證,基本符合預(yù)期。)

如下圖所示,我們?cè)谝粋€(gè) 2 個(gè) 8 * H100 GPU 的節(jié)點(diǎn)上使用 Megatron-LM 訓(xùn)練一個(gè) 3B LLM,采用 16DP 配置,基于 Megatron-LM 輸出的 MFU 為 45.5%,而下面對(duì)應(yīng)的平均 SM Active 為 80% 左右,平均 Tensor Active 為 48% 左右,符合我們的上述結(jié)論:

聊聊 GPU 監(jiān)控那些事:利用率 & 故障等-AI.x社區(qū)

聊聊 GPU 監(jiān)控那些事:利用率 & 故障等-AI.x社區(qū)

3.5.4 NVLink Bandwidth - all2all

如下圖所示,在 8*H100 GPU 節(jié)點(diǎn)上使用 alltoall_perf -b 4G -e 4G -N 10000 -g 8 測(cè)試 All2All 的通信帶寬,可以看出:

對(duì)應(yīng)的 busbw 約為 350GB/s:

聊聊 GPU 監(jiān)控那些事:利用率 & 故障等-AI.x社區(qū)

每個(gè) GPU 的 NVLink Bandwidth 達(dá)到 290 GiB/s(極限 600 GiB/s):

聊聊 GPU 監(jiān)控那些事:利用率 & 故障等-AI.x社區(qū)

每個(gè) GPU Lane 0 的 Bandwidth 達(dá)到 16 GiB/s,對(duì)應(yīng)總帶寬為 16*18=288 GiB/s

聊聊 GPU 監(jiān)控那些事:利用率 & 故障等-AI.x社區(qū)

此時(shí)的 SM Active 約為 12.1%,表明大概使用了 132*12.1%=16 個(gè) SM,也就是通信依然會(huì)占用 GPU SM,可能與計(jì)算之間存在競(jìng)爭(zhēng):

聊聊 GPU 監(jiān)控那些事:利用率 & 故障等-AI.x社區(qū)

3.5.5 NVLink Bandwidth - allreduce

NCCL 的 AllReduce 支持多種算法,比如常見的 Ring 和 Tree,也包括 NVLS,也就是啟用 NVLink SHARP。NVLink SHARP 適用于搭載 Hopper 及后續(xù) GPU 架構(gòu)的第三代 NVSwitch 系統(tǒng)(NVLink4),支持將諸如 ncclAllReduce 等集合通信操作卸載至 NVSwitch 執(zhí)行。

可以使用 NCCL_NVLS_ENABLE 環(huán)境變量來啟用或禁用 NVLink SHARP(NVLS)功能。

如下圖所示,關(guān)閉 NVLink SHARP,也就是:NCCL_NVLS_ENABLE=0 all_reduce_perf -b 16G -e 16G -N 10000 -g 8??梢钥闯?,busbw 可以達(dá)到 363 GiB/s,而每個(gè) GPU 的 NVLink 通信帶寬可以達(dá)到 170-190 GiB/s。

聊聊 GPU 監(jiān)控那些事:利用率 & 故障等-AI.x社區(qū)

聊聊 GPU 監(jiān)控那些事:利用率 & 故障等-AI.x社區(qū)

如下圖所示,啟用 NVLink SHARP,也就是:NCCL_NVLS_ENABLE=1 all_reduce_perf -b 16G -e 16G -N 10000 -g 8??梢钥闯?,busbw 可以達(dá)到 480 GiB/s,而每個(gè) GPU 的 NVLink 通信帶寬則只有達(dá)到 100-130 GiB/s。也就是說,此時(shí)的 busbw 更大,而 NVLink 通信帶寬更低,這主要是利用了 NVSwitch 的 BroadCast 和 Reduce 能力,可以降低通信量。

聊聊 GPU 監(jiān)控那些事:利用率 & 故障等-AI.x社區(qū)

聊聊 GPU 監(jiān)控那些事:利用率 & 故障等-AI.x社區(qū)

同時(shí),我們也將 8 個(gè) GPU 分成 2 組,每組 4 個(gè) GPU 進(jìn)行 AllReduce 操作,首先在 22:29 啟動(dòng) 0-3 號(hào) GPU 的 AllReduce,然后在 22:32 啟動(dòng) 4-7 號(hào) GPU 的 AllReduce??梢钥闯?,0-3 號(hào) GPU 的通信帶寬并沒有下降,始終為 254 GiB/s 左右。表明不同 GPU 之間的 NVLink 并沒有產(chǎn)生干擾,這主要得益于使用 NVSwitch 實(shí)現(xiàn)了 GPU 全互聯(lián),每個(gè) GPU 理論上都能達(dá)到 NVLink 帶寬的極限。

聊聊 GPU 監(jiān)控那些事:利用率 & 故障等-AI.x社區(qū)

四、GPU 異?;蝈e(cuò)誤

4.1 Xid Error

Xid Error 是 NVIDIA GPU 在運(yùn)行過程中遇到的一種硬件或驅(qū)動(dòng)層面的錯(cuò)誤。Xid Error 通常會(huì)出現(xiàn)在 NVIDIA 驅(qū)動(dòng)程序的日志中,并帶有一個(gè)特定的錯(cuò)誤代碼。此錯(cuò)誤碼可以通過 DCGM 的  DCGM_FI_DEV_XID_ERRORS 獲取,表示一段時(shí)間內(nèi),最后發(fā)生的 Xid 錯(cuò)誤碼。

如下圖所示為一些常見的通常由用戶應(yīng)用程序?qū)е碌腻e(cuò)誤:

聊聊 GPU 監(jiān)控那些事:利用率 & 故障等-AI.x社區(qū)

如下圖所示為一些常見的通常由硬件導(dǎo)致的錯(cuò)誤,往往需要重置 GPU 或者報(bào)修:

聊聊 GPU 監(jiān)控那些事:利用率 & 故障等-AI.x社區(qū)

4.2 SXid Error

 Sxid Error 是 NVIDIA 為 NVSwitch 提供的類似于 Xid Error 的機(jī)制,會(huì)在系統(tǒng)內(nèi)核日志中報(bào)告與 NVSwitch 硬件相關(guān)的錯(cuò)誤狀況。Sxid Error 分為非致命性(Non-Fatal)錯(cuò)誤和致命性(Fatal)錯(cuò)誤。

NVSwitch 非致命性 SXid Error 僅用于參考,nvidia-fabricmanager 不會(huì)終止正在運(yùn)行的 CUDA 應(yīng)用,亦不會(huì)阻止新的 CUDA 應(yīng)用啟動(dòng)。已有的 CUDA 應(yīng)用應(yīng)該能恢復(fù)運(yùn)行;然而,根據(jù)具體錯(cuò)誤類型,CUDA 應(yīng)用可能會(huì)遭遇性能下降、短暫停滯不前等問題。

當(dāng)在連接 GPU 與 NVSwitch 之間的 NVSwitch 端口上報(bào)致命性 SXid Error 時(shí),該錯(cuò)誤將傳播至 GPU。運(yùn)行在該 GPU 上的 CUDA 應(yīng)用將被終止,且 GPU 可能報(bào)告 Xid 74 和 Xid 45 錯(cuò)誤。FabricManager 服務(wù)將在其日志文件和系統(tǒng)日志中記錄相應(yīng)的 GPU 索引及 PCI 總線信息。系統(tǒng)管理員必須在為 GPU 分配額外的 CUDA 工作負(fù)載前,采用以下恢復(fù)程序清除錯(cuò)誤狀態(tài):

  • 通過 nvidia-smi 重置指定的 GPU(以及受影響工作負(fù)載中涉及的所有 GPU)??蓞⒖?nvidia-smi 中的 -r 或 --gpu-reset 選項(xiàng)。
  • 也可嘗試重啟 nvidia-fabricmanager 服務(wù),若問題依舊,可以嘗試重啟整個(gè)節(jié)點(diǎn)。

可以在 DCGM 的下述兩個(gè)監(jiān)控中獲得相應(yīng) Sxid Error:

  • DCGM_FI_DEV_NVSWITCH_FATAL_ERRORS:最后一個(gè)致命性錯(cuò)誤。
  • DCGM_FI_DEV_NVSWITCH_NON_FATAL_ERRORS:最后一個(gè)非致命性錯(cuò)誤。

4.3 Memory Row ReMap

NVIDIA GPU 顯存經(jīng)常出現(xiàn)的一個(gè)問題是 GPU 顯存行重映射,可以使用 DCGM_FI_DEV_ROW_REMAP_PENDING 獲取,具體含義是:GPU 的顯存行(row)映射操作正在等待處理或掛起。這通常是一個(gè)與顯存或硬件資源重新映射相關(guān)的錯(cuò)誤,可能是由于顯存損壞、硬件故障或內(nèi)存管理問題導(dǎo)致的。

盡管上述錯(cuò)誤通常表明 GPU 存在可糾正的錯(cuò)誤,并且應(yīng)用程序仍可使用這些 GPU,但強(qiáng)烈建議及時(shí)重置這些 GPU。若應(yīng)用將 GPU 內(nèi)存使用推向接近滿載,作業(yè)崩潰的可能性將顯著增加。

五、案例展示

5.1 任務(wù)降速

如下圖所示為我們實(shí)際業(yè)務(wù)中遇到的一個(gè) Fail-slow 問題。具體來說,我們發(fā)現(xiàn)任務(wù)訓(xùn)練的速度不符合預(yù)期,通過觀察每個(gè) Worker 的 GPU SM Active,發(fā)現(xiàn)存在一個(gè) GPU 的 SM Active 指標(biāo)明顯高于其他 GPU。經(jīng)調(diào)查后發(fā)現(xiàn)該 GPU 上存在被搶占的情況,導(dǎo)致對(duì)應(yīng)的 Worker 成為 Straggler,進(jìn)而整個(gè)任務(wù)的所有 GPU 被拖累。紅框中驅(qū)逐異常搶占后任務(wù)速度恢復(fù)正常:

聊聊 GPU 監(jiān)控那些事:利用率 & 故障等-AI.x社區(qū)

如下圖所示,Megatron-LM 最近也加入了 Straggler 檢測(cè)相關(guān)的實(shí)現(xiàn)(Megatron-LM/megatron/training/training.py [11]):

聊聊 GPU 監(jiān)控那些事:利用率 & 故障等-AI.x社區(qū)

5.2 周期性降速

我們還遇到過任務(wù)周期性降速的問題,起初懷疑過 DataLoader 和 Checkpointing 的問題,也懷疑過節(jié)點(diǎn)有周期性任務(wù)導(dǎo)致,依次被排除;也進(jìn)一步排查了 CPU、GPU、網(wǎng)絡(luò)等均未發(fā)現(xiàn)明顯問題;最終發(fā)現(xiàn)某個(gè) Rank 中 Python 的垃圾回收機(jī)制會(huì)導(dǎo)致一直持有 GIL,進(jìn)而導(dǎo)致當(dāng)前 Rank 成為 Straggler,拖累整個(gè)訓(xùn)練任務(wù)。當(dāng)任務(wù)規(guī)模比較大時(shí),多個(gè) Rank 在一段時(shí)間內(nèi)陸續(xù)成為 Straggler,進(jìn)而放大該問題的影響范圍:

聊聊 GPU 監(jiān)控那些事:利用率 & 故障等-AI.x社區(qū)

解決上述問題的方法也比較簡(jiǎn)單粗暴,比如 Megatron-LM 中就有主動(dòng) GC(Garbage Collect) 的選項(xiàng)(Megatron-LM/megatron/training/training.py [11])。如下圖所示,可以在一定的 Step 后所有 Rank 同時(shí)主動(dòng) GC,這樣就可以將所有 Rank 的 GC 放在同一時(shí)間,降低對(duì)整個(gè)任務(wù)的影響:

聊聊 GPU 監(jiān)控那些事:利用率 & 故障等-AI.x社區(qū)

5.3 NVSwitch nvidia-fabricmanager 問題

我們?cè)?H100 系統(tǒng)上也遇到過 nvidia-fabricmanager 的問題。具體來說,我們發(fā)現(xiàn)多機(jī)分布式訓(xùn)練時(shí) Pytorch 在初始化節(jié)點(diǎn)會(huì) Hang 住,甚至用 NCCL 的 AllReduce 測(cè)試也會(huì) Hang,但將 NCCL_ALGO=Ring 則可以正常執(zhí)行。最終發(fā)現(xiàn)是節(jié)點(diǎn)上某進(jìn)程 OOM 導(dǎo)致 nvidia-fabricmanager 被 Kill。而在 H100 的 NVSwitch 上支持 NVLink Sharp,所以 NCCL 的 AllReduce 默認(rèn)會(huì)使用 NCCL_ALGO=NVSL,此時(shí) nvidia-fabricmanager service 異常就導(dǎo)致整個(gè)任務(wù) Hang 住,通過重啟 nvidia-fabricmanager 可以解決(有些時(shí)候也需要重啟機(jī)器 NCCL 2.18 / Cuda 12.2 fails on H100 system with transport/nvls.cc:165 NCCL WARN Cuda failure 'invalid argument' · Issue #976 · NVIDIA/nccl · GitHub [12])。

聊聊 GPU 監(jiān)控那些事:利用率 & 故障等-AI.x社區(qū)

5.4 用戶 Xid Error 問題

我們遇到過很多 Xid Error,如下圖所示,任務(wù)訓(xùn)練時(shí)遇到過 Pytorch 拋出 CUDA error: an illegal memory access was encountered 錯(cuò)誤:

聊聊 GPU 監(jiān)控那些事:利用率 & 故障等-AI.x社區(qū)

同時(shí)查看相關(guān)系統(tǒng)信息發(fā)現(xiàn) GPU 有 Xid 31 的錯(cuò)誤:

聊聊 GPU 監(jiān)控那些事:利用率 & 故障等-AI.x社區(qū)

進(jìn)一步根據(jù) NVIDIA Xid 文檔(1. Introduction — XID Errors r555 documentation [13])可知,Xid 31 大部分為用戶程序問題,比如訪存越界等,但也有一定可能是驅(qū)動(dòng) Bug 或硬件 Bug:

聊聊 GPU 監(jiān)控那些事:利用率 & 故障等-AI.x社區(qū)

5.5 硬件 Xid Error

Meta 在 [2410.21680] Revisiting Reliability in Large-Scale Machine Learning Research Clusters [14] 中也提到過一系列 Xid 相關(guān) Error:比如,作者觀察到 PCIe 錯(cuò)誤常與 Xid 79(通常意味著掉卡,比如從 PCIe 總線上斷開鏈接)和 IPMI “Critical Interrupt” 同時(shí)發(fā)生。在作者的兩個(gè)集群上,作者觀察到 43% 和 63% 的 PCIe 錯(cuò)誤與 Xid 79 共現(xiàn)。此外,作者在兩個(gè)集群還觀察到 2% 和 6% 的 IB 鏈路故障與 GPU 故障(如與總線斷開連接)同時(shí)發(fā)生,這可能表明與 PCIe 存在關(guān)聯(lián)。

我們也遇到過類似案例,如下圖所示,使用 Pytorch 訓(xùn)練時(shí)遇到 CUDA error: unknown error 的問題:

聊聊 GPU 監(jiān)控那些事:利用率 & 故障等-AI.x社區(qū)

進(jìn)一步排查發(fā)現(xiàn)系統(tǒng)中同時(shí)出現(xiàn)了 pciehp Link Down,Xid 79(GPU fallen off the bus)以及 NVSwitch timeout 的錯(cuò)誤,與此同時(shí)還在后續(xù)出現(xiàn) Xid 45 的錯(cuò)誤,這個(gè)就是常見的掉卡問題。

聊聊 GPU 監(jiān)控那些事:利用率 & 故障等-AI.x社區(qū)

其實(shí) Xid 也經(jīng)常會(huì)一起出現(xiàn),如下圖所示,一個(gè) uncorrectable 的 ECC Error 往往會(huì)伴隨多個(gè)不同的 Xid 同時(shí)出現(xiàn):

聊聊 GPU 監(jiān)控那些事:利用率 & 故障等-AI.x社區(qū)

5.6 Meta GPU GSP Error

Meta 在 [2410.21680] Revisiting Reliability in Large-Scale Machine Learning Research Clusters [14] 中也提到過 GSP(GPU System Processor) 相關(guān)問題,我們?cè)趯?shí)際生產(chǎn)環(huán)境也遇到過,阿里云的 FAQ 中也有相關(guān)介紹,如下所示,具體可以參考 ACK集群GPU使用常見問題和解決方法- 容器服務(wù)Kubernetes 版 ACK - 阿里云 [6]:

聊聊 GPU 監(jiān)控那些事:利用率 & 故障等-AI.x社區(qū)

5.7 IBM GPU Memory Row ReMap 問題

IBM 在 [2407.05467] The infrastructure powering IBM's Gen AI model development [15] 中提到了 GPU 顯存行重映射問題。

作者專門設(shè)立了一個(gè)面板(如下圖 Figure 12(c) 所示),通知系統(tǒng)管理員發(fā)生顯存行重映射的這些節(jié)點(diǎn)無負(fù)載,可進(jìn)行重置。需強(qiáng)調(diào)的是,GPU 內(nèi)存損壞故障可能導(dǎo)致應(yīng)用程序?qū)用娴碾[晦錯(cuò)誤。應(yīng)用程序可能在訓(xùn)練迭代中日志顯示損失值膨脹前,持續(xù)運(yùn)行而未顯露問題。這些故障可能在訓(xùn)練過程中的任何時(shí)刻發(fā)生,若不監(jiān)控?fù)p失曲線的收斂情況,將導(dǎo)致大量 GPU 時(shí)間的浪費(fèi)。DCGM 診斷(1 級(jí)和 2 級(jí))無法檢測(cè)此問題,需進(jìn)行 3 級(jí)診斷,這要求獨(dú)占 GPU 訪問權(quán)限。為此,作者的 Autopilot 將此測(cè)試納入侵入性測(cè)試,當(dāng) GPU 未用于 AI 工作負(fù)載時(shí)運(yùn)行。測(cè)試結(jié)果導(dǎo)出至 Prometheus 和節(jié)點(diǎn)標(biāo)簽,以便監(jiān)控和分析。

聊聊 GPU 監(jiān)控那些事:利用率 & 故障等-AI.x社區(qū)

5.8 Meta Lemon 節(jié)點(diǎn)

Meta 在 [2410.21680] Revisiting Reliability in Large-Scale Machine Learning Research Clusters [14] 中還提到了 Lemon 節(jié)點(diǎn)的問題。Lemon 節(jié)點(diǎn)是指那些作業(yè)失敗率顯著高于平均水平的節(jié)點(diǎn)。

為了識(shí)別 Lemon 節(jié)點(diǎn),Meta 作者設(shè)計(jì)、實(shí)施并評(píng)估了 lemon 檢測(cè)機(jī)制,在兩個(gè)集群成功識(shí)別出 RSC-1(共 2000 A100 節(jié)點(diǎn))和 RSC-2(16 個(gè)節(jié)點(diǎn),共 1000 A100 節(jié)點(diǎn))中的 40 個(gè)故障節(jié)點(diǎn)。這些被識(shí)別的 lemon 節(jié)點(diǎn)占 RSC-1 總規(guī)模的 1.2%,每日作業(yè)的 13%。這種 lemon 檢測(cè)機(jī)制使得大規(guī)模作業(yè)(512+ GPU)的失敗率降低 10%,從 14% 降低至 4%。

我們?cè)谛录旱钠鹗茧A段也遇到過類似問題,具體來說,我們發(fā)現(xiàn)某些節(jié)點(diǎn)的 GPU 頻繁出現(xiàn) Xid Error 而導(dǎo)致任務(wù)異常,當(dāng)我們將這些節(jié)點(diǎn)驅(qū)逐后發(fā)現(xiàn)任務(wù)穩(wěn)定性明顯提升。

5.9 幻方 AI 常見 Xid 錯(cuò)誤

幻方 AI 在 [2408.14158] Fire-Flyer AI-HPC: A Cost-Effective Software-Hardware Co-Design for Deep Learning [16] 中也介紹過一系列的 Xid Error。如下圖 Table V 所示,作者展示了常見的 Xid Error 和對(duì)應(yīng)的原因:

聊聊 GPU 監(jiān)控那些事:利用率 & 故障等-AI.x社區(qū)

如下圖 Table VI 所示,作者也展示了不同 Xid Error 的數(shù)量和比例,可以看出,NVLink Error 占比 42.57%,這可能和作者使用的 NVLink Bridge 有關(guān)。而 Xid 31 和 Xid 43 的軟件錯(cuò)誤總共超過了 50%,這種情況大部分是程序問題,如果排除程序問題那也基本可以確定是硬件故障。

聊聊 GPU 監(jiān)控那些事:利用率 & 故障等-AI.x社區(qū)

5.10 Meta LLaMA 3.1 預(yù)訓(xùn)練 GPU 問題

Meta 在訓(xùn)練 LLaMA 3 405B 模型時(shí),使用了 15T Token,16384 H100 GPU,MFU 為 41%,那么對(duì)應(yīng)的理想訓(xùn)練時(shí)間為:

15T*6*405B/(16384*989T*41%)/3600/24=42.3 天

然而,Meta 在 LLaMA 3 的技術(shù)報(bào)告 [2407.21783] The Llama 3 Herd of Models [17]  中介紹 LLaMA 3 的預(yù)訓(xùn)練時(shí)間在 54 天左右,比 42.3 天多一些,其中一個(gè)原因可能是其提到的各種故障導(dǎo)致。

作者提到,在 54 天的訓(xùn)練中,共遇到了 466 個(gè)任務(wù)中斷,其中包括 47 次的有計(jì)劃中斷,以及 419 次的預(yù)期外中斷。在這些非預(yù)期中斷中,78% 是硬件問題,例如 GPU 或物理機(jī)其他組件的異常,其中 GPU 相關(guān)問題占到 58.7%。盡管有大量的異常,但是由于自動(dòng)化運(yùn)維手段的幫助,只有 3 次非預(yù)期中斷是需要人工干預(yù)的。

聊聊 GPU 監(jiān)控那些事:利用率 & 故障等-AI.x社區(qū)

5.11 上海 AI-Lab 集群異常問題

上海 AI-Lab 等團(tuán)隊(duì)在 [2403.07648] Characterization of Large Language Model Development in the Datacenter [18] 中也對(duì)集群中的錯(cuò)誤進(jìn)行過歸類,這里的 NVLink Error、ECC Error 等通常也會(huì)對(duì)應(yīng)到 Xid Error。

如下圖 Table 3 所示為具體的錯(cuò)誤類型,總共可以分為 3 類:

  • Infrastructure:主要是計(jì)算平臺(tái)和遠(yuǎn)程存儲(chǔ)的問題。主要發(fā)生在作業(yè)執(zhí)行中,其會(huì)影響訓(xùn)練進(jìn)度。

此種異常失敗的作業(yè)通常使用了大量 GPU,并且恢復(fù)的代價(jià)往往比較高。雖然失敗數(shù)量上只占了 11%,但GPU 資源(GPU 時(shí)間)上占了 82%。并且大部分是預(yù)訓(xùn)練任務(wù),可能會(huì)多次遇到硬件故障,例如GPU 問題(CUDAError、ECCError),NVLink 問題(NVLinkError)和網(wǎng)絡(luò)問題(NCCLRemoteError、S3StoreError)。而其中的 NodeFailure 表示未知硬件問題導(dǎo)致的故障。解決這些問題需要細(xì)致的診斷工作,以查明根因。通常需要維護(hù)或更換有缺陷的硬件,然后重啟作業(yè)。

作者甚至提到了高溫可能導(dǎo)致的故障率增加,當(dāng)預(yù)訓(xùn)練時(shí),機(jī)房溫度升高了 5 度,此外作者也發(fā)現(xiàn)大部分異常發(fā)生在 2023.07,是最熱的月份。

  • Framework:主要是幾種運(yùn)行錯(cuò)誤,比如 RuntimeError、ValueError、AttributeError,主要是 Tensor 操作、Shape 以及數(shù)據(jù)類型相關(guān),或者一系列不符合預(yù)期的行為。通常發(fā)生在作業(yè)起始階段。
  • Script:通常是用戶編碼錯(cuò)誤等,通過修改代碼解決。?

聊聊 GPU 監(jiān)控那些事:利用率 & 故障等-AI.x社區(qū)

六、參考鏈接

  1. ??https://pytorch.org/blog/maximizing-training/??
  2. ??https://github.com/NVIDIA/DCGM??
  3. ??https://github.com/NVIDIA/dcgm-exporter??
  4. ??https://github.com/NVIDIA/dcgm-exporter/tree/main/grafana??
  5. ??https://github.com/NVIDIA/DCGM/blob/b0ec3c624ea21e688b0d93cf9b214ae0eeb6fe52/dcgmlib/src/dcgm_fields.cpp??
  6. ??https://www.alibabacloud.com/help/zh/ack/ack-managed-and-ack-dedicated/user-guide/introduction-to-metrics??
  7. ??https://docs.nvidia.com/datacenter/tesla/fabric-manager-user-guide/index.html??
  8. ??https://docs.nvidia.com/deploy/xid-errors/index.html??
  9. ??https://www.volcengine.com/docs/6459/974350??
  10. ??https://help.aliyun.com/zh/ack/ack-managed-and-ack-dedicated/user-guide/use-node-diagnosis-to-self-troubleshoot-gpu-node-problems??
  11. ??https://github.com/NVIDIA/Megatron-LM/blob/main/megatron/training/training.py??
  12. ??https://github.com/NVIDIA/nccl/issues/976#issuecomment-1697103183??
  13. ??https://docs.nvidia.com/deploy/xid-errors/index.html??
  14. ??https://arxiv.org/abs/2410.21680??
  15. ??https://arxiv.org/abs/2407.05467??
  16. ??https://www.arxiv.org/abs/2408.14158??
  17. ??https://arxiv.org/abs/2407.21783??
  18. ??https://arxiv.org/abs/2403.07648??
  19. ??https://github.com/NVIDIA/DCGM/issues/64??

本文轉(zhuǎn)載自 ??AI閑談???,作者: AI閑談 


已于2024-12-25 14:20:13修改
3
收藏 2
回復(fù)
舉報(bào)
回復(fù)
相關(guān)推薦
国产精品视频久久一区| 久久久999视频| 手机精品视频在线| 午夜小视频在线播放| 日韩精品诱惑一区?区三区| 亚洲成人av一区二区| 久久精品美女视频网站 | 欧美一站二站| 欧美日韩国产激情| 9a蜜桃久久久久久免费| 黄色香蕉视频在线观看| 性欧美gay| 91麻豆福利精品推荐| 欧美高清性猛交| 深爱五月综合网| av资源中文在线| 婷婷激情图片久久| 欧美三级蜜桃2在线观看| 久久人人九九| 日本va欧美va国产激情| 麻豆精品少妇| 疯狂做受xxxx高潮欧美日本| 国产私拍一区| 国产成人无码精品久久久久| 欧美变态网站| 日韩欧美亚洲成人| 欧美13一14另类| 性色av免费观看| 欧美猛男男男激情videos| 狠狠色香婷婷久久亚洲精品| 精品日韩在线播放| 国产a级免费视频| 午夜久久tv| 亚洲成在人线av| 免费欧美一级视频| 欧美人与牲禽动交com| 成人网男人的天堂| 欧美在线亚洲在线| 国产精品av久久久久久无| 国产a亚洲精品| 国产精品美女一区二区| 成人黄色生活片| 亚洲精品卡一卡二| 日韩精品一卡| 一区二区三区黄色| 在线免费黄色网| 国产一区一一区高清不卡| 中文字幕中文字幕在线一区| 亚洲精品日韩激情在线电影| 亚洲一区二区91| 美女久久99| 亚洲精品美女在线观看| 嫩草av久久伊人妇女超级a| 欧美激情黑人| 成人毛片老司机大片| 亚洲伊人久久大香线蕉av| 一级黄色大片免费| 日本一区二区在线看| 亚洲人成在线免费观看| 一区二区三区欧美精品| 久久香蕉一区| 亚洲电影在线免费观看| 野外做受又硬又粗又大视频√| 青春草在线观看| 国内精品第一页| 日本精品一区二区三区在线播放视频 | 亚洲视频在线观看| 国产一线在线观看| 涩涩网在线视频| 国产精品免费久久| 亚洲日本无吗高清不卡| 免费成人在线看| 麻豆精品蜜桃视频网站| 午夜精品久久久久久久久久久久| 丝袜美腿中文字幕| 国产精品久一| 色婷婷久久久久swag精品| 五月天av影院| 国产日韩精品在线看| 国产成人免费网站| 国产精品美女呻吟| 西西44rtwww国产精品| 亚洲免费网站| 午夜精品视频在线| 黄色在线免费观看| 黄色成人精品网站| 久久中文字幕视频| 九九九视频在线观看| 欧美第十八页| 国产一区二区三区在线看| 国产人妻精品午夜福利免费| 香蕉成人在线| 欧美色网站导航| 91亚洲一区二区| av成人在线播放| 日韩视频永久免费| www.国产福利| 久久av影院| 欧洲一区二区三区在线| 亚洲中文字幕无码中文字| 国产成人免费9x9x人网站视频| 777xxx欧美| 在线观看亚洲色图| 成人看片网站| 午夜精彩视频在线观看不卡| 国产精品va在线观看无码| 中中文字幕av在线| 亚洲精品视频免费看| 青青草原国产免费| 九色porny丨国产首页在线| 欧美私人免费视频| 欧美日韩在线观看不卡| 欧美电影网址| 日韩欧美综合一区| 人妻视频一区二区| 欧美日韩伦理| 中文字幕在线看视频国产欧美在线看完整 | 波多野结衣加勒比| 日韩在线视频一区二区三区| 欧美精品在线一区二区三区| 亚洲综合欧美激情| 久久a级毛片毛片免费观看| 中文字幕一区日韩电影| 日本免费观看视| 国产一区欧美一区| 成人中文字幕+乱码+中文字幕| 精品一区二区无码| 丝袜美腿亚洲色图| 国产ts一区二区| 日韩免费观看一区二区| 激情综合五月天| 欧美日韩一区在线观看视频| 六十路在线观看| 久久久精品天堂| 色一情一乱一伦一区二区三区丨| jyzzz在线观看视频| 国产精品久久久久国产精品日日| 国产淫片免费看| 老牛精品亚洲成av人片| 欧美另类69精品久久久久9999| 九九在线观看视频| 亚洲日产国产精品| 日韩美女视频免费在线观看| 亚洲国产精品suv| 白白色 亚洲乱淫| 欧美精品一区二区三区在线看午夜 | 欧美在线短视频| 蜜桃精品成人影片| 欧美日韩亚洲在线观看| 26uuu亚洲伊人春色| 中文av免费观看| 捆绑调教一区二区三区| 日韩欧美一区二区三区久久婷婷| 日本中文字幕在线播放| 亚洲一区二区中文在线| 成人在线免费在线观看| 欧美理论电影在线精品| 97精品久久久| 四虎影视2018在线播放alocalhost| 国产日韩精品久久久| 2025韩国大尺度电影| 亚洲热av色在线播放| 亚洲国产成人精品电影| 国产午夜久久久| 天堂影院一区二区| 热舞福利精品大尺度视频| 黄色网在线免费看| 欧美色xxxx| 在线免费观看麻豆| 你懂的视频一区二区| 亚洲在线免费看| 俄罗斯一级**毛片在线播放| 欧美日韩亚洲另类| 三级黄色在线观看| 亚洲专区一区二区三区| 蜜桃传媒视频麻豆一区| 天天综合网站| www.99久久热国产日韩欧美.com| 亚洲日本韩国在线| www欧美成人18+| 国产视频手机在线播放| 午夜激情久久| 青青草原成人在线视频| 国产小视频免费在线网址| 亚洲一区日韩精品中文字幕| 美女又爽又黄免费| 欧美成熟视频| 精品久久久久久一区| 色www永久免费视频首页在线| 欧美无砖砖区免费| 日韩va亚洲va欧美va清高| 日韩vs国产vs欧美| 久久国产精品高清| 日韩三区在线| 欧美麻豆久久久久久中文| 天天干天天做天天操| 一区二区三区视频在线看| 在线黄色免费看| 国内视频精品| 日本亚洲自拍| 日韩区欧美区| 国产精品久久电影观看| 日本韩国一区| 91精品国产综合久久精品性色 | 这里只有精品9| 亚洲一区中文在线| www久久久久久久| 高清不卡一二三区| 亚洲爆乳无码精品aaa片蜜桃| 91视频成人| 68精品国产免费久久久久久婷婷| 亚洲精品国产一区二| 色综合久久久久综合99| 91视频免费在线看| 国产精品一区久久久久| 久久久久久久免费视频| 精品中文一区| 99久久伊人精品影院| 色老太综合网| 韩国精品美女www爽爽爽视频| 亚洲1卡2卡3卡4卡乱码精品| 日韩精品免费视频| 丰满熟妇人妻中文字幕| 亚洲国产毛片aaaaa无费看| 精品人体无码一区二区三区| 免费在线一区观看| 在线免费观看成人| 91麻豆精品国产综合久久久| 国产成+人+综合+亚洲欧美丁香花| 成人女同在线观看| 久久这里只有精品99| www黄在线观看| 精品亚洲国产视频| 伊人成年综合网| 国产精品白丝在线| 美女爆乳18禁www久久久久久| 蜜桃视频一区二区| 99精品视频在线看| 日韩久久精品网| 日本一区二区精品视频| 性人久久久久| 国产精品视频久久久久| 亚洲精品一区| 久久精品一本久久99精品| 大地资源中文在线观看免费版| 亚洲精品一区在线观看香蕉| 少妇精品高潮欲妇又嫩中文字幕 | 欧美一区二区三区精品电影| 不卡av免费观看| 欧美激情乱人伦| 日本天码aⅴ片在线电影网站| 操人视频在线观看欧美| 97超碰在线公开在线看免费| 久热精品在线视频| 怡红院在线播放| 欧美老女人性视频| 人交獸av完整版在线观看| 欧美黑人xxxx| a国产在线视频| 欧美最顶级丰满的aⅴ艳星| 在线亚洲人成| 不卡av在线播放| 成年人网站在线| 亚洲精品中文字幕有码专区| 天堂在线中文资源| 亚洲欧美日韩国产成人| www.av日韩| 欧美在线视频全部完| 中文字幕你懂的| 欧美精品 国产精品| 国产精品一区二区三区在线免费观看| 午夜私人影院久久久久| 国产情侣在线视频| 欧美视频在线看| 美女av一区二区| 国产精品欧美激情在线观看| 在线播放日韩| 视频一区不卡| 色天天综合网| 婷婷视频在线播放| 亚洲性人人天天夜夜摸| 欧美日韩亚洲一| 日韩高清不卡在线| 久草福利在线观看| 日本大胆欧美人术艺术动态 | 第一会所sis001亚洲| 中文字幕中文字幕99| 好看的av在线不卡观看| 黄www在线观看| 看电视剧不卡顿的网站| 精产国品一二三区| 99精品欧美一区二区三区综合在线| 午夜一级免费视频| 国产福利精品导航| a级大片在线观看| 亚洲激情图片一区| 综合网在线观看| 欧美一区午夜视频在线观看| 在线观看xxx| 久久精品2019中文字幕| 成人三级高清视频在线看| 久久91精品国产| 亚洲日本天堂| 91久久久久久久久久久| 久久久久97| 一区二区在线观看网站| 亚洲经典在线看| 中文字幕在线观看日| 99国产精品久久久久久久久久| 国产一区二区三区视频播放| 久久精品这里都是精品| 亚洲精品卡一卡二| 日本丰满少妇一区二区三区| 久久久久99精品成人片我成大片| 欧美精品一二三| 日本一二三区在线视频| 美日韩在线视频| 免费污视频在线一区| 国产一区二区无遮挡| 亚洲一本二本| 欧美另类videosbestsex日本| 久久蜜桃资源一区二区老牛| 中国特级黄色片| 亚洲欧洲精品一区二区三区| 免费高清在线观看电视| 欧美午夜影院在线视频| www夜片内射视频日韩精品成人| 一色桃子一区二区| 亚洲国产福利| 国产福利久久| 久久大胆人体视频| 中文字幕一区二区三区有限公司 | 91精品国产777在线观看| 亚洲综合视频| 亚洲不卡中文字幕| 免费av一区二区三区四区| 国产亚洲精品久久久久久久| 六月丁香婷婷色狠狠久久| 欧美精品免费视频| 亚洲国产精彩视频| 久久精品中文字幕| 99久久伊人| 手机看片福利永久国产日韩| 国产亚洲精品v| 香港三日本8a三级少妇三级99| 亚洲精选一二三| 国产美女永久免费| 日韩欧美资源站| 国产91在线视频蝌蚪| 成人黄色短视频在线观看| 水蜜桃久久夜色精品一区| 手机在线看福利| 国产福利精品一区二区| 日韩国产第一页| 欧美久久久久久久久| 日本成人网址| 91久久久久久久一区二区| 在线电影一区二区| 992tv人人草| 樱花影视一区二区| www.色日本| 久久久久久久久亚洲| 日韩影片中文字幕| 蜜桃av噜噜一区二区三| 视频一区国产视频| 国产精品理论在线| 欧美美女一区二区三区| 黄色网页网址在线免费| 91影视免费在线观看| 女人天堂亚洲aⅴ在线观看| 永久看看免费大片| 午夜电影一区二区| 免费在线观看一级毛片| 国产精品流白浆视频| 久久久久午夜电影| 国产精品嫩草69影院| 欧美视频一区二区三区…| 1pondo在线播放免费| 91精品国产高清自在线| 偷拍自拍亚洲色图| 超碰在线97免费| 亚洲日本在线看| 无码久久精品国产亚洲av影片| 中日韩美女免费视频网站在线观看| 福利精品一区| 欧美黄网在线观看| av亚洲精华国产精华精| 久久久精品毛片| 亚洲精品福利视频| 中文国产字幕在线观看| 国产欧美精品一区二区三区| 国产欧美日韩一级| 久操视频在线观看免费| 日韩欧美成人一区二区| 中文字幕日本在线观看| 18成人免费观看网站下载| 91综合久久一区二区| 少妇熟女视频一区二区三区| 色综合久久久久综合体| wwwav在线|