欧美成人午夜精品久久久,国产?V天堂一区二区三区,欧美精品va在线观看,亚洲一区二区三区免费在线观看,av无码精品一区二区久久,欧美性爱视频不卡一区三区,欧美乱人伦视频在线观看,国产一级牲交高潮

ARTICLE DETAIL

資訊詳情

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

Google TPU軟件棧核心組件與JAX/TensorFlow實(shí)戰(zhàn)解析

Google TPU軟件棧核心組件與JAX/TensorFlow實(shí)戰(zhàn)解析 之前一直在 GPU 集群上跑大規(guī)模模型訓(xùn)練直到項(xiàng)目遷移到 Google Cloud TPU 時才發(fā)現(xiàn)僅僅把訓(xùn)練框架換成 TPU 版本是遠(yuǎn)遠(yuǎn)不夠的。整個編譯鏈路、數(shù)據(jù)管道、算子融合策略和顯存規(guī)劃都變了踩了一圈坑之后才慢慢把 TPU 軟件棧的運(yùn)作方式理清楚。這篇文章會把 Google TPU 軟件棧的核心組件拆開梳理并結(jié)合 JAX、TensorFlow 分布式策略給出可落地的訓(xùn)練示例。適合正在評估 TPU、剛拿到 TPU 配額準(zhǔn)備遷移訓(xùn)練任務(wù)、或者已經(jīng)遇到底層報錯但搜不到完整解釋的開發(fā)者。讀完你能掌握 TPU 的完整軟件鏈路、訓(xùn)練啟動方式、常見編譯報錯定位思路以及把模型真正跑在 TPU 上而不只是跑在“模擬器里”的實(shí)踐經(jīng)驗(yàn)。1. TPU 到底是什么不止是“GPU 的替代品”1.1 AI 時代對芯片提出的新要求過去十年深度學(xué)習(xí)算力的主力是 GPU。GPU 的核心優(yōu)勢在于并行計算能力很強(qiáng)可以同時處理大量簡單運(yùn)算非常適合矩陣乘法和卷積這類深度學(xué)習(xí)算子。但隨著模型規(guī)模快速膨脹尤其是大規(guī)模 Transformer、推薦系統(tǒng)和多模態(tài)模型出現(xiàn)之后算力需求不再只看單卡峰值還要看集群擴(kuò)展效率、內(nèi)存帶寬、編譯優(yōu)化程度和單位算力的性價比。Google 正是在這種背景下推出了 TPUTensor Processing Unit張量處理單元。它不是為了替代 GPU 而設(shè)計的通用芯片而是為了加速 TensorFlow 和 JAX 這類深度學(xué)習(xí)框架中的張量運(yùn)算而專門定制的 ASIC 芯片。你可以把它理解成一個“為矩陣乘法而生的專用加速器”在特定負(fù)載下的能效比和吞吐表現(xiàn)非常突出。這里的“專用”意味著兩件事一方面TPU 在矩陣運(yùn)算、卷積運(yùn)算和大規(guī)模分布式訓(xùn)練上性能很強(qiáng)另一方面它對模型結(jié)構(gòu)的支持并不是無條件的某些自定義算子如果不適配 XLA 編譯器會直接卡在編譯階段。1.2 CPU、GPU、TPU、NPU 的定位區(qū)別先用一個表格把這幾種芯片的定位區(qū)分清楚芯片全稱定位典型場景CPUCentral Processing Unit通用計算強(qiáng)順序執(zhí)行操作系統(tǒng)、數(shù)據(jù)庫、邏輯控制GPUGraphics Processing Unit并行計算通用加速深度學(xué)習(xí)訓(xùn)練、渲染、科學(xué)計算TPUTensor Processing Unit張量專用 ASICTensorFlow/JAX 大規(guī)模訓(xùn)練與推理NPUNeural Processing Unit神經(jīng)網(wǎng)絡(luò)專用處理器手機(jī)端推理、邊緣 AI、端側(cè)加速從開發(fā)者的角度看這套術(shù)語體系經(jīng)?;煊糜绕涫窃诙藗?cè)場景里 NPU 和 TPU 的界限并不明顯。但如果你做的是云上大規(guī)模訓(xùn)練TPU 和 GPU 的差異會直接影響代碼寫法、編譯器行為、數(shù)據(jù)加載策略和故障排查方式。1.3 TPU 軟件棧的整體構(gòu)成TPU 硬件本身只是一塊芯片真正讓它跑起來的是軟件棧。Google TPU 軟件棧通常可以分成幾層前端框架層提供 TensorFlow、JAX、PyTorch 等框架的 TPU 后端接口。編譯器層XLAAccelerated Linear Algebra編譯器承擔(dān)了關(guān)鍵的角色。運(yùn)行時層libtpu、TPU Runtime、設(shè)備驅(qū)動等負(fù)責(zé)與硬件通信。系統(tǒng)調(diào)度層在 Cloud TPU 場景下負(fù)責(zé)資源創(chuàng)建、調(diào)度和生命周期管理。下面這張 ASCII 簡圖可以幫助理解數(shù)據(jù)流向PyTorch / TensorFlow / JAX ↓ 前端圖表示Graph / Program ↓ XLA 編譯器HLO → 優(yōu)化 → LLVM / TPU 指令 ↓ TPU Runtimelibtpu / 設(shè)備驅(qū)動 ↓ TPU 硬件理解這個軟件棧是很有必要的因?yàn)楹罄m(xù)很多報錯都不是框架層報出來的而是 XLA 編譯階段拋出的。你不能只盯著 TensorFlow 的報錯堆??催€得順著 XLA 的報錯信息往下追。2. TPU 軟件棧核心組件拆解2.1 XLA 編譯器從框架圖到 TPU 指令的橋梁XLA 是 TPU 軟件棧里最核心、最容易被忽視的一層。XLA 的全稱是 Accelerated Linear Algebra它是 Google 推出的領(lǐng)域?qū)S镁幾g器專門用來把 TensorFlow、JAX 等框架的計算圖編譯成高效的底層指令。XLA 的工作過程大致如下框架層把計算任務(wù)表達(dá)成計算圖或程序。XLA 將計算圖轉(zhuǎn)換成 HLOHigh Level Operations高級操作表示。XLA 在 HLO 層面上做優(yōu)化包括算子融合Fusion、常量折疊Constant Folding、內(nèi)存分配規(guī)劃、并行化調(diào)度等。最終把 HLO 編譯成目標(biāo)設(shè)備的 LLVM IR 或 TPU 專用指令序列。在 JAX 中jax.jit裝飾器就是觸發(fā) XLA 編譯的入口。當(dāng)你給一個函數(shù)加上jax.jit時JAX 會做兩件事把函數(shù)轉(zhuǎn)換成計算圖然后交給 XLA 編譯。import jax import jax.numpy as jnp # 加 jit 后函數(shù)不會一行一行執(zhí)行而是整體編譯后執(zhí)行 jax.jit def linear(x, w, b): return jnp.dot(x, w) b x jnp.ones((8, 128)) w jnp.ones((128, 64)) b jnp.ones((64,)) y linear(x, w, b) print(y.shape)這里需要注意jax.jit并不是簡單地把函數(shù)內(nèi)部代碼“合并成一個整體”而是讓 XLA 拿到整個計算流程后做算子融合。比如上面的matmul addXLA 在編譯后很可能融合成一個融合算子Fusion減少核函數(shù)啟動次數(shù)和設(shè)備緩存回寫的次數(shù)。生產(chǎn)環(huán)境里XLA 編譯失敗通常表現(xiàn)為類似“Detected unsupported operations when trying to compile graph”的報錯這類問題不是簡單的語法錯誤而是某個算子 XLA 還不支持或無法高效融合。2.2 JAX 與 TensorFlow 對 TPU 的支持方式JAX 是目前 Google 官方推薦的 TPU 訓(xùn)練框架之一。JAX 的設(shè)計思路是把 NumPy 風(fēng)格的 API 和自動微分、JIT 編譯結(jié)合再配合pmap、shard_map等并行抽象天然適合 TPU 這種需要精確控制數(shù)據(jù)切分的加速器。TensorFlow 對 TPU 的支持則主要通過TPUStrategy實(shí)現(xiàn)。TPUStrategy是 TensorFlow 分布式策略中的一種它負(fù)責(zé)把模型變量、優(yōu)化器狀態(tài)和數(shù)據(jù)分配到多個 TPU 核心上。PyTorch 用戶也不用太擔(dān)心PyTorch/XLA 項(xiàng)目已經(jīng)提供了torch_xla包讓 PyTorch 模型可以跑在 TPU 上同時支持 XLA 編譯優(yōu)化。不過平心而論P(yáng)yTorch 在 TPU 上的生態(tài)成熟度目前不如 JAX 和 TensorFlow如果你是從 PyTorch 社區(qū)遷移過來的建議預(yù)留更多時間做算子兼容性驗(yàn)證。2.3 libtpu 與低層運(yùn)行時libtpu 是 TPU 的低層運(yùn)行時庫負(fù)責(zé)主機(jī)與 TPU 設(shè)備之間的通信、內(nèi)存管理、指令提交等。在 Cloud TPU 環(huán)境中用戶代碼通過 gRPC 與 TPU Worker 通信但具體指令的下發(fā)是由 libtpu 完成的。這里想強(qiáng)調(diào)一個容易踩坑的點(diǎn)TPU 的虛擬地址頁大小是 16KB而絕大多數(shù) x86 Linux 主機(jī)默認(rèn)是 4KB 頁大小。當(dāng)你用 pip 安裝編譯好的包時如果包本身是在 4KB 頁環(huán)境下編譯的運(yùn)行到低層庫調(diào)用階段可能出現(xiàn)頁面大小不匹配的報錯這就是網(wǎng)上常見的“an error occurred while preparing sdk package 16 kb page size”一類問題的底層背景。解決思路通常不是修改內(nèi)核頁大小而是從官方渠道獲取與 TPU 運(yùn)行環(huán)境匹配的預(yù)編譯包或者在你的 TPU 虛擬機(jī)上重新編譯相關(guān)依賴而不是直接把本地 x86 環(huán)境里的包復(fù)制到 TPU 環(huán)境。3. 環(huán)境準(zhǔn)備與 TPU 獲取方式3.1 Cloud TPU 與 Colab 的選擇搭建 TPU 軟件棧的第一步是獲取 TPU 環(huán)境。根據(jù)場景不同有幾種主流選擇Google Cloud TPU適合長期訓(xùn)練任務(wù)支持創(chuàng)建 TPU Pod 和 TPU VM。Google Colab提供免費(fèi)的 TPU 運(yùn)行時適合學(xué)習(xí)和小規(guī)模實(shí)驗(yàn)。TPU Research Cloud面向研究者的免費(fèi) TPU 配額項(xiàng)目適合科研場景。本地模擬器適合調(diào)試代碼邏輯但性能完全不能代替真實(shí) TPU。如果你是第一次接觸 TPU建議從 Colab 開始它能用很短的時間驗(yàn)證你的代碼是否走通了 TPU 軟件鏈路。等代碼穩(wěn)定后再上 Cloud TPU 集群做真實(shí)規(guī)模訓(xùn)練。下面通過一個簡單的命令檢查 TPU 運(yùn)行時環(huán)境關(guān)鍵信息# 確認(rèn) Python 版本 python3 --version # 確認(rèn) TPU 設(shè)備是否可見在 TPU VM 或 Colab TPU 上執(zhí)行 ls /dev/accel* 2/dev/null || echo no accelerator device found # 查看安裝的關(guān)鍵包版本 pip list 2/dev/null | grep -Ei jax|tensorflow|torch|xla在實(shí)際 Cloud TPU v4 或更高版本的 TPU VM 環(huán)境中設(shè)備節(jié)點(diǎn)通常不是/dev/tpu而是/dev/accel0、/dev/accel1這類路徑這一點(diǎn)和傳統(tǒng) GPU 環(huán)境有所不同。3.2 JAX 環(huán)境變量與初始化JAX 在 TPU 上運(yùn)行前需要確認(rèn)設(shè)備已經(jīng)初始化成功。在 Colab 的較新版本 JAX 中通常會自動識別 TPU但如果你使用的是舊版本或使用自定義鏡像就需要手動初始化import jax import jax.numpy as jnp # 有些舊版本需要手動初始化 TPU # 新版 JAX 一般會自動初始化無需顯式調(diào)用 try: from jax.tools import colab_tpu colab_tpu.setup_tpu() except Exception as e: print(Manual TPU init skipped or already supported:, e) # 查看當(dāng)前所有可用設(shè)備 devices jax.devices() print(JAX devices:, devices) print(JAX default backend:, jax.default_backend())運(yùn)行正常的情況下jax.devices()會返回 TPU 設(shè)備列表jax.default_backend()返回tpu。如果你的輸出是cpu或gpu說明 JAX 并沒有真正訪問 TPU需要檢查鏡像版本或運(yùn)行環(huán)境。有一個經(jīng)常被忽略的問題Colab TPU 切換后必須重啟運(yùn)行時、重新安裝 JAX 版本否則 JAX 內(nèi)部緩存的設(shè)備信息不會刷新。如果切換 TPU 類型后jax.devices()仍然顯示舊的設(shè)備列表優(yōu)先考慮重啟運(yùn)行時而不是調(diào)試代碼。3.3 從源代碼編譯還是預(yù)編譯包在 TPU 上安裝 JAX 時我一直建議優(yōu)先使用官方發(fā)布的預(yù)編譯包因?yàn)檫@些包會和 TPU 的頁大小、指令集和運(yùn)行時庫做過匹配測試。只有在需要修改 JAX 源碼、debug 底層行為或者在 TPU VM 上做二次開發(fā)時才考慮從源碼編譯。下面是一個在 TPU VM 上安裝 JAX 的典型流程# 激活虛擬環(huán)境 python3 -m venv venv source venv/bin/activate # 安裝 JAX 的 TPU 版本 # 更準(zhǔn)確的安裝命令需要參考官方文檔關(guān)鍵是根據(jù) TPU 版本和系統(tǒng)架構(gòu)選擇匹配的 wheel pip install --upgrade jax[tpu] -f https://storage.googleapis.com/jax-releases/libtpu_releases.html # 驗(yàn)證安裝 python3 -c import jax; print(jax.devices())需要注意jax[tpu]這個 extra 的依賴列表和可用的 wheel 索引會隨著版本變化建議以官方 JAX 倉庫或 Google Cloud 文檔中的安裝命令為準(zhǔn)。不匹配的版本經(jīng)常導(dǎo)致 libtpu 無法加載報錯信息里會出現(xiàn)類似“Could not load libtpu.so”的字樣。4. 完整實(shí)戰(zhàn)用 JAX 在 TPU 上訓(xùn)練一個圖像分類模型講完概念和準(zhǔn)備下面進(jìn)入完整實(shí)戰(zhàn)環(huán)節(jié)。這里以 JAX 為例一步步演示從數(shù)據(jù)加載到 TPU 訓(xùn)練的全過程。4.1 創(chuàng)建項(xiàng)目結(jié)構(gòu)與準(zhǔn)備數(shù)據(jù)先創(chuàng)建一個項(xiàng)目目錄把代碼按模塊劃分好tpu-jax-demo/ ├── main.py ├── model.py ├── data.py ├── train.py └── requirements.txt數(shù)據(jù)部分使用 TensorFlow Datasets 中的 MNIST 數(shù)據(jù)集。MNIST 雖然簡單但它覆蓋了數(shù)據(jù)加載、批量切分、訓(xùn)練循環(huán)、模型保存的完整流程很適合用來驗(yàn)證 TPU 軟件棧是否正常工作。創(chuàng)建requirements.txtjax[tpu] tensorflow-cpu tensorflow-datasets optax這里特意引入optax作為優(yōu)化器庫它是 JAX 生態(tài)中最常用的優(yōu)化器集合后續(xù)如果要替換成 AdamW、LAMB 或自定義學(xué)習(xí)率調(diào)度直接改一行配置即可。4.2 編寫數(shù)據(jù)加載模塊創(chuàng)建data.pyimport tensorflow_datasets as tfds # 加載 MNIST 數(shù)據(jù)并轉(zhuǎn)換為 NumPy 數(shù)組 def load_mnist(batch_size128): ds tfds.load(mnist, split[train, test], as_supervisedTrue) def prepare(dataset): dataset dataset.map(lambda x, y: (tf.cast(x, tf.float32) / 255.0, y)) dataset dataset.batch(batch_size) dataset dataset.prefetch(tf.data.AUTOTUNE) return dataset train_ds prepare(ds[0]) test_ds prepare(ds[1]) return train_ds, test_ds在 TPU 訓(xùn)練中數(shù)據(jù)加載是一個經(jīng)常被忽略的瓶頸。CPU 端的數(shù)據(jù)加載速度如果跟不上 TPU 的消費(fèi)速度訓(xùn)練曲線會出現(xiàn)明顯的周期性停頓。prefetch是解決這個問題的最簡單手段。4.3 定義模型與訓(xùn)練循環(huán)創(chuàng)建model.pyimport jax.numpy as jnp from flax import linen as nn # 簡單卷積網(wǎng)絡(luò) class SimpleCNN(nn.Module): nn.compact def __call__(self, x, training: bool True): x nn.Conv(features32, kernel_size(3, 3), paddingSAME)(x) x nn.relu(x) x nn.max_pool(x, window_shape(2, 2), strides(2, 2)) x nn.Conv(features64, kernel_size(3, 3), paddingSAME)(x) x nn.relu(x) x nn.max_pool(x, window_shape(2, 2), strides(2, 2)) x x.reshape((x.shape[0], -1)) x nn.Dense(features128)(x) x nn.relu(x) x nn.Dense(features10)(x) return x這里使用 Flax 來定義模型。Flax 是 Google 官方維護(hù)的 JAX 神經(jīng)網(wǎng)絡(luò)庫和 JAX 一起使用時體驗(yàn)最自然。如果你之前用過 PyTorch 的nn.ModuleFlax 的nn.Module風(fēng)格會比較接近。創(chuàng)建train.py這是訓(xùn)練循環(huán)的核心import jax import jax.numpy as jnp import optax from flax.training import train_state from model import SimpleCNN from data import load_mnist def cross_entropy_loss(logits, labels): one_hot jax.nn.one_hot(labels, num_classes10) return -jnp.mean(jnp.sum(one_hot * jax.nn.log_softmax(logits), axis-1)) def compute_metrics(logits, labels): loss cross_entropy_loss(logits, labels) accuracy jnp.mean(jnp.argmax(logits, axis-1) labels) return loss, accuracy jax.jit def train_step(state, batch): images, labels batch def loss_fn(params): logits state.apply_fn({params: params}, images, trainingTrue) return cross_entropy_loss(logits, labels) loss, grads jax.value_and_grad(loss_fn)(state.params) state state.apply_gradients(gradsgrads) return state, loss jax.jit def eval_step(state, batch): images, labels batch logits state.apply_fn({params: state.params}, images, trainingFalse) return compute_metrics(logits, labels) def create_train_state(rng, learning_rate): model SimpleCNN() params model.init(rng, jnp.ones((1, 28, 28, 1)))[params] tx optax.adam(learning_rate) return train_state.TrainState.create(apply_fnmodel.apply, paramsparams, txtx) def main(): rng jax.random.PRNGKey(0) state create_train_state(rng, learning_rate1e-3) train_ds, test_ds load_mnist(batch_size128) # 將 TensorFlow Dataset 轉(zhuǎn)換為 NumPy Iterator train_iter iter(train_ds) test_iter iter(test_ds) for epoch in range(3): for step in range(100): batch next(train_iter) images batch[0].numpy() labels batch[1].numpy() state, loss train_step(state, (images, labels)) if step % 20 0: print(fepoch {epoch} step {step} loss {loss:.4f}) # 每個 epoch 結(jié)束評估一次 total_loss 0.0 total_acc 0.0 num_batches 0 for _ in range(50): batch next(test_iter) images batch[0].numpy() labels batch[1].numpy() loss, acc eval_step(state, (images, labels)) total_loss loss total_acc acc num_batches 1 print(fepoch {epoch} eval loss {total_loss / num_batches:.4f} facc {total_acc / num_batches:.4f}) if __name__ __main__: main()這段代碼有幾個關(guān)鍵點(diǎn)使用jax.jit裝飾訓(xùn)練和評估函數(shù)讓 XLA 將整個計算過程編譯成融合算子。每個 batch 通過.numpy()從 TensorFlow Dataset 轉(zhuǎn)換為 NumPy 數(shù)組供 JAX 消費(fèi)。訓(xùn)練狀態(tài)由TrainState統(tǒng)一管理包含模型參數(shù)和優(yōu)化器狀態(tài)。打印網(wǎng)絡(luò)在 MNIST 上的 loss 和 acc用來驗(yàn)證模型真實(shí)地訓(xùn)練起來了。4.4 真機(jī)運(yùn)行與驗(yàn)證在 Colab 或 TPU VM 上執(zhí)行python3 train.py正常輸出會類似epoch 0 step 0 loss 2.3021 epoch 0 step 20 loss 0.4218 epoch 0 step 40 loss 0.2534 epoch 0 step 60 loss 0.1842 epoch 0 step 80 loss 0.1507 epoch 0 eval loss 0.0852 acc 0.9734 ...看到 loss 在下降、eval accuracy 穩(wěn)步上升說明 JAX XLA TPU 這條鏈路已經(jīng)跑通了。接下來就可以把這里的SimpleCNN替換成真實(shí)模型把load_mnist替換成你的真實(shí)數(shù)據(jù)集。4.5 關(guān)于多卡 TPU 的擴(kuò)展思路上面的代碼是單進(jìn)程、單 TPU 核心訓(xùn)練的寫法。如果你創(chuàng)建的是多核心 TPUJAX 會自動識別多個設(shè)備。想要利用多個核心并行訓(xùn)練最簡單的方式是使用jax.device_put和pmap對 batch 做數(shù)據(jù)并行切分。from jax import pmap # 將狀態(tài)復(fù)制到所有設(shè)備 state jax.device_put_replicated(state, jax.devices()) # 多設(shè)備并行訓(xùn)練步驟 pmap def train_step_multi(state, batch): return train_step(state, batch) # 切分 batch 到多個設(shè)備 images images.reshape((num_devices, -1) images.shape[1:]) labels labels.reshape((num_devices, -1))這只是一個非常簡化的pmap示例真實(shí)多卡訓(xùn)練還要考慮 batch 切分策略、梯度累積、AllReduce 等細(xì)節(jié)。建議先把單 core 代碼跑通再逐步過渡到pmap或shard_map。5. TensorFlow 方式用 TPUStrategy 做分布式訓(xùn)練雖然 JAX 在 TPU 上體驗(yàn)越來越主流但生產(chǎn)環(huán)境中大量存量代碼還是 TensorFlow 的。如果你不想重寫模型可以直接使用 TensorFlow 的TPUStrategy把現(xiàn)有模型遷移到 TPU。5.1 TPUStrategy 工作原理TPUStrategy是 TensorFlow 的分布式策略之一。它會自動完成幾件事把模型變量復(fù)制到每個 TPU 核心。把全局 batch 切分成每個核心處理一個子 batch。優(yōu)化器在反向傳播后做跨核心梯度 AllReduce。對訓(xùn)練循環(huán)內(nèi)部使用tf.function編譯配合 XLA 加速。它的關(guān)鍵思路是“數(shù)據(jù)并行 同步更新”。用戶只需要寫一份單機(jī)單卡代碼策略層負(fù)責(zé)把計算擴(kuò)展到多個 TPU 核心上。5.2 TPUStrategy 訓(xùn)練示例import tensorflow as tf # 1. 初始化 TPU resolver tf.distribute.cluster_resolver.TPUClusterResolver() tf.config.experimental_connect_to_cluster(resolver) tf.tpu.experimental.initialize_tpu_system(resolver) strategy tf.distribute.TPUStrategy(resolver) print(TPU devices:, resolver.cluster_spec().as_dict()) # 2. 在 strategy 作用域內(nèi)構(gòu)建模型 with strategy.scope(): model tf.keras.Sequential([ tf.keras.layers.Conv2D(32, (3, 3), activationrelu, input_shape(28, 28, 1)), tf.keras.layers.MaxPooling2D((2, 2)), tf.keras.layers.Conv2D(64, (3, 3), activationrelu), tf.keras.layers.MaxPooling2D((2, 2)), tf.keras.layers.Flatten(), tf.keras.layers.Dense(128, activationrelu), tf.keras.layers.Dense(10), ]) model.compile( optimizertf.keras.optimizers.Adam(1e-3), losstf.keras.losses.SparseCategoricalCrossentropy(from_logitsTrue), metrics[accuracy], ) # 3. 準(zhǔn)備數(shù)據(jù) (x_train, y_train), (x_test, y_test) tf.keras.datasets.mnist.load_data() x_train x_train.reshape((-1, 28, 28, 1)).astype(float32) / 255.0 x_test x_test.reshape((-1, 28, 28, 1)).astype(float32) / 255.0 # 4. 訓(xùn)練 model.fit( x_train, y_train, batch_size128, epochs3, validation_data(x_test, y_test), )TPUStrategy的遷移成本很低尤其適合原本就是 Keras 寫的模型。如果你的模型里含有自定義tf.Variable更新邏輯就需要確認(rèn)變量創(chuàng)建是否都發(fā)生在strategy.scope()內(nèi)。5.3 TFRecord 數(shù)據(jù)管道與 TPU 的配合真實(shí)訓(xùn)練中數(shù)據(jù)通常在 GCS 上推薦使用 TFRecord 格式來減少小文件數(shù)量提高 TPU 的讀取效率。import tensorflow as tf def decode_fn(record_bytes): features { image: tf.io.FixedLenFeature([28 * 28], tf.float32), label: tf.io.FixedLenFeature([], tf.int64), } parsed tf.io.parse_single_example(record_bytes, features) image tf.reshape(parsed[image], (28, 28, 1)) return image, parsed[label] def build_dataset(file_pattern, batch_size, is_trainingTrue): dataset tf.data.Dataset.list_files(file_pattern) dataset dataset.interleave( tf.data.TFRecordDataset, cycle_length8, num_parallel_callstf.data.AUTOTUNE, ) dataset dataset.map(decode_fn, num_parallel_callstf.data.AUTOTUNE) if is_training: dataset dataset.shuffle(10000).repeat() dataset dataset.batch(batch_size, drop_remainderTrue) dataset dataset.prefetch(tf.data.AUTOTUNE) return dataset數(shù)據(jù)管道本身是 CPU 上的工作但它的吞吐能力直接決定了 TPU 是否被喂飽。經(jīng)驗(yàn)法則是數(shù)據(jù)管道的吞吐至少要達(dá)到模型訓(xùn)練速度的 2 倍否則訓(xùn)練過程中會不斷出現(xiàn)“等待數(shù)據(jù)”的空窗期。6. 常見問題與排查思路6.1 TPU 初始化失敗或設(shè)備不可見問題現(xiàn)象RuntimeError: Unable to initialize the TPU system.可能原因當(dāng)前運(yùn)行時不是 TPU 環(huán)境。JAX/TensorFlow 版本與 TPU 運(yùn)行時版本不匹配。運(yùn)行時使用舊內(nèi)核沒有加載必要的驅(qū)動。排查步驟先檢查設(shè)備文件是否存在在 TPU VM 上執(zhí)行l(wèi)s /dev/accel*。再執(zhí)行jax.devices()或tf.config.list_logical_devices(TPU)看框架層是否識別到設(shè)備。確認(rèn)虛擬環(huán)境中的包版本與當(dāng)前 TPU 版本匹配。重啟運(yùn)行時尤其是在切換 TPU 類型之后。6.2 XLA 編譯報錯 “unsupported operations”問題現(xiàn)象Detected unsupported operations when trying to compile graph可能原因模型里使用了 XLA 不支持的算子。自定義 Layer 或自定義 JAX 函數(shù)里調(diào)用了無法被轉(zhuǎn)換成 HLO 的 Python 控制流。解決思路逐步裁剪模型定位到具體是哪個操作不能被編譯。檢查是否是動態(tài)形狀問題TPU 上盡量避免 runtime shape 變化。對自定義算子優(yōu)先考慮能否用現(xiàn)有的 JAX 原生操作重寫。6.3 關(guān)于 16KB page size 編譯包報錯問題現(xiàn)象在安裝或運(yùn)行 TPU SDK 相關(guān)包時出現(xiàn)類似 “an error occurred while preparing sdk package 16 kb page size” 的報錯。背景原因TPU 運(yùn)行環(huán)境的虛擬地址頁大小是 16KB而常見 x86 Linux 是 4KB 頁。本地下載的預(yù)編譯 wheel 如果是在 4KB 頁環(huán)境下構(gòu)建的運(yùn)行時會與 TPU 內(nèi)核模塊或運(yùn)行時庫不兼容。解決思路不要直接從普通 PyPI 鏡像安裝 TPU 相關(guān)包優(yōu)先使用官方發(fā)布渠道。在 TPU VM 內(nèi)重新安裝匹配版本而不是把本地環(huán)境復(fù)制過去。查看完整日志確認(rèn)是下載失敗還是安裝后運(yùn)行時崩潰。6.4 OOM 與 batch size 調(diào)整問題現(xiàn)象訓(xùn)練時出現(xiàn)Resource exhausted錯誤??赡茉騜atch size 過大超出了 TPU 單核的 HBM 容量。模型參數(shù)或中間激活值過大。數(shù)據(jù)管道prefetch使用內(nèi)存過多。解決思路先嘗試減小 batch size確認(rèn)模型在單卡上可以跑通。合理設(shè)置prefetch和num_parallel_calls避免 CPU 端內(nèi)存溢出。檢查 XLA 是否啟用了內(nèi)存優(yōu)化選項(xiàng)但不要盲目相信默認(rèn)配置。6.5 排查清單匯總問題現(xiàn)象常見原因解決思路設(shè)備不可見運(yùn)行時環(huán)境錯誤 / 版本不匹配檢查/dev/accel*重啟運(yùn)行時核對版本XLA 編譯失敗不支持的算子 / 動態(tài) shape簡化模型逐步定位避免動態(tài)形狀16KB page size 報錯wheel 與 TPU 頁大小不匹配使用官方發(fā)布渠道安裝匹配包OOMbatch size 過大 / 中間激活過大調(diào)整 batch size優(yōu)化數(shù)據(jù)管道內(nèi)存訓(xùn)練速度上不去數(shù)據(jù)管道存在瓶頸使用 TFRecord、interleave、prefetch 優(yōu)化輸出結(jié)果有 NaN學(xué)習(xí)率過高 / 精度配置不當(dāng)降低學(xué)習(xí)率使用混合精度時檢查損失縮放7. 最佳實(shí)踐與工程建議7.1 數(shù)據(jù)管道要提前壓測TPU 非?!疤羰场彼倪\(yùn)算速度快到如果數(shù)據(jù)管道沒跟上訓(xùn)練就會空等。建議在正式訓(xùn)練前先單獨(dú)測試數(shù)據(jù)管道的吞吐能力。import time train_iter iter(train_ds) start time.time() for i in range(100): batch next(train_iter) end time.time() print(f100 batches take {end - start:.2f}s)如果數(shù)據(jù)讀取時間占比過高優(yōu)先使用 TFRecord 格式、interleave并行讀取、prefetch預(yù)加載等手段。7.2 使用混合精度時需要驗(yàn)證損失縮放TPU 的 bfloat16 支持是它的強(qiáng)項(xiàng)之一。用jax時可以很自然地把部分參數(shù)轉(zhuǎn)換成bfloat16或使用混合精度訓(xùn)練。但在混合精度下梯度很小的時候有可能在低精度下溢出導(dǎo)致 NaN。建議開啟損失縮放Loss Scaling機(jī)制并周期性檢查梯度統(tǒng)計而不是在出現(xiàn) NaN 后才去排查。7.3 模型算子優(yōu)先考慮 JAX/TensorFlow 原生實(shí)現(xiàn)遇到自定義算子時優(yōu)先檢查原生庫里有沒有替代實(shí)現(xiàn)。XLA 對原生算子的融合優(yōu)化做得很成熟但自定義算子往往無法被融合會打亂 XLA 的優(yōu)化策略。如果一定要使用自定義算子至少把“無法編譯”的算子獨(dú)立出來避免拖累整體性能。7.4 成本與資源管理TPU 資源通常是按時計費(fèi)的長期任務(wù)建議配合 checkpoint 和自動重啟機(jī)制。這里給出幾個實(shí)用性建議訓(xùn)練腳本要有穩(wěn)定的 checkpoint 保存與恢復(fù)邏輯。使用搶占式資源時代碼要能安全處理進(jìn)程中途被回收的情況。創(chuàng)建 TPU 實(shí)例后盡快驗(yàn)證訓(xùn)練腳本避免空轉(zhuǎn)計費(fèi)。配置監(jiān)控報警對異常掉線、訓(xùn)練停滯、指標(biāo)不回傳這些情況做告警。7.5 把訓(xùn)練過程日志化TPU 上的日志查看比 GPU 環(huán)境要麻煩一些尤其是多 worker 場景下。推薦在訓(xùn)練腳本中顯式記錄關(guān)鍵指標(biāo)比如每個 epoch 的 loss、acc、每個 step 的平均耗時、數(shù)據(jù)加載耗時等并把日志輸出到統(tǒng)一的日志平臺方便后續(xù)歸因。import logging logging.basicConfig( levellogging.INFO, format%(asctime)s %(levelname)s %(message)s, ) logging.info(start training, devices%s, jax.devices())這一步可能看起來不起眼但當(dāng)你遇到 TPU 訓(xùn)練中途卡死、重啟、性能退化問題時這些日志是定位問題的唯一線索。8. 總結(jié)Google TPU 軟件棧本質(zhì)上是一條從深度學(xué)習(xí)框架到專用硬件的編譯和運(yùn)行鏈路JAX、TensorFlow、XLA 和 libtpu 各司其職。對開發(fā)者而言遷移到 TPU 時最需要調(diào)整的往往不是模型結(jié)構(gòu)本身而是對計算圖編譯、數(shù)據(jù)切分、內(nèi)存規(guī)劃這些底層層面的理解。如果你準(zhǔn)備開始嘗試建議從 Colab 免費(fèi) TPU 環(huán)境入手把 MNIST 或自己的小型模型跑通再逐步擴(kuò)展到真實(shí)業(yè)務(wù)模型。遇到 16KB page size、XLA 編譯失敗、TPU 設(shè)備不可見這類問題先順著軟件棧的層級逐層排查不要一開始就懷疑硬件。只要把 JAX 或 TensorFlow 的 TPU 鏈路跑通一遍后續(xù)在 Cloud TPU 上做規(guī)模化訓(xùn)練會順暢得多。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
视频免费精品免费精品免费精品免费精品免费精品免费精品免费99 | 亚洲成色综合网站免费观看| 五月天激情色色| 4399欧美另类视频| 五月天激情综合网| 99在线精品视频观看免费下载| 99性视频| 久久五月丁香综合17C| 婷婷五月天av| 另类婷婷五月天啪帕帕| 国产真实乱了老女人视频 | 亚洲六月婷婷| 激情五月天综合网| 99热这里全是精品| 精品人妻久久久久久久| 少妇激情五月婷婷| 日本a片网址| 加勒比日本一区二区三区| 极品人妻VideOssS人妻| 99热e| 丁香五月另类小说在线阅读| 思思热久久阴99| 丁香六月色| 国产成人精品一区二三区熟女在线| 亚洲操操操| 99精彩视频在线观看| 亭亭社区五月天| 激情九九九九| 思思热精品在线| 亚洲综合网激情五月天| 久久久久98| 日韩成人综合网| 色七色九九| 国产成人99久久亚洲综合精品| 9九色首页| 精品国婬伦V无码久久久| 五月丁香六月婷婷啪啪| WWW免费视频碰碰碰碰| 五月婷婷六月情| 日本免费91| 99视频这里有精品| 开心五月深爱五月| 天天cha成人综合网| 性爱久久| 天天综合精品| 超碰v| AV电影在线播放| 亚洲AV日韩无码| 激情综合网五月激情网| 五月天综合| 色五狠狠| 六月丁香婷婷综合影院| 香蕉人妻AV久久久久天天| 超碰人人色| 日本久久高清| 这里只有精品99www| 五月婷婷电影院| 噜噜操操| 99热精品免费| 人碰人人人玩91| 亚洲精品大片| 五月花亭亭| 日噜噜色| 密臀av无码人妻精品| 丁香五月婷婷影视先锋| 91超级碰在线视频| 夜夜涩涩涩| 婷婷舔| 六月米奇色综合| 九九免费视频在线| 激情伊人五月天| 五月婷婷六月丁香激情| 丁香六月啪| 91九色精品女同系列| 97色久| 91色在线/日韩| 婷婷色五月色| 成人婷婷深爱综合网| 日韩AV在线免费观看| 艳妇野外情欲放荡HD| 日本99久久| 99热久| 五月天综合区| 激情五月激情综合网一级丸片| 久色五月天| 国产av一区二区三区| 久久久18| 亭亭色色五月天| 五月天激情久久| 婷婷五月天手机版视频| 五月婷无码| 久久在这里99| 99热e| 日本99婷婷| 风流少妇A片一区二区蜜桃| 麻豆WWWCOM内射软件| 亚洲中文字幕在线观看| 欧美超级视频97| 天天激情5月天亚洲| 天天干夜夜欢| 99色色视频| 日本性视频| 亚洲婷婷91丁香| 玖玖九九99| 五月婷婷在线视频| 热99色| 九色激情网| 91超级碰碰碰| 九九综合网色全集 | 五月激情啪啪| 五月丁香狠狠爱| 啪啪黄页网| 色欲午夜无码久久久久久张津瑜| 人妻精品一区二区三区| 极品另类| 伊人婷婷大香蕉| 99热这里有精品| 久久这里只| www.五月天。com| 大狠狠在线| 99热精品在线播放观看| 深爱激情久久| 婷婷六月激情在线视频| 五月丁香婷婷AV| 免费无码毛片一区二区A片| 中文字幕不卡视频| 日韩精品在线观看9| 天天爽夜夜操| 欧美婷婷九月| 九九精品网| 国产精品扒开腿做爽爽爽A片唱戏 青青草国产亚洲精品久久 | 色情综合| 成人在线精品| 婷婷五月丁香啪啪| 秋霞A V毛片| 久久免费高| 少妇日麻屄| 91九色欧美| www.99riav99| 五月天社区狠狠| 久久国产一区二区三区| 五月www| 97人人操人人| 大香蕉综合网| 青青草五月天| 激情综合网五月天天| 亚洲 视频 导航 一区| 91婷婷丁香五月亚洲| 亚洲天天免费| 色婷婷最爱五月| 激情五月天视频| 中文字幕,综合,91| 激情六月综合| 五月亭亭欧美女人| 久久婷婷五月综合精品蜜芽| 综合亚洲色色| 99热这里只有精品在线播放| 欧美精产国品一二三区| 日日爽夜夜爽| 影音先锋91男人资源在线播放| 99婷婷五月天激情| 五月丁香激情片| 美女要搞搞天天搞搞搞网站| 99这里只有精| 国产精品91抖高| 六月婷婷网站| 久久一品区| 香蕉久久国产AV一区二区| 中文字幕 码精品视频网站| 午夜69成人做爰视频| 九一九九黄色| 99热最新地址在线| 一本久道综合色婷婷五月| 久久人妻www| 99热国品| 久久精品这里只有精品免费首页| 91超碰人人操| 少妇人妻丰满做爰XXX| 激情五月综合免费| 超碰自拍天堂| 天天插天天插天天插天天插| 99热骚货| 超碰人人99| 91精品久久久久久久久| 日本天天综合| 欧美人人女女精品综合五月天| 夜夜躁爽日日| 思思热精品在线视频| 六月激情婷婷| 久久婷丁香五月| 午夜婷婷丁香| 果冻传媒A片一二三区| 99少妇精品| 91精品无码久久久久久五月天| 色色99色色| 丁香六月色婷婷| 丁香五月天激情| 夜夜操加勒比| 99色综合网| 99热这里只要精品免费| 这里只有精品视频| 大香蕉久艹| 久久久五月婷婷| 色色色99| 国产综合久久久777777| 久久99色色| 九九色精品| 9191avse| 91人人人人人人人| 99ER热精品视频| 婷婷中文字幕| 97在线观视频免费观看| 五月天日日操夜夜操 | AV中文在线| 四季8848精品成人免费网站| 激情丁香五月| 日韩精品无码AV| 最近中文字幕大全免费版在线| 高清无码视频网址| 综合婷婷五月丁香在线观看| 久久五月天激情视频| 中文字幕五月久久婷婷| 久久婷五月影院| 91精品久久久久久综合五月天| 婷婷五月久久| 五月丁香六月婷婷不卡免费无码 | 亚洲欧美成人在线| 婷婷七月丁香色色| 丁香色影院| 香蕉久久av一区二区三区| 婷婷五月天久久| 影音先锋色色色资源色资源色| 亚洲一区二区无码蜜乳av| 色色色综合色| 色色操| 日本色爽| 超级碰碰碰91| 狠狠高潮精品亚洲1| 日韩av手机在线观看| 九九热这里只有精品556| 荷兰av一级| 黄色一级影片| 综合久久六月| 亚洲网在线观看| 五月天激情婷婷| PORNY九色9l自拍视频成人| 五月天丁香成人| 99丁香五月| 丁香香五月激情免费视频| 五月丁香啪啪综合| 噜一噜免费视频| 性生活视频98791| www热久久yy9| 激情小说五月欧美亚洲丁香| 怡红院视频| 婷婷五月天成人小说| 99re26视频| 五月天无码视屏播放| 看黄的网站18禁| 日本老女人黄页在线播放| 五月婷网| 日日操夜夜爽天天天| 婷婷五月天在线看| 巴基斯坦粉嫰无码视频| 99热这里只有精品最新网址| 五月丁香六月婷婷久久| 久久精品系列| 欧美性爱五月天| 九色视频91| 国产精品久久..4399| 丁香午月AV中文字幕| 色偷偷色婷婷| 久久久人妻久久久| 97精品人人A片免费看| 婷婷婷色五月| 色五月噜噜| 色五月天婷婷| 99九九久久| 五月婷婷之综合激情| 日韩成人精品中文字幕| 久8色色| 欧美十二区| 五月婷婷伊人在线| 久久综合首页| 亚洲六月婷婷| 超碰在线99| 五月丁香久| 丁香五月六月综合激情| 五月亭亭欧美女人| 色99在线视频| 精品久久婷婷| 色婷婷久久综合久色| 丁香八月综合激情| 99在线精品视频| 色色五月天婷婷| AV中文在线| 玖玖婷婷免费| 国产xxxxx在线观看| 亚洲丁香五月美女| 成人电影在线免费试看| 婷婷五月久久| 九九热AV| 夜夜操夜夜操| 99网| 久久草中文日韩欧美| 婷婷丁香五月亚洲欧美| 爽极品色| 9九热视频| 涩综合婷婷| 亚洲成人免费在线| 99riAV国产精品视频| 99在线免费视| 日韩综合天堂| 99精品小视频| 青青草原亚洲天堂| 婷婷五月天成人网站| 五月丁香六月情| 天天干 夜夜爽| 人操91在线| 日韩高清久久| www.色婷婷.com| 五月天最新网| 无码中文一区二区三区| 极品色丁香| 九九色色| 欧美日比视频| 狠狠狠狠狠草| www.久久| 欧美六月| 九九综合网色全集 | 九九综合88| 五月天综合缴情网网站0| 久久久久久人妻久久久久久久久久人妻久久久 | 伊人网色婷婷五月天| 色色综合网站| 九九色综合网| 久久99精品久久久久久三级| 色婷婷AV久久久久久久| 亚洲午夜成人av电影网| 丁香六月婷婷缴情欧美| 久久久久9999| 99精品激情| 丁香五月成人丝袜| 中文在线视频久1| 超碰狠狠操| 狠狠 久久| 婷婷五月丁香五月| 婷婷九月综合| 国产在这里只有精品| 婷婷 激情 五月| 婷婷色情网| 男人的天堂99| 伊人五月婷| 99热精品在线| 激情五月综合网| 26uuu成人网| AV天堂婷婷五月天| 岛国资源网| 五月丁香综合久久夜夜| 夜夜夜夜做天天天做无码视频| 人人爽天天爽| 久久五月丁香激情综合| se99高清无码| 色婷婷导航| 99久久亚洲国产| 涩丁香| 日本狠狠干| 日韩操人| 日日干夜夜干| 伊人久久大香线蕉亚洲五月天,| 婷婷五月天综合小说网| 97日在线视频| 色婷婷电影网| 人人操人av| 五月色婷婷夜色| 涩综合婷婷| 五月久久婷婷天堂视频| 激情五月天婷婷丁香| 婷婷色中文字幕| 丁香在线视频| 99国产性感视频| 五月色激情综合网| 伊人激情| 婷婷五月天亚洲综合| 9999热免费视频视频| 亚洲久热无码| 色婷婷五月综合色婷婷| 91天天操天天干天天射| 激情五婷精品网在线观看网址| 婷婷丁香激情综合色情| 六月丁香激情网| 九九视频这里是精品五月| 婷婷丁香色无五月| 日日干干天天干| 五月天无码| 色婷婷小说| 激情综合国产| 97操视频| 丁香九月激情| 色之综合网| 91久操| 久天综合| 91人人爽狠狠狠| 大香蕉综合在线| 九热免费视频| 黄网免费观看| 91丁香色| 99热一本久道| 久久色五月天| WWW.桔色成人.COM| av最新在线| 开心五月深爱婷婷| 色色色色色色色色色色色色色色,网站| 天天干-天天日| WWW.99热| 大天天伊人| 五月亭亭开心网| 婷婷激情鹿城五月天| www91在线| 99精品在线观看| 都市激情小说婷婷| 久久人操| 激情九月天天天天婷婷| 免费视频WWW在线观看网站| 五月丁香狠狠| 激情五月天丁香| 婷婷色五月大香蕉在线| 丁香五月久久| 综合激情网激情五月。| 欧美婷婷五月激情| 久久大香蕉同僚| 天天干天天爽| 激情性爱五月天| 五月天六月婷| 思思热久在线观看视频| 精品人妻在线| 日hao1区| 狠狠狠狠狠草| 婷婷久久婷婷色五月| 九九综合五月欧美| 色播色丁香五月| 婷婷色网| 色伊人婷婷| 婷婷六月啪啪| 9久久久久| 99精品色色| 色婷网| 丁香五月色五月| 97色色色色色| 9999三级片| 超碰免费大香蕉| 狠狠操狠狠插| 99热久久这里只有精品| 韩国中文字幕91| 亚洲 在线 另类| 亚洲另类日本| 五月天另类激情在线| 婷婷丁香一月| 久久亚洲网| 色情五月丁香婷婷网| 97超碰在线免费观看| 五月天婷婷综合久久| 国产亚洲色婷婷久久99精品91| 天天色,天天操,天天射| 97亚洲精品| 婷婷五月天视频| 97人人看| 99久久人人| 五月丁香五月综合欧美| 五月丁香激情综合久久| 欧美丁香婷婷五月| www热久久yy9| 亚洲最大在线| 久久婷婷成人| 极品少妇高潮啪啪AV无码| 99热九九热| 久久激情五月婷婷| 激情伊人| 国产做爰视频免费播放| 免费观看全黄做爰的视频| 久久99久久99精品免视看婷婷| 亚洲成人网站在线观看| 亚洲热热视频| 超碰久热| 人人草碰| 99这里都是精品6| 天天情色五月天| 久久新| 99热超碰人| 九色91视频| AA片在线观看视频在线播放| 操逼巨乳91| 26UUU在线观看| 五月香蕉婷婷| 大波美女VA网站| 欧美丁香六月在线观看视频| 婷婷情色五月| 99亚洲精品| 99热思思| 六月婷婷在线视频| 色五月婷婷五月久久| 婷婷趴趴| 欧美毛卡| 婷婷婷狠狠| 九九伊人网| 天天综合网网欲色| 婷婷五月天资源| 综合色色婷婷| 五月亭大香蕉| 色色色色色综合| 极品人妻VIDEOSSS人妻| 婷婷精品在线| 日本成人噜噜噜| 激情五月丁香色婷婷| 中文字幕,综合,91| 九九九九九九九热| 狠狠干天天日| 日本44久久在线| 99久精品视频| 在线视频99| 国产免费一区二区三州老师F1F1| 大香蕉AV在线| 综合色网站| 成人va视频| 婷婷五月天天爽| 99视频久久| 综合网色综合| 亚洲天堂亚洲色色色| 婷婷综合六月| 伊人无码高清| 色五月婷婷91| 99热777| 六月撸婷婷| 99热10在线高清播放| 色情五月婷| WWW、日本色丁香、co m| 97视频91| 婷婷综合另类| 婷婷丁香激情五月| 婷婷香蕉| 青草五月天| 99久久99九九九99九他书对| 另类激情五月| a网站免费观看| 丁香蜜臀黄色婷婷五月天| 亚洲天天操| 天天澡天天狠天天天做| 久久丁香五月| 日亚二欧美| 丁香五月综合网亚洲综合欧美狠狠 | 欧美精品中文字幕亚洲专区| 日本三级大片| 久久五月天影院| 婷婷丁香18| 亚洲成人AV电影在线| 亚洲九九99精品视频在线播放| 99精品偷自拍| 久久久久久婷| 婷婷五月天免费视频在线观看| 丁香婷婷激情五月天无毒不卡蜜桃| 婷婷色五月大香蕉在线| 婷婷97狠狠成人网站| 潘金莲AAAAAAAAAA| 婷婷五月天伦理| 日日噜噜夜夜狠狠久久丁香六月| 天堂网亚洲色图| 色婷婷深爱五月| 日韩色色视频| 五月久久噜噜| 国产精产国品一二三在观看| Av狠狠色丁香婷| 天天干天天操天天拍| 综合一区二区三区| 麻豆雪千夏| 99玖玖在线视频| 噜噜噜噜综合在线| 丁香六月婷婷色XXXXX| 五月丁香六月情| 中文AV网站| 密桃激情五月天综合网| 五月丁香久久| 综合五月亭亭9| 亚洲综合色网| 天天天天天天天干| 热久久66| 性综合网| 猫咪伊人久久| 激情图片亚洲| 一区二区乱码视频| 超碰久热| 韩国三级五月天婷婷。| 色99在线视频| 久操热线| 久激情| 天天爱天天做天天日| 啪啪五月天啪啪| 日本丁香五月| 99激情视频| 亚洲啪啪自拍| 久久五月天精品视频| 天天天天天天噜| 97碰碰在线看视频免费| 熟女强人妻一区二区三区四区无| 91凹凸在线| 日日夜夜爽爽| 在线超碰91| AV在线免费播放| 五月综合无码| 婷婷五月天精品| 伊人久久大香线蕉精品| www 五月天 com| 五月天丁香婷婷社区| 涩综合网| 另类图片 五月激情| 成人免费视频一区| 五月丁香在线观看| 亚洲狠狠操| 六月丁香av| 99热网站| 狠狠色综合精品视频在线| 香蕉久久国产AV一区二区| 另类在线| 五月天六月色| 色综合久久伊伊婷婷五月| 久久久久久久久久久jjjj| 久久婷婷内射| 亚州性爱99| 91ncm视频| 色婷婷激情| 玖玖热视频| 国产伦理精品高清在线观看网站一区二区| 久久伊人大香蕉| 日韩在线五月天婷婷| 人人播| 精品九九婷婷| 日韩人妻操逼视频| 五月丁香久久| av大香蕉| 狠狠爱综合| 92久操视频| 激情五月天无码| 久久这里只有精品99| av第一二区| 婷婷五月天直播| 婷婷五月色| 99久久99视频| 婷婷综合激情| 蜜乳AV成人| 狠色狠色狠色狠色狠色网| 26uuu成人网| 婷婷五月天综合久久| 99热这里只有免费精品| 久久免费干| 五月天激情婷婷丁香| 天天综合网站| 久久6这里只有精品| 99自拍视频在线| 九九色播五月丁香| 婷婷综合亚洲| 久婷久婷| 97热精品| 91狠狠综合久久久久久| 色色免费网站| 色婷婷免费观看| 久re热视频| 久久天堂加勒比| WWW.桔色成人.COM| 婷婷成人AV| 色99视频| 久热黄色| 狠狠人妻久久久久久综合丁香| 青青草五月天| 亚洲天堂无码| 五月香蕉网| 99热国产在线| 97超级免费无码| 婷婷香蕉精品| 九九久久玖玖爱| 精品人妻一区二区三区在| 99操| 91男人操女人视频| 性生生活大片又黄又| 狠狠综合网| 色情婷婷| 亚洲亚洲人成综合网络| 国产毛片欧美毛片久久久| 少妇水多A片太爽了| 婷婷伊人綜合中文字幕| 欧美内射AAAAAAXXXXX| 激情婷婷丁香| 五月丁香久久| 波多婷婷久久| 久热精彩视频98| 草久私拍| 丁香婷婷五月六月久久| 久婷五月| 五月天婷婷色在线视频免费观看| 丁香丁婷五月激情| 操操操av| 久久婷婷六月综合综合色| 四色五月婷婷| www.91操| 97色干在线观看| 五月婷婷视频| 丁香五月婷婷婷桃花影院| 91oumei| www.日本91| 亚洲另类在线观看| 婷婷丁香五月天色区| 日日激情网| 操操自拍| 九九碰九九爱97超碰| 69凹凸成人综合网| 免费啪啪啪网站 | 亚洲小视频免费播放| 精品久色| 亚洲成人噜噜| 久久综合中文| seuuu婷婷| 99久久高清视频| 成人av播放| 久久五月天激情视频| 亚洲天码视频www蛋播视频| 五月丁香婷婷深深爱| 婷婷久久网| www,setingting| 亚洲色综合| 丁香五月天婷婷久久综合| 日韩爱操视频| 99热在线观看| 91人人操人人看| 五月丁香婷婷激情在线| 成人丁香| 欧美三级A做爰在线观看| 国产色香蕉精品五夜婷| 婷五月丁香俺| 五月激情婷婷国产精品久久久久久| 91精品久久久久久77777| 国精产品一区一区三区免费视频| 婷婷综合亚洲| 亚洲成人乱码av网站| 久久久久人妻中文| 综合色播| 五月婷婷9| 天天噜天天爱| 久久精品系列| 丁香五月婷婷av影院| 色综合婷婷| 亚洲aV写真天天综合网久久| 综合五月婷婷| 婷婷97碰碰| 激情五月www| 风流少妇A片一区二区蜜桃| 婷婷玖玖五月天| 欧美人人草| 日本天天操| 日本99在线| 欧洲亚洲精品| 欧美性猛交99久久久久99按摩| 全亚洲最大的婷婷五月天网站COM| 亚洲色 视频| 婷婷综合在线| 亚洲午夜精品久久久久久人妖| 色五月天成人| 久久久婷婷色五月资源网| 丁香五月婷婷六月婷| www.五月婷婷久久.com| 成人网站免费在线播放| 深爱激清网| 婷婷热色| 色色aⅤ網| 天天综合精品| 天天拍夜夜撸| 大香蕉啪啪啪| 激情五月色婷婷| 99热99极品观看| 操婷婷久久| 亚洲第一第二网站| 91国产精品视频播放| 五月天播播综合| 日产精品一线二线三线芒果| 精热在线综合网| 99热这里只有精品首页| 久九色| 五月天伊人久久久久| 99综合| 亚洲天堂制| 婷婷色五月天在线观看| 久久久五月天婷婷| 熟女激情网| 国产精品天天狠天天看| 婷婷日| 久久婷婷七月丁香| 人妻VideOssS人妻| 超碰97色| 免费在线观看欧美激情xx小视频| 在线五月婷| 天天操天天曰| 婷婷综合日本| 91久久1118| 午夜大香蕉| 婷丁香五月天| 五月开心婷婷网| 夜夜干 夜夜操| 天天爱天天做天天舔| 97人人操人人干| 天天舔天天插天天干| www.色五月| anquye五月| 丁香五月天婷婷91| 庭庭久久内射| 激情六月五月婷婷综合网| 丁香五月花| 天天操婷婷| 五月丁香婷婷色色色| 91久久婷婷| www.人人操人人看人人想人人摸 人人人人操,COM | 在线观看亚洲视频影院| 日韩黄黄| 丁香婷婷啪啪| 久久久久婷婷五月热综合| 99无码精品| 99热在线免费| 久青操| 噼里啪啦完整版中文在线观看| 九六五月天婷婷| 四川BBB搡BBB爽爽视频| 五月婷婷深深爱| 五月天大香蕉| 黄色AAAA韩国guochansanji| 伊人五月天| 五月天开心成人网| bukadeavzaixian| 黄网在线播放| 九九性视频| 亚洲综合婷婷五月| 亚洲成人中文字幕| 大香蕉人人网| 99re免费视频| 91碰超| 99re这里有精品手机在线| 综合超碰熟| 殴美日比视频| 色久五月| 丁香花五月天激情| 色综合网页| 婷婷色五月天在线| 久久激情网| 伊人丁香六月婷婷| www999日韩精品| 爱久久小说下载网| 五月丁香婷婷啪啪| 色色网站免费观看| 男女99免费视频| 丁香综合久久| 亚洲人妻av伦理| 日韩啪| 操一操插一插| 激情五月婷婷免费视频| 久久久婷婷色五月资源网| 亚洲精品白浆高清久久久久久| 亚洲va国产va天堂va综合va| 色综合久久88色综合中文字幕| 激情六月婷婷| 婷婷丁香大香蕉| 色婷婷丁香五月天在线视频 | 特黄三级片| 亚洲行行色色| 综合婷婷六月| 色九月婷婷综合| 婷婷五月综合啪| 亚洲日韩久久婷婷伊人| 色999亚洲人成色| 99亚州综合精品成人网| 青青草a在线| 在线视频色五月| 久久Xx| 中文字幕网站在线观看| 最新无码专区| 丁香88AV五月婷婷| 噜噜在线| 亚洲综合五月天| 五夜婷婷| 婷婷综合久久| 五月婷婷色综图片| 激情综合激情五月一起草| 国产精品-91JQ就要激情网91JQ6.91JQ27.CASA:16888 | 99无码黄色视频| 精品人妻久久久| 日本特黄aaaaa| 色黑鬼导航| 成人超碰AV| 99精品在线播放| 丁香五月综合高清在线| 思思热久久艹| 色五月丁香五月| 五月天天堂久久| 玖玖精品婷婷| 伊人狠狠丁香婷婷综合尤物| 午夜日日| 国产婷婷五月天| 99人妻碰碰碰久久久久视| www.99精品视频| 亚洲AV无码一区二| 美欧日韩国产成人在战| WWW.久久久久久久| 97色热| 99热免费精品| 丁香婷婷六月激情文学 | 久久五月天精品视频| 久久久久久久久久久久久久久久久精典| 国产日韩精品SUV| 丁香五月激情图片婷婷| 日韩限制级大尺度黑料泄密大尺度视频一区二区在线观看 | www.99热国产| 青青草婷婷综合五月| hd五月婷婷在线| 欧美va欧美va差| 九九免费精品| 噜噜狠狠色综合久| 黄色三级日本| 黄桃AV无码免费一区二区三区| 天天干,天天日| 新激情五月天| 精品9l九九九九九77777| 影音先锋 一区| 五月天综合激情网| 激情六月丁香综合| 五月综合婷婷网| 99这里是精品| 天天色视频| 26uuu精品国产| 色综合天天| AV网址大全在| 欧美日韩成人免费在线| 五月激情五月丁香| 五月天五月婷五月激情网| 婷婷激情五月天在线| 精品人妻一区二区三区四区不卡在| 俺去也在线视频| 操B视频在线播放| WWW.桔色成人.COM| 国产激情AV| 丁香六月婷婷综合| 婷婷五月丁香激情| 国产综合81p| 久久久久亚洲A∨成人乱码电影| | 97资源欧美日韩大香蕉超碰一区| 五月天色丁香| 丁香五月婷婷激情蜜桃| 97色久| 激情五月天小说视频| 99视频这里有精品| 无码日本精品XXXXXXXXX | 日韩av高清| 熟女激情网| 激情深爱综合网| 久久99网站| 美女被肏网站在线看| site:xmssd.com| 丁香六月无码播放| 综合婷婷| 久久色9| 久久成人天| 丁香五月婷婷色情综合| 91人人人人人人人| 久久曰曰| 激情综合五月婷婷丁香| 亚洲欧洲国产精品| 色五月激情图片| 9 99免费视频| 开心色五月天久久久久久久| 99久在线精品99re8热| 极品人妻VIDEOSSS人妻| 激情五月丁香六月综合AVXXXX| 天天爽—爽| 婷婷五月天激情网| 性爱111111| 亚洲人妻Av| 开心五月激情婷婷| 五月丁香婷婷基地| 人人叉久| 五月丁香六月激情啪| 99热综合| 超碰av在线| 婷婷婷婷色| 97超级碰人人| 快乐婷婷五月天| 五月天啪啪视频| wuyuedingxiang| 色色色色色色综合| 99久在线精品99re8| AV网站免费在线| 色色色综合色| 日韩精品无码AV| 丁香五月天激情小说| 亚洲爆乳无码精品AAA片蜜桃| 在线你懂的亚洲欧| 欧美色五月| 九九爱精品网站| 开心综合激情综合| 91丨九色丨东北熟女| 久久激情视频99| 五月婷婷六月情| 丁香五月天日韩无码| 日日做夜夜爱| 538在线精品| 色五月丁香婷婷综合| 99热免费| 91精品电影18T| 99久热| 热99国产精品| 九九RE视频在线精品| 99在线免费视频| 五月天久久网站| 精品99在线| 综合XX网| 日韩 中文 欧美| 婷婷五月天av| 91Chinese在线| 日本婷婷五月天| 五月天激情综合网| 另类 在线| 中文字幕成| 婷婷黄色| 99黄色性生活| 五月丁香六月激情综合| 99在线观看| 五月丁香综合| 开心婷婷五月花| www.seqingwuyuetian| 国产亚洲99| .精品久久久麻豆国产精品| www.五月激情红色| 五月综合激情久久| 超碰中文字幕在线| 色婷婷五月在线| 久久婷视频| 色激情五月天| 婷婷六月丁香久| 久久成人性爱| 五月天色婷伊人| 九月丁香婷婷综合激情| 久9久9热久热| 色五月色五天色情网| 五月天综合激情网| 99久久精品免费精品国产_国产精品久久久久久_国产在线|日韩_久久国产精品电影 | 激情婷婷22月间| 亚洲综合五月天综合| 国产精品18久久久| 丁香五月婷婷色播艳门照| 伊人五月综合网| 婷婷爱五月| 天天日夜夜草进麻麻的子宫| 91热久| 亚洲性爱电影| 天天草天天舔| 色婷婷91激情小说| 在线看片av| 激情综合网五月| 少妇真实被内射视频三四区| 五月天激情国产综合婷婷| 丁香婷婷色九月| 伊人在线视频| 色爱亚洲| 精品国产va久| wwww.色婷婷| 99热精品无码| 成年人看Va免费视频| 婷婷五月色综合| 中文字幕无码人妻少妇免费视频 | 狠狠高潮精品亚洲1| 婷婷激情中文综合| 婷婷五月综合国产精品| 99在线视频播放| 婷婷六月色丁香视频在线观看| 欧美婷婷九月| 色一情一乱一伦一区二区三区| 5月丁香六月婷婷| 亚洲成人在线播放| 91人妻九色大屁股| 四色99久久| 2025年最新亚洲在线欧美| 日本欧美在线| 日本黄色精品| 五月激情综合网| 五月永久激情| 99re久热只有精品6在线直播.com| 黑人巨粗进入警花疼哭A片| 夜夜 操无码| 深爱激情av| 99热在线免费观看精品| www.com任你艹| 丁香五月婷婷激情97| 久久ab| 丁香五月成人论坛| 五月天激情网址| 丰满少妇乱A片无码| 天天日夜夜拍| 99热这里有精品6| 91丨九色丨丰满人妖| 久久天堂女人| 激情久久久| 五月激情婷婷在线| 久久久婷婷五月亚洲97号色| 久久机只有这里精品| 日本熟女视频一区二区| 71在线精品视频一区| 美女被操一区二区| 91打屁股免费看| 婷婷香五月天| 最新av在线观看| 色色五月婷婷丁香| 99免费视频精品| 色婷婷色五月另类综合| 中文字幕丰满人妻无码专区| 七七九九色色| 五月婷婷成人| 五月丁香啪啪啪啪| www.夜夜操.con| 五月婷婷深深的爱| 五月天丁香婷| 丁香婷婷综合激情五月色| 五月天丁香婷婷久久九| 丁香五月天视频| 五月天伊人网| 国产97色在线| 女同激情久久av久久| 99热99热在线| 亚洲色99| 婷婷五月天堂| 婷婷涩五月天综合| 婷婷五月天综合色| renrencaoav| 最新亚洲色色网| 天天拍久久| 婷婷丁香五月久久| 色五月天成人在线| 日本色婷婷综合| 呦呦v线| 婷婷精品在线| 婷婷五月丁香基| 这里只有精品在线播放| 99精品自拍视频| 开心五月六月婷婷| 婷五月丁香俺| 婷婷丁香六月综合激情站| 99开心五月五月丁香激情| 五月天激情偷拍| 伊人青草成人| 五月丁香激情综合六月涩涩爱| 五月综合婷婷开心网| 色婷婷丁香五月丁香| 久久亚洲婷婷| 蜜臀嫩草| 可以看的av网站| 欧美婷婷五月天综合| 丁香五月激情图片| 99无码视频| 天天天天操| 综合五月婷婷| 大学生高潮无套内谢视频| 日本99视频| 国产精女同一区二区三区久| 2050人人操免费工开爱| 六月婷婷日| 综合久久97| 99成人网一区| 天天射天天射一道本日本社区 | 99久久精彩视频| 99综合在线| 天天做天天视天天谢| 色了色综合| 亚洲 视频 导航 一区| 久久伊人婷婷| 日日操夜夜擼| 一起肏在线视频| 五月丁香婷婷久久| 可以直接看的av网站| 五月婷AV| 超碰人人艹| 天天躁日日躁狠狠躁日日躁2022年5月9日| 男女啪啪做爰高潮无遮挡| 五月情涩综合婷婷| 99,色| wwccc久久久| 日韩黄色电影| 疯狂做受XXXX高潮A片| 665566 无码| 99熟女视频| 99热这里只有精品98| 999热这里只有精品| 丁香五月综合| 色五月色综合| 亚洲区,视频区,视频区免费| 思思热在线视频99| 婷婷久久免费| co超碰在线观看| 亚洲啪啪啪啪| 日本va视频| 婷婷五月电影院| 综合久久十| 亚洲精品视频在线播放| 99性爱无码| 99精色| 97碰精品| 99在线爽| 亚洲婷婷五月天激情综合| 91精品综合久久久久久五月丁香| 69天堂99| 婷婷综合久久| 五月激情六月综合| 国产肥白大熟妇BBBB视频| 天堂网啪啪| 青草热视频这里只有精品| 色五月首页| 伦乱人妻| 色五月婷婷五月久久| 九九综合| 97超喷视频在线观看| tingting五月天亚洲| 99精品自拍视频| 欧美A A A A A| 狠狠 婷婷| 婷婷激情图片| 99热国产婷婷| 国产另类综合| 熟女人妻一区二区三区免费看| 久re热视频| A久网| 激情婷婷狠狠干综合| 91人妻人人做人碰人人爽九色| 美女丁香五婷婷| 久操香蕉| 五月丁香综合啪啪啪啪啪| 97精品在线| 色欲婷婷五月天丁香| 99九九视屏| 国产AV一区二区三区日韩| 99国产er热视频| 99视频网址| 亚洲成人九九九| 色色色色色色网站| AV成人在线网站| 色。 日日日| 少妇被躁爽到高潮无码文| 欧美五月婷婷| 99热这里只有精品3| 99精品手机在线视频| 色 五月婷婷基地| 婷婷五月花| 丁香五月婷婷婷婷欧美综合| 亚洲综合色色色| 区美毛片子| 久操热线| 婷婷操逼| 玖玖爱伊人| 99九九精品| 狠狠干婷婷| 天天久久九九| 丁香五月婷婷色偷偷| 人人97操| 五月欧美丁香在线观看| 人人操婷婷| 激情五月天小说网|