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
返回資訊列表
色色五月丁香婷婷| 精国产品一区二区三区A片| 亚洲国产黄色电影| 六月丁香啪| 五月色综合网| 久久久91| 狠狠色综合网站久久久久| 琪琪色五月天| 亚洲亚洲人成综合网络| 亚洲色A| Aaa久久| 婷婷丁香六月影视| 一区二区三区四区牛| 久久五月丁香| 国产日比| 大香蕉综合视频在线| 五月丁香色婷婷伊人| 综合色播| 777色色色| 碰碰碰91| 丁香色色网| 丁香婷婷久久激情| 六月综合婷婷开心伊人| 色综合99| 这里只精品热在线18| 人妻操日日| 五月婷婷狠狠干| 亚洲中文字幕AV| 99色天堂| 色99网| 久久久久久久8| 丁香花五月天激情| 婷婷色五月综合丁香| 成熟妇人A片免费看网站| 丁香美女主播视频在线观看| 97碰在线| 五月婷婷先锋| 日本色婷婷五月天成人电影| 性爱技巧五月| 97色天堂| 天天摸,天天爽| 大香蕉视频99| 99热6精品| 激情五月婷婷在线区| 国产偷人爽久久久久久老妇APP| 开心婷婷五月中文字幕组| 99视频啪啪| 五月天丁香综合久久国产| 91碰碰碰| 操逼巨乳91| 在线综合网| 另类综合国产| sesesesezonghe| 狠狠色丁香乆乆| 色丁香五月| 久久久久久久久久91| 亚洲激情网| 狠狠色婷婷777| 黄网在线免费观看| 超级碰碰99| 久99视频| 夜夜爽天天爽| 婷婷五月婷婷五月| 色就是色婷婷五月亚洲激情| 美女久久婷婷| 天天操夜夜操| 色五月婷婷在线| 婷婷播播五月天| 综合久久五月天| 亚洲亚洲人成综合网络| 色五月av| 亚洲一区二区无码蜜乳av| 久99精品视频| 激情综合网婷婷五夜| 在线播放中文字幕| 亚洲欧美综合7777色亭亭| 超碰在线9| 色五月婷婷视频| 啪啪黄页网| 国产欧美日韩综合精品一区二区 | 乱码操操| 超碰在线播放免费观看| 狠狠狠狠草草| 91操人人操| 亚洲人妻av| 91成人性爱视频| 婷婷丁香五月激情中文字幕版| 色99色| 丁香伍月婷电影全集| www.激情五月| 色婷婷久久| 婷婷五月天黄色小说| 琪琪秋霞| 五月丁香婷婷福利| 97自拍视频在线| 欧美三级级99久久| 黄色国久久| 亚洲男女激情| 亚洲成人网站在线播放| 丁香婷婷色五月天| 婷婷五月丁香五月丁香| Av狠狠色丁香婷| 玖玖在线视| 1024在线观看免费视频| 国产69久久久欧美黑人A片| 97色片| 美女天天爽| 天天日日天天| 婷婷色香六月综合激情| 丁香成人综合| 秋霞免费三级片| 婷婷综合影院| 夜夜资源站| 免费AV在线网址| 大香人妻| 小骚穴电影| 欧美日韩五月婷婷| 超碰在线超碰| 91偷拍视频| 日本3级片一区2区| 99久在线观看| 91丨九色丨熟女丰满| 9超碰在线| 久久天堂婷婷五月| 啪啪 综合网| 极品九九九九九九| 国产av基地| 91pornav在线| 丁香六月啪啪啪| 96色婷婷| 97婷婷丁香| 欧美日本国产欧美日本韩国99| 日韩av变天就操逼不卡区| 欧洲色区| 色色网站日本91| 欧美婷婷色| 五月天天丁香婷婷| 激情性爱网站| 亚洲六月婷婷| 婷婷丁香五月天欧美| 99在线观看免费精品视频| 熟女婷婷网站一婷婷五月一丁香婷婷一婷婷激情网 | 欧美成人精品A片免费一区99| 五月香婷婷| 9色在线视频| 97碰| 91狠狠色丁香婷婷综合久久精品| 字幕网AV中文字幕| 亚洲在线播放| 五月天社区| 天天色凹凸| 99热官网精品在线| 亚洲人妻AV| 97干欧美| 5月丁香综合网| 热99这里只有精品视频| 久久婷婷内射| 99色看| 激情五月丁香激情综合网| 亚洲欧洲99| 天天舔天天摸天天射| 五月丁香婷婷啪啪综合网| 99亚洲综合| 日韩久久这里只有精品| 久久五月天网| 色色色综合网| 五月婷av| 天天色天天搡| 亚洲、热| 丁香九月综合| 欧美内射AAAAAAXXXXX| 99热最新国内| 五月婷婷色| 99综合婷婷五月| 丁香六月婷婷姐网| 这里只有精品免费| 七七色综合| 色色色97| 免费成人va| 人妻肉射免费观看| 色九九九九| 天天五月情| 久久人人超| 精品色色| www.综合久久.com| 五月丁香激情综合久久| 大香线蕉伊人| 久久图色4| 丁香五月大香蕉| 婷婷久久免费看| 日韩综合大黄| 久操人| 午夜爱爱网站| www国产亚洲色婷婷com| 欧日韩成人| 香蕉久久国产AV一区二区| 99久久婷婷精品视频| 一本久道综合99| 婷婷五月天天| 操逼巨乳91| 丁香六月激情综合| 在线观看的av| 婷婷深爱五月丁香| 天堂无码人妻精品AV一区| 五月婷婷色白丝| 99爱在线| 欧美婷婷| 五月丁香婷草| 五月丁香花开综合网| 亚洲五月天婷婷在线| 香蕉婷婷色五月| 国外亚洲成AV人片在线观看| www狠狠| 久久一热免费视频| 在线成人网站| 伊人狠狠色婷婷综合丁香一区| 婷婷五月成人有| 五月综合激情视频在线| 91妻人人爽人人看片| 久久这里只有精品视频15 | 亚洲五月天激情| 综合五月婷婷| 97久久久| 九九热啪啪| 婷婷五月精品| 婷婷成人综合免费视频| 激情五月久久| 色5月婷婷色| 9999综合99综合人| 九九热手机在线视频| 99热99热99热99热| 超碰人人摸人人操| 伊人天天色| 日本色色网| 97操| 天天综合色综合| 久草五月天| 久久九九婷婷| 五月婷婷综合精品| 丁香五月天堂婷婷| www.久久66| 久久精品这里只有精品免费首页| 丁香九九九九| 4399在线日本A片| 国产亚洲色婷婷久久99精品91 www.riverspirits.org www.hnnun.com www.changh | 中文超碰视在线| 亚洲成色综合网站免费观看| 思思热99热| 亚洲99一级无嗎特制在线| 丁香婷婷激情五月| 乱岳熟女50岁| 婷婷丁香五月天色区| 99无码| 97在线精品| www.91在线观看| 成年视频免费观看| 五月天成人小说网| 五月综合视频| 成人网丁香五月| 九九黄色网| 91综合在线| 久久HD| 一级无码作爱片| 日韩一级网站| 丁香五月婷婷香| 丁香青青五月天| 九九热只有精品| 亚洲欧洲美女在线观| 九热视频这里只有精品| 91狼友视频网页更新| 欧美亚洲婷婷五月| 久久xxxx| 襙逼网| 亚洲欧洲中文日韩久久AV乱码| 五月天第四色开心色播| 国产性av| 亚洲va欧美va天堂v国产综合| 伊人影院久久网| 激情宗合网激情五月天| 五月天堂六月丁香亚州中文字幕久久| 少妇综合网| 国产综合A片| 玖玖资源站中文| 91人人爽人人操| 开心五月婷婷婷美女| 婷婷五月丁香成人网| 天天做天天爱天天综合| 99男人天堂| 五月丁香婷婷色色| 丁香八月综合激情| 超碰在线观看三级片| 五月婷在线视频免费播放| 久久综合九色综合97婷婷| 26uuu另类| 艹色18p| 99亚洲视频| 91视频一起草| 欧美性生交XXXXX无码小说| 成人网站免费sxj| 国产精品第一国产精品| 夜夜骑天天操| 日本99在线视频| 久久婷婷五月天| 亚洲性爱AV在线| 天天射射夜| 欧美叉叉叉BBB网站| 天天综合天天玩夜夜玩天天玩夜夜玩 | 色五月在线观看| 国产夫妻操逼内射视频| 天啪天啪天啪天啪| 五月天色图| 女人露出p毛视频www网站| 五月大香蕉| 色五月激情综合网| 色婷婷很很丝袜| 丁香五月欧美午夜视频| 天天摸天天舔天天爽| 久久密臀婷婷| 激情五月小说婷婷| 日日狠狠久久偷偷四色综合免费 | 婷婷五月花| 青青草蜜臀| 久久久久久久11111111111| 日韩爱操视频| 激情丁香婷婷五月天| 91狼友视频在线观看| 色婷另类| 天天天天天操| 五月色色色| 日韩在线观看网址| 午夜爱爱网站| 五月丁香狠狠| 狠狠五月激情在线| 99热99| 九九色影视| 五月天电影网| 99热国品免费| 日本123区日韩欧美不卡在线看| 色婷婷婷婷| www五月天激情com| 高潮毛片遮挡费高一百度| 曰韩少妇内射免费播放| 五月天婷婷在线播放| 99这里有精品久久97| 在线日本www| 99爱在线精品视频免费观看| 99热在线只有精品| 五月天婷婷色播在线网| 久久久婷婷| 亚洲综合碰| 婷婷中文在线| 婷婷五月激情丁香| 五月天自拍视频| www.99婷婷| 碰超亚洲| 色综合com| 韩国中文字幕91| 超碰亚洲天堂| 九九热精品| aaaaa黄色| 婷婷激情五月视频| 97婷婷五月丁香| 超碰99热| 亚洲操b| 丁香婷婷情色五月天| 色9色| 五月婷婷久久大香蕉| 99@久久@99精品视频| 精品网站:999WWW| 5月丁香六月婷婷| 99视频色在线观看| 九九色热| 99热综合网| 五月丁香婷中文字幕| 五月六月激情| 四色五月婷婷| 久草五月天| 婷婷五月天日日日干干干| 99自拍视频网站| 婷婷99视频全集高清| 99色色网| 婷婷色五月激情强奸四射| 成人无码髙潮喷水A片| 91在线精品一区二区| 九九视频免费| 五月天婷婷av| AV成人在线播放| 伊人久久丁香婷婷六月五月综合| 激情五月激情综合网| 婷婷丁香亚洲色综合91| 色色色色av色色色色| 五月天婷婷综合网| 国产色网站| 啪啪啪综合网| 五月丁香综合| 丁香五月av| 丁香五月婷婷在线| 99精彩视频| 91精品国产91久久久久青草| 97色片| 婷婷色五月丁香六月欧美啪| 色老久久| 久久一级免费黄色片| 午夜在线成人网站免费观看| 国内熟女黄色系列| 五月做爱| 9婷婷内射| 婷婷色六月| 99天堂网最新| 久久免费丁香| www.久久久久久| 狠狠色噜噜狠狠狠狠综合| 开心五月深爱五月| 色婷婷亚洲| 久久受www免费人成| 久久草大香蕉| 色噜噜97视频在线观看| 91精品久久久久、久五月天| 亚洲九九婷婷| 夜夜www| 熟女人妻一区二区三区免费看| 丁香婷婷六月激情文学 | 秋霞AV吧| 免费视频舔| 久久99综合| 五月婷婷与六月丁香图片激情| 五月婷婷二月丁香| 九九九九中文字幕| 国产婷婷五月色情综合| 97超级碰碰碰| 91久久久久久| 99久久精品色老| 99操逼视频| 亚洲超级碰| 99er精品视频| 欧美超碰人人| 狠狠色综合网| 狠狠舔| 亚洲六月婷婷| 这里只有精品久| 97操资源婷婷| 人人操人人爰人人一天天碰夜夜拍夜夜爽-中国A级毛片天天看天天谢… | 婷婷激情图片| 精品无码人妻一区| 狠狠色狠狠色综合日日91| 六月综合在线| 男女99免费视频| 日本99视频| www。狠狠干。com| 激情五月天婷婷播播久久综合91| 五月人妻婷婷视频| 91九色网| 99欧美| 色丁香婷婷美女视频网站| 色婷婷五月综合激情中文字幕| 天天影视色综合网| 九九色色色| 九九激情网| 色情综合网| 精品色色网| 久草嫩草在线观看| 色色网站| 五月婷天天搞视频| 97在线视频观看| 狠狠插狠狠插| 丁香五月激情啪啪| 丁香五月亚洲激情婷婷射| 狠狠狠狠狠干| 一本色道久久综合狠狠躁小说| 99色色| 超碰成人免费| 久久久久久久久久8888| 婷婷中文字幕版| 亚洲五月婷婷| 国产高清av黄色看片| 色玖玖玖| 91蜜桃婷婷狠狠久久综合9色| 婷婷丁香五月欧美人| 9l视频自拍9l视频自拍九色学生| 密着浓厚中出乚交尾GvG935| 色综合色五月| 亚洲色色精品| 国产精品大香蕉| 最近中文字幕2019视频1| 婷婷激情综合色五月久久图片| 玖玖伦理电影| 久久五月网| 中文字幕不卡网站| 99色干| 天天擼久久擼在线| 色欲九区| 日本三级第一页| 91丁香五月| 久久机热这里只有精品| 97天堂| 在线天堂9| 婷婷五月天激情五月天网站| 狠狠撸激情综合丁香五月天俺来啦| 六月丁香激情网| 激情小说视频图片| 开心五月婷婷六月丁香| 超碰在线91| 五月天久久激情| 香蕉久久国产AV一区二区| 色偷偷色婷婷| 天天色天天爱天天爱天天爱y| 日韩好吊操| 99色嘟嘟精品网站| 激情小说五月天| 天堂久久性| www.minyis.com【JT】国内CDN落地页保证转化QQ2101460746 | 色五月婷婷影视| 欧洲色区| 99色在线| 九九九九这里只有精品| 99视频只有精品| 天天日天天做天天操| 色五月xxx| 亚洲无码成人| 九九热免费| 天天综合亚洲综合| 襙比视频| 超碰成人av| 黄页免费一级视频懂色| 少妇高潮A片无套内谢麻豆传| 丁香五月色色| 久久九色| 婷婷五月天丁香| 色99在线视频| 亚洲成人网站在线观看| 色色色婷婷五月| 五月婷婷啪啪| 日本婷婷五月天| 思思热在线播放| 久久人妻在线| 桔色成人在线| 九九热最新地址| 亚洲成人黄色网| 婷婷激情五月天综合| 国产黄色av| www天堂99| 九久久九精品视频| 亚洲一二三网| 99人人干人人操| 婷婷综合在线视频| 色综合色色色色色| 久久99综合| 妻久久久久| 久久婷婷五月天| 九九成人精品免费视频| 亚洲九九视频| 久热这里只有精品在线观看| 精品夜夜澡人妻无码AV| 人人干Av| 五月天婷婷激情四射综合| 亚洲va欧洲va国产va不卡| 亚洲九九99精品视频在线播放| 色五月婷婷DVD| 99久久喉9| 这里只有精品网| 99成人在线观看| 色五月在线视频观看| 婷婷五月天com| 青青草原精品久久| 九九热在线视频| 日本视频不卡123区| 婷婷五月天综合中文| 亚洲人成网站999综合| 婷婷五月婷| 久9热视频| www久久99com| 激情网综合| 91热er| 日本在线噜噜| 开心五月激情五月丁香五月婷婷| 99热这里只有精品国产首页| 99热6精品| 久久99婷婷| 99操碰| 激情婷婷丁香| 一本到不卡高清DVD| 人人综合色| 国产成人亚洲综合亚洲| 丁香五月天社区婷婷| 婷婷月综合| 怡红院院在线导航网 | 日本WwW色偷偷丁香花久久久京东热| 97成人丁香| 激情五月天色色色| 五月丁欧美| 五月情四婷婷| 日日操夜夜爽| 日本精品久久久久中文字幕| 激情淫乱男女| 亭亭丁香久久五月| 婷婷 色 丁香 夜| 五月丁香综合啪啪| 一级无码作爱片| 亚洲色综合| 亚洲 五月 婷婷 成人| 91狠狠色丁香| 五月天婷婷婷| 久久久99久久| 成人丁香五月天| 五月天色丁香| 精品五月花| 九九性视频| av中文网站| av九九| 91碰操| 中文字幕,综合,91| 婷婷激情啪啪| 五月丁香成人网| 182.t午在线观看| 少妇激情基地| 可以免费观看的AV| 全部老头和老太XXXXX| 婷婷色情五月| 日日肏夜夜干| 色婷婷9| 六月丁香婷婷爱| 丁香五月婷婷无码AV| 99激情视频| 丁香五月婷婷在线| 啪啪激情综合| 泰州成人视频| 丁香婷婷少妇| www91久久| 2018国产大陆天天弄| 五月激情五月婷婷五月天在线| 色综合激情| 狠狠狠狠青草| 亚洲视频一区| 亚洲激情网| 99免费热视频在线| 久久老码第一| yazhochengrenavwang| 亚洲成av人影院| 丁香五月影视| 五月丁香六月在线| 五月天婷婷色播综合在线| 丁香天堂夜| 久久99久久99精品,久国产,久久精品免费,99久在线,久久久久国产精品免费网站,9 | 亚洲欧美婷婷五月色综合| 99人人操人人爱久久久| 91干在线| 日日婷婷不卡| 亚洲色9| 五月丁香影院| 先锋影音男人的天堂AV| 亚洲色欲AAAAAA| 高清不卡一区| 婷婷午夜精品久久久| 丁香五月天堂网| 99久久五月婷婷| 五月婷婷啪| www.婷婷亚洲基地| 国产av影片| 色五月天成人| 人妻Av在线| 色色哒五月婷婷六月丁香| 亚洲久热| 色五月 激情婷婷 综合五月天| 大香蕉九操| 色五月自偷自拍婷婷婷婷| 99热在线精品观看| 欧美啪啪五月天| 激情婷婷亚洲五月| 狠狠精品干练久久久无码中文字幕 | 五月开心色| 伊人热在线大香蕉| 性色99| 免费日本aⅴ中文字幕 | 国内精品玖玖| 丁香婷婷老司机久操| 亚洲亚洲亚洲AAAAAA| 战争与艾拉电影免费观看| 高清无码网址| 色综合网综合| 成人VAV视频在线观看| 丁香五月六月综合激情| 婷婷五月天渟渟| www.minyis.com【JT】实力收量可预付QQ2101460746 | 五月婷婷中文字幕| 久热九九| 五月天天天综合| 婷婷五月花| 99 这里只有精品| 色婷婷五月天激情在线观看| 在线视频色五月| 五月天婷五月天综合网小说首页-五月天激激婷婷大综合,婷婷亚洲综合五月天小说 | 91视频久久久| 99热狠狠操| 色婷婷啪啪啪啪啪啪| 91色逼| 婷婷丁香黄色| 丁婷婷五月天在线播放| 最新av在线观看| 亚洲va成人va成人va在线观看| 98毛片| 香蕉久久五月| 色伊人婷婷| 黄网免费看| 成人视频网| 六月 丁香 视频| 中文字幕在线不卡视频| 丁香色婷婷| 噜噜噜噜在线| 六月婷色| 国产成人精品一区二三区熟女在线| 深爱激情网噜噜色| 国产日韩av片| 婷婷六月综合激情| 丁香五月在线看| 99热主页日本| 五月婷婷综合在线| 婷婷开心久久| 激情五月综合久久| 婷婷久久性爱| 欧美久草在线日本一级特黄大片做受9在线观看韩国电影《两个女人》未删减-毛片 | 五月激情婷婷四射| 视频在线免费观看欧洲乱码| 亚洲视频图片婷婷五月| 在线超碰91| 婷婷久久五月天| 99这里只有精品|v| 五月天开心色情网| 变态 另类 在线| 九色91国产| 婷婷丁香基地在线| 丁香大香蕉| yw国产AV| 99免费在线视频| 美女五月天| 五月丁香六月在线| 五月婷婷在线综合| 99久久黄色顶级视频| 男人的天堂97| 五月天开心色色网| 人人爱操| www.婷婷五月天.com| 天天综合天天做天天综合| 久久精品91视频| 97色精品视频| 天天天天干| 另类综合激情| 国产性爱亚洲是图| 婷婷四色五月| ss五月天激情| 亲子乱AV一区二区三区下载| 伊人超碰在线| 国产精产国品一二三在观看| 色久综合| 26uuu亚洲色| 婷婷六月视频| 狠狠狠狠青草| 久草婷婷在线| 五月婷婷av| 五月丁香六月色| 婷婷五月天激情影片| 婷婷色五月综合丁香| 久久香蕉福利| 人人操操| 91久草五月天婷婷| 欧美五月婷婷综合| 亚洲色五月天| 五月丁香六月婷综合成人综合| 五月丁香亚洲婷婷| 异能之下短剧免费观看全集| 手机在线日韩视频中文字幕| 97操| YW无码| 亚洲精品一二三| 国产真实乱了老女人视频 | 五月激情丁香久久综合网| 国产成人av在线播放| 99在线视频操999| 五月婷婷九九热| 日本色狠狠| 秋霞电影理论| 开心五月婷婷在线视频免费观看| 狠狠88综合久久久久噜噜噜| 激情综合婷婷五月| www久久久| 热婷婷久| 六月婷在线| 牛牛色av| 久久九精品| 成人在线网站| 日本人人干| 97精品人人A片免费看| 超碰人人艹| 99综合免费视频| 婷婷伊人綜合中文字幕小说| 婷婷亚洲色| 亚洲乱码w在线观看| 天天干,夜夜爽| 99热这里只有精品搜| 婷婷五月视频| 婷婷丁香成人五月天| 久久久久丁香婷婷五月天| www.狠狠艹| www.激情五月| 激情综合一| 成人婷99最新| 五月激情婷婷在线| 婷婷色中文字幕| 粉嫩AV久久一区二区三区| 亚洲欧美婷婷五月色综合| 婷婷性爱综合| 婷婷五月天在线综合| 婷婷丁香熟女| 天天久久综合| 国产欧美性成人精品午夜 | 伊人无码高清| 99在线观看这里都是精品| 丁香五月婷婷六月| 99人人干| 99日本黄站| 去色色五月天| 91精品久久久久久综合五月天| 日韩久久成人| 亚洲综合婷婷| ..真实国产乱子伦毛片| 视频这里只有精品16| 疯狂做受XXXX高潮A片| 六月丁香婷婷综合色播| 欧美成人va| 五月天天丁香婷婷在线中| 思思热视频在线| h在线看免费版在线看| 色婷婷成人做爰A片免费看网站 | 91久久久久久| 爱久久小说下载网| 日本三日本三级少妇三级66| 激情综合无码| 六月丁香中文字幕| 久久婷.com| 超碰chaompinm| 激情五月丁香五月| 无码色| 欧美久久五月婷婷| 亚洲春色奇米影视| 婷婷丁香五月久久| 婷婷五月天在线一区| 月婷婷婷婷五月| www.狠狠操| 777精品久无码人妻蜜桃| 丁香影院五月综合| 丁香婷婷人妻| 99热在线这里| 9久精品视频| 超碰狠狠干99| 91超碰在线播放| 五月婷综合网| 天天爽天天爽| 人妻熟女一区二区AV| 91视频人人做97| 婷婷AV丁香| 五月天婷婷无码视频| 五月丁香综合激情网| 色婷婷91激情小说| 那里有AV网址| 丁香五月婷婷AV在线| 少妇性按摩无码中文A片| 六月丁香婷婷大香蕉| 99这里只有精品视频在线| 人人视频人人干人人做| 五月天偷拍| 91精品又长又大又粗又爽又猛| 色久婷婷网| 丁香五月婷婷激情尤物| 欧美性做爰大片免费看办公室| 五月天婷婷久草丁香| 婷婷丁香五月激情图片| 丁香婷婷网| 888久久久| 婷婷五月丁香成人| 五月婷婷影院| 99啪| 人人操AV| 丁香五月婷婷少妇| 另类图片婷婷五月天| 狠狠色狠狠操| 日韩欧美颜射| www.五月天色色.com| 日日操夜夜擼| 丁香五月六月久久综合 | 色色日本欧美| 激情综合网激情五月丁香| 超碰成人免费| 丁香五月综合狠狠| 精品人妻一区二区三区四区不卡在| 日韩不卡DvD| 成人片黄网站色大片免费毛片| 五月天久久91| 成人操呦av| 丁香五月婷婷综合激情啪啪啪啪啪啪啪| AV五月丁香| 丁香五月天婷婷中文| 婷婷色五月大香蕉在线观看| 五月丁香在线| 激情五月天在线免费美女视频| 最新热中文字幕| 五月婷中文娱乐综合| 思思热99热| 五月激情影视| 偷拍视频五月天| 亚洲综合九九| 激情性爱网站| 国产99久久久国产精品免费看| 久久综合中文字幕| 亚洲婷婷成人五月天| 97色婷婷| 9热在线观看| 日韩丁香涩| 无码99| 色综合色综合网| 99爱爱网| 九九九九综合| 色色色综合色| 亚洲第一色色色色| 乱岳熟女50岁| 热99只有里视频| 光棍影院日韩精品| 日韩成人无码| 五月天婷婷丁香| 91热视频色网站| 天天色,天天日,天天做| http://www.lingjunshare.com/ | 美女网黄| 五月婷婷丁香五月天| 丁香五月激情性色郤| 电影《战争与艾拉》免费观看| 噜噜国产| 久久9久| 天天日天天插| 亚州性爱99| 人人草碰| 久久性爱视频| 九月婷婷综合八月丁香在线观看 | 亚洲成人AV电影网| 色婷婷综合影院| 伊人91| 精品一二三区久久AAA片| 天天日日爽| 99热热热国产超碰| 91欧美| 五月婷婷综合色啪首页| 五月婷婷精品视频| 大香蕉久久久久| 99热精品10| 一级韩国产精品毛| 四虎成人精品永久免费AV九九| 丁香六月婷婷五月天| 日本婷婷激情四射中文字幕在线观看| 狠狠插狠狠插| 人妻久久久久| 香蕉曰比| 97综合在线| 中文字幕日韩无码制服诱或| 成人网站高清无码| 亚洲免费婷婷| 99热在线观看这里只有精品| 狠狠爱婷婷| BBWCUCKOLD精品熟妇| 丁香五月五月婷婷| 一起草无码视频| 婷婷五月综合色小姐小说| 亚洲欧洲国产精品| www.com操| 97在线刺激| 色呦精品| 亚洲国产成人在线| 五月丁香色播| 91热在线| 亚洲一二三网| 人妻久久久久久久 | 五月天无码视屏播放| 色婷婷丁香社综合| 成人做爰高潮A片免费视频| 久久a热| 99色色网站| 99人人干人人| chaopengdaxiangjiao| 久久婷婷综合网| 九九综合久久| 国产精品久久久99视频| 丁香六月av| 日本熟妇乱妇熟色A片蜜桃| 久久超视频| 99热最新网址| 五月丁香亚洲校园欧美| 91窝窝| 少妇被躁爽到高潮无码文 | 丁香五月五婷| 六月色日韩| 久婷婷五月天影院| 综合久久婷婷99| 丁香激情五月天| 激情综合五月天| 五月天伊人手机在线播放AV| 天天日天天舔天天摸| 综合超碰熟| 五月婷三级片| 婷婷五月激情网| 激情綜合網址| 中文字幕乱轮| 精品99网站| 只有精品视频在线观看| 超碰三级片| 97操碰日本女人| 日本乱子人伦在线视频| 日日色综合| 97影院一级片| 这里只有精品免费视频| 六月丁香婷婷开心综合基地| 伊人春天av| 久久婷婷网站| 五月婷婷导航| 婷婷五月色花丁香社区| 天天久综合网永久入口18| www超碰| 九色PORNY9l原创自拍| 少妇性按摩无码中文A片| 丁香五月开心五月激情| 夜夜夜夜操| renrencaoni| 婷婷五月天综合激情| 97极品在线| 亚洲AV另类| 亚洲视频码| 91国产精品视频播放| 激情内射人妻1区2区3区| 丁香激情五月| 色五月激情网| 婷婷色网| 99久久9| 来吧亚洲综合网| 日日综合网| 99热这里只有精品3| 激情婷婷久久| 亚洲精品字幕在线观看 | 国产AV不卡福利| 天天爽夜夜爽夜夜爽精| 婷婷五月天综合久久| 五月丁香六月激情在线| 91高潮喷水久久久久久久久| 色五月成人| 天天狠狠色综合| 久久色情| 色综啪啪| 五月综合亚洲色| 激情五月天小说|五月天开心激情网|亚洲精品国产自在现线|黄色五月天 | 日本99视频精品免费播放| 天天搽天天射| 26uuu成人网| 亚洲精品V天堂中文字幕| 超碰网站在线观看| 丁香五月骚喷水视频| 日本在线99| 色色欧美色色色| 五月天激情四射| 丁香婷婷色五月| 丁香五月激情网| 99男人天堂| 另类视频在线| 五月色婷婷影院| 色情婷婷| 婷婷久久夜| 五月天黄色激情小说| 久久色这里只有精品| 婷婷丁香小说| 成人婷99最新| 五月丁香六月婷婷网| 性做久久久久久久免费看| www久| 99色| 婷婷色成人| 99久热| 91爱操| 丁香六月婷婷综合缴| 亚洲中文字幕AV在线| 国产成人网址| 五月天激情综合网| 亚洲综合色婷婷文学| 欧美日韩大黄| 日本三级日本三级99| 精品亚洲日韩99欧美片| 午夜激情五月| 99热在线精品观看| 99精品在这里| 九月色婷婷| 日本视频不卡123区| 九九九九九九九九九九九九九国产精品| 九九色色色| 天天爽夜夜爽夜夜爽精| 色五月亚洲开心网| 97人人做| 性做久久久久久久免费看| 另类图片五月天激情| 五月婷精品| 99色色最新视频| 激情第四色| 久久婷婷五月综合| 综合久久首页| 大香蕉婷婷| 99色最新在线视频网站| 99re视频在线播放| 亚洲日韩一页精品发布| 情一色一乱一伦一91A| 亚洲小视频免费观看| 婷婷六月色播| 成人精品在线观看| 国产内射婷婷| 色碰碰视频| 天天爽夜夜爽| 色五月婷婷久久| 26uuu色五月| 99色在线视频| 怡红院一二三| 99精品视频在线观看| 色开心五月婷婷丁香HD| 久久五月天婷婷视频| 激情丁香六月| 91丨九色丨东北熟女| 婷婷丁香综合| 久婷婷五月丁香在线观看| 天天干天天操| 久久99网| 伊人影院久久网| wuyuedingxiang99| 激情第四色| 国产乱人偷精品人妻A片| 91精品国产99久久久久久天美| 色五月天综合| 丁香九月久久| 丁香9月婷婷| 天天爽夜夜爽夜夜爽精| 婷婷成人AV| 九九色婷| 欧美日本综合网| 射久久丁香五月| 97超美国视频在线观看| 99噜噜噜在线播放| 九九热免费视频| 欧美天堂婷婷日韩| 天天射夜夜爽| 91丨九色丨熟女丰满| 91精品91久久久久77777| 思恩热国产视频右线观看| 成人va视频| 九九热视频精品999| 丁香五月婷婷久久久| 久久婷婷内射| 极品五月天| 深爱激情久久| www超碰| 久99视频在线观看| 丁香五月天激情视频| 亚洲日韩成人三级av| 美女天天艹人人爽| 色婷婷888| 午夜日韩久久久网站| 五月丁香青草综合啪啪| 夜精品无码A片一区二区蜜桃| 超碰97人人操| 激情综合色婷婷啪啪六月天| 美女爆乳18禁www久久久久久| 丁香五月第九色| 日日操天天操| 狠狠色综合网| 超碰免费人妻| 99色在线观看视频| 天天干天天干天天操| 五月丁香婷婷钟和色图| 婷婷婷色五月| 激情综合色| 综合欧美五月婷婷| 99热只有| 99九九99九九九视频精彩| 激情综合五| 99热只有精品在线观看| 97伊人综合婷婷| 色婷婷综合网| 思思w99| 久久9999| 另类专区在线观看| 五月丁香六月婷综合成人综合| 激情五月丁香六月综合AVXXXX| 色色色色五月| 丁香五月影| 久9视频免费播放| 婷婷综合激情五月中文字幕| 五月丁香婷婷伊人日韩| 91热视频色网站| 亚洲色色图片| 色欲色香综合网站| 久操操| 五月丁香AV在线| 五月色婷婷影院| 精品欧美一区二区三区久久久| 丁香婷婷色五月激情综合| 99惹在线精品免费观看| 亚洲图片 丁香婷婷| 久久久18| 俺也去综合| 婷婷五月天堂| WW婷婷五月天com| 天天操加勒比| 五月天婷婷丁香视频| 久久久宗合| 日韩人妻AV在线| 色99日韩| 亚洲综合在线丁香五月| 久久婷丁香五月| 草草色情综合网| 97综合在线| 91久久婷婷人人澡草| 婷婷午夜| 丁香五月天婷婷大香蕉| 欧洲色| 欧洲色色| www.日韩艹| 成人在线不卡| 大香蕉视频婷婷| 婷婷五月天小说| 欧洲色| 丁香五月婷婷天激情| 日本综合久久| 色综合久久无码| 五月天婷婷爱| 婷婷丁香九月| 色吧综合网| 久热精品视频| www.五月天色色.com| 99久在线精品99re8热| 五月丁香激情在线| 国产亚洲99久久| 色射影院| 夜夜爽天天日| 再次出发二| 激情床戏| 久久中国毛毛片爱久久| 99国产精品白浆在线观看免费| 婷婷的99视频网站| 五月天激情电影| 五月综亚洲| 亚洲三级无码| AVDV久久| 五月丁香怕怕综合| 色婷婷aV四虎| 久久久五月天| 99热久草| 91操片| 丁香婷婷老熟女综合网| 超碰人人干| 五月六月丁香婷婷在线观看| 亚洲电影中文字幕| 色情婷婷五月天| A网在线欧洲| 久九色| 国成人网| 夜夜爽天天爽| 色日本五月天| 妻久久久久|