99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜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
返回資訊列表
丁香婷婷六月激情文学| 中文字幕人成乱码在线观看| 伊人婷婷青青cao| 九九热免费视频| 九九精品视频在线观看| www.狠狠色.com| 日韩精品一区二区亚洲AV观看| 女人天堂AV| 九九亚洲视频| av操一操| 涩涩涩.com| 久久久久妻| 91丨九色丨首页| 五月丁香偷拍| www五月| 人人做人人看人人摸| 色天堂A| www91色网站| 丁香五月综合| 久久思思热| 五月开心网| 成人九九视频| 开心五月丁香啪| 丁香五月色色| 九九99在线免费在线观看视频| 国产免费一区二区三州老师F1……| 亚洲av免费在线| 国产裸舞表演WWWW| 五月婷婷欧美激情| 五月天婷婷丁香社区| 五月天激情网图片 - 百度| 99精品视频推荐| 色婷婷丁香花五月天| 色欲丁香| 激情六月天| 五月婷婷激情日本| 色色五月天丁香| 五月天婷婷丁香| 天天 青草 丝袜制服 在线| 六月色色| 99在线观看免费精品视频| 99热网站| 日 日干 日日做| 青青操绿aaa一区日v| 站长推荐无码播放| 六月婷婷深深爱| 97久久超碰| 色五月天丁香婷婷| 天搞天天天天天| 亚洲成人综合在线| 激情综合激情五月| 丁香婷婷成人网| 婷婷五月天激情五月天| 婷婷五月天伊人| 亚洲操b| 久久婷婷综合五月趴| 免费播放99性爱视频| 操操操操操电影网| 欧美成人色婷婷| 成人开心五月天| 婷婷六月综合激情| 婷婷六月丁香五月| 日韩AV无码影片| 九九婷婷激情综合网| 免费看欧美成人A片无码| 久久激情视频| 玖玖综合色区在线观看| 26UUU欧美激情一区二区| 丁香 亚洲 久久| 超碰免费99| 久久99免费视屏| 色五月久久成人婷婷| 秋霞网在线观看理论91| 五月天丁香成人社| 日韩欧美不卡| 97色色色| 无月播播激情在线观看视频| 色九月婷婷| 日本片日本片祼观看网站在线看中文版网页在线看 | 爱iii做iiii日| 嫩草免费视频| 69精品人人人人| 亚洲婷婷五月草久| 99精品一二三四视频| 婷婷九月色| 91人久| 丁香五月ⅤA久久久| 4438激情网| 色五月天.con| 亚洲成人av在线播放| 久久久婷婷| 亚洲精品国产A久久久久久| www.99操| 日日干夜夜撸夜夜骑| 日本久久爱| 黄网免费看| 国产乱妇无乱码大黄AA片| 超碰在线免费观看3 9| 成人版视频在线观看| 九九99视频精品| 色狠狠综合| 97色永久免费视频| 色停停影院五月天| 日韩av大全| 99精品视频免费观看| 色色五月婷婷| 99热国产精品| 偷拍91九色| 亚洲视频一区| 99视频这里只有免费精品| 激情综合网激情五月丁香| 久久久久婷| 爱久久小说下载网| 久久在这里有精品| 超碰99在线| 激情五月天色婷婷综合| 自拍盗摄 另类| 开心激情五月天网| 久久综合中文| 久久狼人天堂| 久久久五月五丁香| 五月丁香婷婷色色| 日韩婷婷| 色色色色色色色色网站| 成人网站在线观看视频| 91.com男女操| 五月丁香六月婷婷成人| 亚洲色色色| 欧美综合五月天婷婷tin| 91色五月| 九九热在线99| 色综合爽| 亚洲妇女熟BBW| www.henhenl| 婷婷五月色亚洲| 被强行糟蹋的女人A片| 美日韩成人| 五月激情在线| 婷婷伊人综合中文字幕| 丁香五月婷婷色| 日本97在线| 丁香五月a| 亚洲乱码日产精品BD| 五月婷久久| 婷婷五月天丁香社区| 玖玖婷婷色| 婷婷亚洲欧美丁香五月| 成人资源在线| 婷婷综合激情| 天天天天天操| 色婷婷丁香AV综合| 五月婷婷偷拍| 欧美va亚洲va| AA片在线观看视频在线播放| www.成人婷婷综合| 天堂综合久| 五月丁香五月综合欧美| 大香蕉五月天| 专区无日本视频高清8| a色色色色色| 9久热| 五月香蕉婷婷| 五月丁香婷婷老司机| 视频色色色色色色| www.色五月.com| 99精品久久久久久久婷婷| 99九无网码| 五月久久婷婷丁香| 九九99视频精品| 九月丁香婷婷| 狠狠高潮精品亚洲1| 91日视频| 中文字幕日产A片在线看| 久久人妻系列| 欧美综合五月丁香六月婷| 日韩成人无码人妻| 色色操| 九九九精品视频免费观看| 任你爽视频| 天天摸天天高潮天天爽| www.97碰碰com| 变态另类9| 激情涩涩网| 激情五月丁香五月色| 97婷婷五月| 最新日韩久热免费视频看看| 91精品综合久久久久久五月丁香| 五月婷婷自拍| 久青青久| 五月亭大香蕉| 97日韩无套内| 日本高清久久| 综合久久五月天| 五月婷中文字幕| 被强行糟蹋的女人A片| 色五月婷激情| 久久色频| 久久婷五月综合| 99热这里只有精彩| 这里只有精品无码| 99色视频在线观看| 九九色中文| 五月丁香六月片| 色无码| 影音先锋色色色资源色资源色| 99视频| 五月丁香六月婷婷色情| 色婷婷在线视频综合| 久久刺激网| 黄色热99| 日本猛少妇色XXXXX猛叫| 99久久九九| www.婷婷五月天.com| 天天日中文| www.99久| 久久亚洲天堂| 五月丁香六月婷婷姐| 丁香六月婷婷综情欧美| 久久色天堂| 婷婷香蕉精品| 日本乱子人伦在线视频| 五月婷婷啪啪| 久久亚洲婷婷| 激情六月天| 五月丁香婷婷爱| 极品人妻videosss人妻| 第二色AⅤ| 97干视频| 99ri国产在线| 久久精品63| 国产av天天插天天操天天爽| www.色五月| 91九色|疯狂|高潮|对白|| 人人人操97| 亚洲色综合| 97日本在线| 97婷婷五月丁香| 国产一区二区三区影院| 日日干日日| 99久久性爱| 99久在线| 五月天激情电影| 丁香五月情| 99视频这里有精品| 五月丁香成人| 色综合色色色| 99免费在线视频| 玖玖热视频| 色九月婷婷综合| 人人妻久久妻| 99热碰碰| 亚洲男女激情| 爱久久小说下载网| 婷婷五月天 丁香五月天 裸体| 色综合天天| 色五月激情五月天| 国产精产国品一二三在观看 | www.91九色| 久久五月天综合| 5月婷婷激情在线| 色五月婷婷很很操| 久久五月激情| 香蕉AV777XXX色综合一区| 伊人五月天在线| 亭亭玉月丁香| 操操操B| 色五月丁香com| 日韩AV无码影片| 激情综合丁香六| 碰碰碰97国产| 任你操精品免费| 久热超碰91| av在线激情| 国产精品社区| 激情亚洲色图片丁香综合| 欧美毛片www| 五月天小说激情| 精品99爱免费视频在线观看 | 91热视频色网站| 欧美日韩成人免费在线| 婷婷激情九月| 色婷婷激情小说网| 婷婷久久色| 五月色婷婷影院| 狠狠操狠狠爱| 久久女伦| 人妻AV在线| 婷婷久久夜| 女力报到正好爱上你| 99综合色| 99久久九九| 国产精品91抖高| 久久爱综合| 色五月天堂| 久久网站观看免费欧洲国产| 久久丁香久久| 五月婷婷丁香| 色综合色色色色| 色久婷婷五月| 婷婷网五月天| 国外亚洲成AV人片在线观看| 久久香蕉丁香| 天天爽夜夜爽| 五月丁香六月婷| 夜夜噜夜夜奇| 久久多色| www.九九婷婷| 婷婷伊人激情婷婷| 99色天堂| 五月婷婷丁香六月| 日日日影院| 狠狠干综合网| 亚洲一二三网| 久久狠狠高潮亚洲精品 天天摸夜夜摸夜夜狠狠摸| 丁香综合伊人AV| 九月婷婷激情| 色欧美日| 久久九九一區| 五月丁香婷婷中文网| 在线观看欧美| 久久 中文 日本| 思思热久久阴99| 五月在线| 99久久久精品| 久久这里只有欧美| 91蝌蚪窝视频在线| 亚洲色婷婷99一9|| 五月天激情网站| 九九99男女视频在线观看| 色色综合日韩| 亚洲五月天激情| 嫩模aV在线| 日日操夜夜骑| txt五月激情四射网综合俺也来了 五月天婷婷丁香人人操91 | 97日本在线播放| 激情五月深爱五月观看| 久久狠狠干| 久久婷婷丁香| 大香人妻| WWW.婷婷| 久久婷婷资源| 婷婷激情六月| 五月婷婷六月丁香玖玖玫瑰91| 全网最新网黄大秀直播高清,主播国产录屏在线| 五月天啪啪啪| 久久久久久久8| 天天爽天天摸天天爱| 少妇性按摩无码中文A片| 婷婷丁香五月麻豆| www.minyis.com【JT】实力收量可预付QQ2101460746 | 色五月成人在线| 天天插天天插| 欧美日韩AAAAA| 99免费| 國語久久婷| AV网站免费在线| 操日视频| 亚洲天堂色色| jiujiu无码五区| 色色色网站| 免费99情趣网视频| 日韩青青| 天天玩夜夜操| 91爱操| 能直接看的av网站| 插插插色综合网| A片试看50分钟做受视频| 丁香六月高清视频| 五月天丁香花婷婷| 特黄三级片| 色999亚洲人成色| 俺去也五月天婷婷| 狠狠色丁香婷婷基地| 国产在线aaa片一区二区99| 日本狠狠爽| 丁香婷婷狠狠97| 激情婷婷网| 亚洲婷婷丁香五月| 操人无码| 五月丁香婷婷人体| 91日韩美女被插视频| 婷婷五月天Av| 婷婷丁香五月精品| www.99热这里精品| 五月婷婷综合网| 色婷婷综合五月| 婷婷综合玖玖五月| 亚洲精品成人| 99精品久久久久久久婷婷久久| 综合另类激情| 五月开心激情| 婷婷六月五月天综合| 超碰在线观看caop| 丁香五月激情网| 婷婷成人综合五月| 国产免费一区二区三区三州老师F1F1.CC| 爱久综合| 99日韩网站| 大香蕉大香蕉在线影院| 成人做爰A片免费看网站找不到了| 五月丁香婷婷婷婷综合网| 五月天大香蕉AV| 色综合天天综合成人网| 婷婷五月综合激情免费| 六月婷婷五月丁香首页| 五月天婷婷涩涩| 九九热九九| 日本激情五月| 天天爽夜夜爽夜夜爽精品| 91蝌蚪窝视频在线| 亚洲99热| 国产无人区大片| 丁香六月亚洲| 99操久久| 777久久久| 99性爱| 九九热在线精品视频| 天堂爱爱| 婷婷精品视频| 婷婷五月天丁香社区| 三年高清大片免费观看国语| 日韩一级片| www.丁香五月| 五月激情久久综合| 伊人久久婷婷| 操九色| 2050人人操免费工开爱| 99综合网| 五月丁香色| 99热这里是精品| 天天色五月| 人人97碰| 激情视频91| 97综合视频在线| 天天干天天爽| 99热这里只有精品3| 99在线精品免费视频| 婷五月丁香| 日本色色色| 五月婷婷七月丁香| 一本色道久久88加勒比—| 青青久久五月| www.金莲av| 99ri在线视频| 97人人干| 香蕉AV福利精品导航| 久久婷婷色| 天天色粽合合合合合合合| 人妻操操色| 久久er免费视频| av在线中文| 久久久五月天网站| 99热精品10| 日韩无码亚欧无码| 综久久久| 五月天丁香综合在线| 欧美在线ee日韩| 日本人妻伦在线中文字幕| 色999;丁香五月| 综合色99| 超碰av在线| 天天日天天爽| 日本欧美成人片AAAA| 丰满人妻一区二区三区| 色婷婷五月综合| 五月天社区| 久久精彩视频| 日本人妻伦在线中文字幕 | 五月色欧洲| 婷婷五月天国产手机在线视频观看| 色性综合| 色综合五月婷婷狠狠干| 天天爽夜夜爽天天爽夜夜爽| 九九婷婷五月天| 五月色综合网| 综合久久婷婷| 熟妇内谢69XXXXXA片| 99在线精品免费视频| av国产精品| 一区二区成人电影免费播放| 亚洲成人中文字幕| 九九热黄色| 久久综合这里只有精品1 | 最新久久网址| 亚洲婷婷五月天| 色135综合网| 九热网站| 色九月婷婷丁香| 婷婷五月色情天| 婷婷五月成人有| 涩五月丁香| 色在线视频网2025| 五月激情小说网| 色色热| 欧美,日韩成人在线| 久久超级碰视频| 久热伊人| 深爱婷婷丁香五月激情| 五月天色社区| 狠狠色综合久久久久| 久久久99日本大片| 激情com| 色五月丁香伊人| 九热视频在线精品15| www.99热| 停停综合色色| 天天色五月| 五月天啪啪啪| 无码AV免费精品一区二区三区| 伊人大香蕉爱聚| 国产免费一区二区三区三州老师F1F1.CC | 99网| 欧美五月婷婷| 91久久婷婷人人澡草 | 亚洲激情av| 26UUU精品一区二区c〇m| 色婷婷亚洲精品天天综| 97色色视频| 超碰国产在线观看| 久久一二三视频| 色99在线视频| 亚洲图色五月天| 久热这里只有精品6官网亚洲| 久久这里只有欧美| 大香蕉五月天| 丁香五月六月综合激情| 婷婷五月综合激情免费视频| 天天插天天插| 国产avapp 网| 五月花激情| 天天日天天插| 免费九九热| 五月丁香中文字幕| 伊久大香蕉| 五月丁香六月激情综合网| 色情五月停停丁香| 不卡在线视频| 99re热| 欧洲综合视频| 丁香五月777| 婷婷综合五月色播| 午夜天堂一区人妻| 欧亚色色| 色五月在线播放| 久久91久久91色欲精品| 丁香五月色欲| 国产99久| 丁香五月天视频在线播放| 久久久婷婷婷| 婷婷激情肏屄网| 久久婷婷成人| 91AV婷婷| 丁香五月婷婷啪啪啪| 丁香色五月AV在线| 激情五月开心五月丁香五月| 31色区视频免费看| 五月天激情AV| 婷婷五月欧美| 另类小说激情五月天| 超碰婷婷五月| 91精品综合久久久久久五月丁香| 亚洲在线网站| 99色免费观看全部| 色五月,婷婷大香蕉| 五月网在线| 日碰日| 热99热9| 日韩五月婷婷久久| 婷婷五月激情五月激情| 超碰伊人碰婷婷五月| 五月丁香六月婷婷欧美综合| 男人的天堂97| 久久婷狠狠色| 色婷婷久久| 五月在线| 色天天综合色| 十二区无码| cc精品国产性传播| 91 原创 在线 九色| 丁香五月色五月| 狼人婷婷综合| 五月天成人综合| 亚洲精品乱码久久久久99| 日本熟妇乱妇熟色A片蜜桃| 婷婷色五月久久| 丁香五月婷婷色综合| 日日艹思思热| 五月丁香婷婷综合视频| 色色色综合色| 色婷婷六月开心中文字| 葵花AV在线| 日本WWW九九九| 99啪啪视频| 国产成人+综合亚洲+天堂| 狠狠草婷婷| 亚洲一二三网| 日韩性视频| 九九99视频精品| 大香蕉伊人丁香五月| 开心深爱激情网| 香蕉狠狠爱视频| 九九热最新| 开心五月激情婷婷| 天天综合网91| 日日操夜夜擼| 91九色熟女| 99人这里只有精品| 大香蕉丁香| 日本九九九九| 激情五月综合网最新 | 麻豆科斗777| 99热午夜精品| 玖玖资源在线视频| 五月好婷婷| 色婷婷丁香| 激情婷婷丁香| 中文字幕在线日亚州9| 五月丁香激情综合六月涩涩爱| 久久久久久婷| 六月激情婷婷| 七七色色综合| 五月婷综合网| 久久精品爱爱| 免费看成人747474九号视频在线观看| 成人精品视频99在线观看免费| 夜夜爽天天干| 色五月丁香婷婷综合| www一起操| 色九九综合色| 五月丁香色色网| 天天综合色| 日日色五月天| 欧美色图45678| 五月丁香人妻| 五月婷婷伊| 无码色色色| 五月综合色| 米奇影视资源777狠狠色婷婷五月天激情网 | 99色婷婷| 99色久| www.金莲av| 激情深爱五月天| 丁香五月天论坛| 99色1| 激情综合网丁香| 成人午夜免费电影| 丁香五月婷婷久久久| 国产精品天天狠天天看| 五月天激情婷婷| 99亚洲视频| 日日杆天天| 日韩色色视频www| 亚州激情在线视频| 婷婷激情丁香五月天综合| www.99热这里只有精品| 五月色天五月色| 五月天激情站| 美女天天久久| 可以免费观看的av网址| 国产一级片| 9999三级片| 成人在线综合| 熟女网站久久| 色综合中文| 丁香五月色五月| 99热热热国产超碰| 欧美丁香五月| www.99精品视频| 久久久九九九 99| 婷婷五月综合丁香久久| 免費观看aV在线网址| 丁香六月在线综合| www.99色在线| 伊人大香蕉毛片| 五月天婷婷色综合| 婷婷丁香先锋资源网站| 五月婷婷六月丁香首页| 手机旧版看人妻1025| 性热视频99精品| 久久视频婷婷| 五月婷婷激情网| 婷婷五月天综合激情| 五月色婷婷亚洲| 开心四月婷婷在线色播播| 丁香月五月天婷婷久久| 天天干天天干天天干天天干天天干天天| 色婷婷婷综合五月天| ss99热| 黄色笑话深爱激情网丁香五月婷婷啪啪啪啪啪 | 男女啪啪做爰高潮无遮挡| 亚洲乱码日产精品BD| 亚洲AV成人无码精品| 天堂久久大香蕉| 国产激情在线| 伍月婷丁香婷| 综合五月激情| 久久99精品久久久久久三级| 九九99久久| 免费看成人AA片无码视频吃奶| 亚洲综合色成丁香五月色| 91主播在线| 色五月婷婷操逼| 久久久久久久综合狠狠综合| 色丁香婷婷美女视频网站| 婷婷色色欧美| 99亚洲天堂| 精品国产乱码久久久久久免费| 超碰人人在线观看| 丁香激情四射| ji'qing'luan'ren'lun| 久久九九色| 人人干人人看| 黄色AAAAAAA| 婷婷久久五月丁香| 激情美女五月天激情在线| 俺去也婷婷| 99热国产| 久久99久久久| 五月六月丁香婷婷在线观看| 色色色综合色| 97操碰| 久久婷婷丁香五月宗合| 婷婷六月丁香色| 丁香五月AV| 超pen个人视频97| 99热热这里只精品996小说| 色婷婷在线视频久| 婷婷大乡焦噜噜| 久久久99精品免费观看| 日本色99| 婷婷丁香人妻天天| 伊人综合网站| 亚洲五月天婷婷| 丁香婷婷色五月天| 五月丁香六月激情| 久人操| 久热最新视频| 激情深爱五月天| 四季AV综合网| 一本综合丁香日日狠狠色| 啪啪91| 視频福利乱色| 九九热视频免费| 丁香五月激情网| 激情av在线| 五月天激情啪啪| 亚洲精品V天堂中文字幕| 丁香五月香蕉| 五月丁香在线| 97sese婷婷| 九月婷婷综合| 99狠狠| 天天狠天天叉| 999热这里只有美国精品| 激情五月深爱五月| 丁香五月天堂网| 99色五月| 亚洲色色色| 免费观看日韩成人av| 天天干天天 亚洲| 99这里都是精品| 九玖视频这里只有精品| 九九热九九| 精典久久| 五月天激情久久| 国产美女主播vip| 噜噜噜久久亚洲精品国产品91| 亚洲精品又粗又大又爽A片| 亚洲婷婷丁香五月在线| 99久在线精品99re8| 4399在线日本A片| 午夜丁香综合婷婷| 狠狠干综合网| 香蕉婷婷色五月| 久久综合婷婷五月| 99玖玖在线视频| 欧美色图天堂网色| 99热久草| 91一起艹| 丁香六月婷婷| 五月婷婷六月丁香综合视频在线| 日本三级大片| 天天干天天日日| 少妇性按摩无码中文A片| 婷婷丁香五月激情中文字幕版| 五月综合视频| www.久久66| 九九热狼人| 五月婷婷激情视频| 五月丁香综合中文| 人人操AV| 丁香婷婷综合激情五月色,开心五月丁香花综合网,激情综合五月亚洲婷婷,五月天 | 天天插综合| 激情另类综合| 热思思九九| 婷婷香五月综合激情| 丁香五月婷婷激情蜜桃| 青青草原伊人网| 大香蕉天堂| 婷婷五月天综合在线| 99热6这里之有精品| 日本黄色三级片内射| 婷婷五月丁香网| 婷婷色色欧美| 婷婷午夜天| 婷婷激情蜜桃玖玖丁香| 亚洲久久天堂| 性热视频99精品| 丁香五月激情婷婷视频| 欧美肉大捧一进一出免费视频| 亚洲国产成人裸舞| 五月婷婷,狠狠操| 日日操日日撸| 婷婷深爱五月丁香网| 71在线精品视频一区| 五月丁香激情综合网| 精品网站99| 丁香激情五月天| 日本在线视频www色| 欧美日韓成人亚洲精品另类| 九色视频入口91| 亲子乱AV一区二区三区下载| 五月婷成人网| 成人一区在线观看| 婷婷视频网| 99色爱| 五月天激情四射| 超碰av在| 91婷婷丁香| 人妻操操色| 亚洲色婷婷| 99啪啪视频| 日韩人妻无码专区| 色丁香久久久| 婷婷综合五月天| 久久久天堂国产精品女人| 成人五月天视频| 欧亚洲在线高清视频| 99久久综合狠狠综合久久| 亚洲性爱电影| 婷婷五月精品在线| 碰97久久| 8050一级网| 久久国产色| 看国产探花操逼三级片| 九九热在线观看6| 一区二区你懂的| 色综合99| nvrentiantang av| 丁香婷婷免费| 婷婷五月天综合网| 七七久久婷婷| 风流少妇A片一区二区蜜桃| 久久九精品| 九九热短视频在线观看 | 五月丁香六月合| www.色婷婷| 第四色大香蕉| 抽插特写| 国产毛片精品一区二区色欲黄A片| 婷婷射丁香| 五月天婷婷在线播放| 日日干综合| 激情婷婷丁香五月天小说| 超碰网站在线观看| 99久久综合狠狠综合久久| 91超级碰| 色色婷婷五月天| 99热成人| 天天干 夜夜爽| 色五月色五天色情网| 亚州精品色情在线观看| 婷婷伊人综合中文字幕| 丁香花成人区| 禁片二区| 不卡在线超碰| 国产人妻人伦精品一区二区| 色色A| 色欲久久综合| 丁香六月色婷婷| XX久久| 欧美日韩成人在线网站| 99热久| 亚洲欧美一区二区三区四区爱爱动图| 丁香五月综合在线播放 | 亚洲乱码日产精品BD| 婷婷午夜| 天天操夜夜操| 激情婷婷五月天| 99久久极情精品一区| 激情丁香社区| www九九热| 色婷婷综合亚洲| 五月丁香婷草| 91色综合| 久久婷婷亚洲| 一点色成人网| 九九色婷婷五月天| 任你爽在线视频| 日韩精品一曲二曲三曲四曲五曲| 久久久久久久久月丁| 在线看九一V图片| 日本乱子人伦在线视频| 丁香五月婷婷色综合| 国产在线激情视频| 狠狠爱青青草| bukadeavzaixian| 狠狠综合色网| 91视频一起草| 丁香五月天在线观看视频| 激情综合综合综合| 99在线视频在线观看| 99热在线观看这里只有精品| 99在线精品在线视频| 十一月婷婷激情四射| 99玖玖免费视频| 五月成人网站| AAA级久久久精品| 1024在线视频| 黄网网站在线播放| 思思99精品视频| 五月天激情子轮| 五月色综合| 亚洲国产99| www.seqingwuyuetian| 午夜福利成人AV91| 久久久激情视频| tingting五月天亚洲| 26uuu另类亚洲欧美日本一| 五月天开心网| 99热伊人| 香蕉色色网| 亚洲国产成人在线| 五月天全国最大成人网| 丁香六月婷婷综合缴| 色播五月婷婷| 伊人爱爱日本| 九色91美女| 四虎婷婷五月天| 五月激情影院| 欧美性做爰大片免费看办公室| 91九九热| 亚洲婷婷视频| 五月开心深深爱激情综合| 五月丁香无码| 色婷网站| 五月婷在线观看| 亚洲国产色色| www激情| av五月丁香| 另类的婷婷| 激情五月天小说网| 香蕉久久国产AV一区二区| 五月丁香六月婷婷的女人| 婷婷五月成人有| www,天天干| 五月花婷婷| 久久精品婷婷五月丁香| 99热精这里只有精品| 久久婷婷综| 丁香五月瑟瑟| 九九热再线九九视频免费在线观看| 538在线精品| 少妇AB又爽又紧无码网站| 婷婷色在线视频| 婷婷四色成人综合色视| 色噜噜狠狠色综合日日| 国产亚洲成AV人片在线| 日日操夜夜爽天天天| 亚州操操| 男人的天堂在线婷婷 | 青青草原福利在线| 亚洲中文字幕在线观看| 欧美五月婷婷| 五月色婷婷综合| 欧美成人AAA片一区国产精品| 综合AV在线| 狠狠人人婷婷| 国产在线网址1| www.狠狠狠狠| 97色色色| 99热人人| 国产婷婷五月天| 月色色综合婷婷网| 五月婷婷我| 少妇熟女视频一区二区三区| 亚洲综合激情五月久久| 午夜九九九九九九九九九九九九九| 九月丁香婷婷网| 精品99爱免费视频在线观看| 黄网在线播放| 五月天激情黄色小说在线观看| 婷婷五月,偷窥偷拍网| 丁香五月天堂亚洲社区| 激情激情激情网| 亚洲精品久久久久久久久久吃药| 五月丁香爱婷婷深深| 综合色播| 99九色视频在线观看| 99超级碰碰| 久久综合婷婷五月| 亚洲人成色A777777在线观看| 另类图片五月激情| 亚洲色色香蕉| 人人操人| jizzdr| 久久丁香九| www夜夜| 狠狠色狠狠爱| 色色色综合| 99碰| 精品婷婷| 五月天丁香六月综合| 激情五月天综合| 综合狠狠伊人| 91五月天| 啪啪干伊人婷婷| 亚洲AV影片在线观看| 日日懆天天懆| 国产超碰av| 噜噜狠狠色综无码久久合欧美| 人妻五月天激情开心网| 开心激情婷婷| 色色五月天丁香| 亭亭五月丁香五月天激情| 激情丁香久久| 亚洲国产精品VA在线看黑人| 日本熟女一区二区| 五月婷婷亚洲综合在线| 亚洲丁香五月天视频| 91肏| 天天影院色| 99re思思热这里| 五月婷九九草| 婷婷五月综合久久中文字幕| 激情五月天婷婷直播| 国产毛片欧美毛片久久久| 99热综合在线观看| 色色色五月天激情资源| 99久久婷婷五月综合| 丁香五月激情六月欧亚激情综合导航| 国产这里只有精品| 日韩色色视频www| 五月天婷婷激情在线色图| 九九热黄色| 五月丁香六月婷婷中合网| 丁香五月天91| 九九这里是免费的视频5| av 一区三区四区| 亚洲成人日韩无码精品| 五月婷六月| 青青草a在线| 色级婷婷| 99免费| 久久A区B区| 天天综合网91| 琪琪布丁香社区激情五月天| 婷婷六月色| 99高级会所久久| 久婷视频| 久久激情网| av狠狠操| 婷婷伊在线| 在线91日韩| 久久婷婷影院| 俺去也综合| 色婷婷在线视频久| 99视频91| 极品人妻VIDEOSSS人妻| 五月天成人在线视频网站| 99热精品少| 久久色五月天| 思思re最新视频| 五月丁香久久综合| 夜夜撸日日骑| 久久机热这里只有精品免费视频| 丁香五月婷婷激情蜜桃| 99热官网| 激情六月天| 5月丁香综合网| 久99在线视频| 丁香五月 性爱| 超碰精品在线| 操日视频| 色丁香五月天婷婷| 亚洲国产精品五月天| 99九精品| 9九九久久精品无码专区| 天天干 夜夜爽| 亚洲va国产va天堂va综合va| WwW天天干| 91啪啪| 天天肏高清在线| 亚州成人综合在线| 五月婷婷五月天| 久久久WWW| 五月久久婷婷成人网| 五月天婷婷开心| 色婷婷色五月另类综合| 丁香婷婷五月六月久久| 日本欧美啪啪| 色婷婷五月综合激情中文字幕| 天天天干夜夜夜操| 五月天天综合| 五月婷婷丁香在线| 人妻尝试久久久久久久久久久久| 五月天天天综合| www.久久久.com| 91九色小视频| 看逼中文字幕| 久热精彩视频98| 丁香婷婷五月份| 成人午夜视频精品一区| 天天综合网在线| 五月综合色| 婷婷综合色| 久热91精品| 超碰高清在线| AVDV久久| 色五月婷婷九月| 天天插,天天射| 夜夜操,天天撸| 深爱五月日韩| 久久婷婷五月天激情唯美| 99色播| 婷婷成人丁香色情基地30 | 色噜综| 五月天欧美激情| 偷拍视频五月天| 开心五月丁香婷婷| 日逼免费视频| 婷婷五月天亚洲精品| 丁香婷婷五月六月天| 欧美熟女乱又伦| 色婷婷亚洲在线| 婷婷五月丁综合| 婷婷瑟瑟五月天| 五月天亭亭俺也| 狠狠色成人影片| 婷婷五月综合体验看| 91人碰| 影音先锋噜一噜| 91碰碰| 99久久99九九99九九九| www.99视频| 亚洲乱码日产精品BD| 久久久婷丁香五月| 91综合色噜噜| 六月婷婷七月丁香| 色五月丁香五月| 夜夜操夜夜爽| 亚洲综合色丁香五月天| 五月天停停成人网| 亚洲天天操| 99久久99九九九99九他书对| 激情五月婷婷视频一区二区三区| 91九色精品熟女内射| www.色五月| 91狼友视频网页更新| 丁香婷婷老司机久操| 激情五月,激情综合网| 丁香蜜臀黄色婷婷五月天| 五月婷色| 婷婷五月天伦理| 色综合久久88色综合天天| 99热这里有精品| 婷婷五月天影院| 婷婷伊人綜合中文字幕| 亚洲无AV在线中文字幕| 激情五月婷婷色色| 大香蕉五月天婷婷| 襙比视频| 夜夜爽天天爽| 深爱激情五月天| 日韩一级淫乱片一区二区三区| 97色图片中文字幕视频在线观看| 婷婷开心激情| 久久97久久99久久综合欧美| 成人一区在线观看| 9+1视频网址| 青青草婷婷综合五月| 五月婷视频在线| 亚洲激情在线| 奇米四色五月天| 五月丁香婷婷基地| 9999热这里只有精品| 婷婷久久免费| 久操操| 国产亚洲av片| 五月天六月丁香| www.henhengan| 五月丁香激情综合| 99在线爽| 99色啊| 五月久久婷婷天堂视频| 日日影院 | 色婷婷先锋| 美女主播野战视步页| 99精品久久久久| 亚洲国产精品VA在线看黑人| 五月婷激情影院| 婷婷六月丁香色| 97婷婷狠狠| 97啪在线观看视频| 婷婷五月天AV| 久久精热| 中文毛片无遮挡高潮免费| 丁香五月综合激情性爱| 六月色五月天天婷婷| 五月色网| 97碰碰人人视频| 婷婷五六日| 91啪啪视频| www. 五月. com| 六月丁香激情最新更新| 色五月激情| 丁香五月婷婷亚洲天堂| 色婷婷伦理| 色色射| 欧美日比视频| 九九亚洲视频| 国产精品A成V人在线播放| 精品人人操| 久久天天| 亚洲免费成人电影AV| 五月丁香啪啪激情| 成人丁香五月| 六月婷婷综合激情| 婷婷色正月| 九色99视频| 五月永久激情| 色色国产| www色色色com| 日韩久热| 99久久精品国产色欲| 色五月天本日| 丁香激情综合| 天天撸夜夜爽| 一本大道嫩草AV无码专区| 99久久精| 色九月| 色啪影院| 色射影院| 成人欧美日韩| 九九色大香蕉| 精品爆操| 人人草人人舔| 午夜日日| 欧美丁香五月夫妻天| 五月天丁香看婷婷| 人人爱人人摸人人澡| 久久久久9久无码视频| 丁香五月天婷婷中文| 日本熟妇乱妇熟色A片蜜桃| 夜夜骑操AV| 亚洲丁香花色| 凹凸探花电影| 成人国产欧美大片一区| 亚洲视频丁香网va| 色伦专区97中文字幕| 丁香开心深爱| 七七婷婷综合| 一级A片天天操夜夜操| 超碰妻人人| 在线观看中文字幕| 日熟女|