免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

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
返回資訊列表
五月丁香六月婷| 国产激情综合五月久久| 婷婷中文在线| 男妓跪趴把舌头伸进我的嘴巴| 中文不卡一二区| 一区二区三区四区牛| 综合另类视频| 人妻VideOssS人妻高清| 五月婷婷色播| 午夜爱爱爱成人| 久久9RE热视频精品98| 久久丁香五月天| 99热这里有精品2| 天堂色婷婷| 日本三级99人妇网站| 激情五月天啪啪| 激情婷婷五月丁香啪啪啪| 欧美色色色色色色| 天天日,天天射,天天舔| 婷婷在线操| 狠狠色九月| 99色在线视频| 无码啪啪| 日韩成人av在线| 我爱va亚洲va52| 欧美性猛交99久久久99| 五月丁香五月丁香五月丁香五月丁香91| 青青草成人网| 六月丁香激情网| 婷婷五月天堂一本在线| 可以直接看的AV网站| 玖玖色综合| 丁香97综合| 98国产精品综合一区二区三区| 射久久丁香五月| 开心五月婷婷在线| 五月丁香欧美综合| 日本欧美在线| www.91在线观看| 无码成人AAAAA毛片AI换脸| 这里只有精品久久| 日韩综合久| 日韩综合大黄| 久久这里有精品视频| 日本在线免费中文com.| 久久机热这里只有 | 99久在线精品99re5热视频| 五月婷婷六月色| 26uuu亚洲| 2022人人操人人看| 激情AV网| 亚洲性爱AV在线| 激情小说视频图片| 狠狠色综合网| 国产精产国品一二三在观看| 超碰天堂网| 99热热热99精品丁香| 99热精品免费| 天天爽在线视频| A一级操| 综合久久久婷| yellow视频在线观看91| 91久久婷婷| 草草影院爱爱| 夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂亚洲亚洲亚洲亚洲亚洲亚洲亚洲亚洲色 | 中文字幕丰满孑伦无码专区| 五月成人网天天| 欧美日韩国产伦精品日韩人妻一| 久草大| 天天 日综合| 日本色婷婷| 婷婷综合一二三| 2025天天日爽| 激情六月天| 777精品久无码人妻蜜桃| 99热官网| 五月天堂六月丁香亚州中文字幕久久| 亚洲无码yw| 操人久久| 五月丁香六月婷婷不卡免费无码 | 一级A片天天操夜夜操| 亚洲Av入口| 欧美婷婷五月天综合| A A色色| 天天天天天天噜| 五月天色丁香| 99热色精品| 久久婷婷丁香花综合网| 国产成人综合网| 欧美日本综合网| 激情亚洲婷婷六月| 色999亚洲人成色| 九久9精品| 九九99精品视频| 丁香五月停停基地| 人妻videos人妻高清| 日本成人噜噜| 欧美一级色| 内射人妻视频国内| 色播五月婷婷| 另类小说色婷婷| 成人国产欧美大片一区| 97视频91| 五月婷婷基地| 丁香五月天啪啪| 欧美视频五区| 色久免费| 超碰在线人妻| 五月婷婷亞洲中文| 欧美色综合天天久久综合精品 | 美女美女美女三级色天天天天天| 色综合久久久久| 这里只有精品2| 六月婷婷狠狠做| 婷婷六月激情| 欧美色男人网站| 99热综合色图| 亚洲精品久久久久久久久久吃药| 六月色激情| 婷婷五月天激情在线观看| 天天爽天天操| 久久丁香社| 久er7久热| 99色干| 精品AV无码超碰| 99超级碰碰| 天天撸夜夜爽| 九九亚洲天堂| 丁香五月婷婷丫| 日本久久婷婷| 婷婷激情人妻| WWW,五月| 五月婷婷|欧美| 五月丁香六月色婷| 色婷婷无吗| 综合性爱网| 操碰色一区就去操| 欧美综合激情五月丁香| 丁香五月婷婷基地| 婷婷五月天免费小说| 超碰在线综合| 任你日视频| 丰满少妇猛烈A片免费看观看 | 影音先锋男人女人| 婷婷丁香五月欧美人| 九九这里只有精品| 天天综合激情| 99热9| 丁香婷婷五月综合影院| 中文字幕,综合,91| 成人精品免费在线观看| 婷婷五月综合激情免费视频| 熟妇国产| 精品99在线观看| 激情五月婷色| 激情綜合W W W,激情五月天| 丁香婷婷综合喷| www.sezonghe| 九一九九黄色| 五月丁香91| 一区中文字幕电影| 久久在线大香蕉| 热99只有里视频| 色婷久久| www,av好吊操| 久久精品99久久久久久久久| 超碰高清在线| 五月丁香久久网| 久久激情综合| 天天爽夜夜爽天天爽夜夜爽| 欧美伊人9| 66成人网| 99热精品在线播放观看| wuyuedingxiang| 五月天色婷婷成人| 99.N在线视频| 六月婷婷综合| 色五月第四色| 久久婷婷热| 偷拍五月丁香| 九九热经典视频在线观看| 九九激情| 天天日天天舔| 亚洲色综合性| 色婷婷丁香五月| 色色99| 亚洲五月天狠狠| 亚洲综合久| 久久99久久久久久| 丁香5月啪啪| 超碰日韩成人| 亚洲欧美丁香五月天亚洲欧美| 午夜成人综合| 青柠影视免费高清电视剧| 九九热这里只有精品9| 九九久久偷拍| 天天干,夜夜爽| 亚洲精品色色色| 亚洲婷婷综合视频| 九九热在线视频| 婷婷五月天亚洲精品| 99爱在线| 激情综合五月天| 国产偷人爽久久久久久老妇APP | 日韩激情婷婷五月天| 99ER热精品视频| 超碰熟女拍拍| 日日干日日s| 久久色午夜在线导航| 天堂中文国产| 欧美成人网99网| WWW久久久| 91色色五月天| 99色热| 色99欧洲色19| 色婷婷成人在线| 久久加勒比| 日本天天色| 婷婷色五月丁香六月欧美啪| 丁香五月狠狠综合欧美| 掩去也综合五月视频| 日本熟女啪啪| 一级AV片| 成人精品视频99在线观看免费| 久久美女五月天| 9999热精品在线免费播放| yazhochengrenavwang| 五月丁香激情综合| 9 9热这里有精品| 色综合久久888| 99在线观看精品视频| 婷婷香蕉| AV在线资源| 色综合女人99| 大香蕉丁香婷婷| 五月天婷婷小说| 五月丁香啪啪啪| 亚洲 无码 中文字幕 中出| 五月丁香琪琪| 狠狠久久婷五月| 五月婷婷婷色| 丁香五月婷婷操逼| 色爱爱综合网| 色婷婷另类| 成人亚洲精品久久久久| 亚洲亚洲人成综合网络| 免费观看欧美成人AA片爱我多深| 五月婷婷激情综合| 中文字幕日产A片在线看| 26uuu丁香婷婷五月| 欧美VA在线观看| 九九操操| 97碰啪啪| www.激情| 五月天天天操天天爽夜夜操| 激情网战码亚洲A| 大香蕉Av在线| 六月激情婷婷| 五月丁香六月激情在线| 成人在线综合| 五月色网| 狠狠狠狠狠| 99热只有这里有精品| 免费观看亚洲AV片| 激情五月婷婷五月| www.91.com黄| 婷婷五月色| 婷婷久久亚洲| 五月丁香婷婷综合视频| 婷色人人狠| 五月天天爽| 五月宗合激情网| 亚洲激情综合五月婷婷啪啪| 九九热这里只有精品6| 五月香六月婷| 九九热精品视频在线观看| 5月丁香啪啪啪| 婷婷激情五月天激情| 亚洲精品激情| 狠狠色噜噜狠狠狠888| 婷婷五月天伊人| 色色五月婷| 中文字幕在线观看视频www| 99热这里只有精品8| 六月婷婷五月天| 色999亚洲人成色| 99热在线播放| 色婷婷无吗| 久婷婷| 久久AAAA片一区二区| 99热首页| 99热传媒| 99精品久久久久久久婷婷| 综合啪啪| 亚洲欧州色情在线观看| 日韩婷婷| 五月丁香六月激情网站| 伊人五月婷婷| 婷婷激情丁五月| 激情五月婷婷五月丁香五月开心五月| 99re在线观看| 久久99精品久久久久久三级| 琪琪色影音先锋| 丁香五月开心亚洲| 丰满人妻一区二区三区| www一起操在线观看| 蜜桃婷婷狠狠久久| 欧美婷婷五月激情| 久久伦乱| 怎么样可以看免费的一级av| 人妻无码视频网| 国产噜一噜天天噜| 91色综合网| 美欧成人视频| 五月婷婷免费在线观看视频| 婷婷伊人网| 亚洲AV综合在线观看| 婷婷丁香18| 国产午夜精品AV一区二区麻豆| 一本狠婷婷综合| 九九热这里只有精品7| 丁香五月婷婷亚洲另类| 久久综合激情| 99资源人人| www.激情五月天。com| 五月停停丁香| 国外亚洲成AV人片在线观看| 综合色久| 开心五月婷| 色99热| 五月丁香好婷婷A片网| 人人操人人干AV| 婷婷五月天综合亚洲| 大香蕉久艹| 国产午夜精品久久久观看| 久综合色| 五月天久久久| 99免费热视频在线| 色色丁香五月| 天天爽天天日天天舔| 丁香五月婷婷基地| 久久网日本| 狠狠爱深色婷婷综合| 久xxxx| 色色aⅤ網| 久操人妻| 亚洲中文字幕AV| 亚洲五月色| 操操啪| 九九热视频99| 婷婷丁香花五月天| 国产做A爰片毛片A片美国| 五月丁香久久综合| 超碰国产在线观看| 天天透天天干| 日本婷色| 久久天堂加勒比| 激情五月色综合| 久久久婷婷| 色情成人五月天| 少妇大叫太大太粗太爽了A片| 婷婷丁香97| 99在线精品视频| 亚洲色五月婷婷| 五月丁香色婷婷熟女| 久久精品99国产精品日本| 日本熟女三区| 极品人妻VIDEOSSS人妻| 久热这里只有精品在线| 激情AV中文| 婷婷天天日婷婷| 狠狠色噜噜色狠狠狠综合色 | 天天色宗合| 九热视频| 色狠狠色噜噜AV天堂五区| 五月婷婷丁香伦理网| 激情开心五月天| 丁香五月天人体| 91超级碰| 亚洲狠狠狠| 天天综合网、天天综合色| A在线观看| av网址在线| 五月婷婷无码| 久久er九九| 九九亚洲| 思思国产99| 五月天婷婷激情在线色图| 五月天婷婷7米| 欧美三级大片AA在线看| 丁香婷婷五月六月久久| 丁香五月婷婷无码AV| 99热精品在线| 草做免费在线观看| 99精品一二三四视频| 天天综合色丁香| 丁香婷婷性爱| 亚洲色就是色色色| 六月丁香色色| 婷婷基地五月色| 激情综合丁香| 综合激情五月丁香| Va另类视频| 国产中文字幕在线视频免费观看 | 国产精品成人网址| 99热这里全是精品| 日日爱699| 另类激情五月| 国产小精品| 情婷婷五月天| 男人的天堂999| 五月丁香婷色| 影音先锋偷偷色男人站| 色999亚洲人成色| 激情婷婷另类| 色综合久久中文| 天天干天天干天天干| 色99热| 久久婷婷啪啪视频| 久久五月天精品视频| 99爱这里只有精品免费视频| 无人精品在线视频| 6080av| 亚洲婷婷基地| 狠狠色噜噜狠狠狠狠狠色综合久久| 九九无码| 五月婷婷丁香色吧网| 91婷婷搞| 伊人丁香五月婷婷潮吹| 久久在线视频免费观看| 思思久久99| 色情五月天视频网| 丁香五月成人av| 亚洲小视频免费观看| 毛v一区二区视频| 久久98| 99re在线视频| 婷婷婷婷婷婷婷婷| 97丨九色丨国产丨PORNY| 婷婷成人五月天成人文学| 99在线er热| 99色网站| 日本44久久在线| 久九色| 99热这里只有免费| 婷婷色色播五月天| 亚洲激情 久久| a九九热www| 黄色片avv| 狠狠色婷婷| 9|无码久久久久久| 99热都是精品| 亚洲成人婷婷| 深情五月天| 天天干天天干天天干天天干天天干天天| 丁香六月啪啪啪| 日韩精品无码AV| 97 天堂| 五月天色色网站| 激情文学久久| 色综合久| 亚洲高清在线| 777精品久无码人妻蜜桃| 色婷婷电影网| 五月婷婷开心网| 色婷婷视频| 欧美人人操| 婷婷综合一二三| 色天五月天在线观看视频| 五月丁香六月婷婷综合网缴情| 9这里只有精品| 天天婷婷操| 5月丁香综合网| 秋霞午夜理论| 五月四色色| 激情网狠狠干| 人妻精品久久久久久久| 婷婷五月综合激情免费| 九九色色| 9l视频自拍九色9l视频自拍九色9l社区| 精品久热69| 五月丁香六月婷婷久久肏| 五月丁香综合影院| 天天搡日日搡aaaaⅩ| 五月丁香久久色| 激情综合在线播放| 超碰97干| 99在线观看视频精品| 99久久国产成人精品| 免費亭亭成人| 久久婷婷六月综合| 五月婷婷影院| 丁香婷婷色五月| 一本色综合色| 日熟女| 丁香色五月婷婷17C| 十月丁香婷婷| 婷婷五月天免费视频| 亚洲色五月婷婷| 婷婷色五月激情强奸四射| 亚洲成人综合在线| 极品人妻VIDEOSSS人妻| 色五月中文字幕| 中文资源在线a| 性爱网久久| 狠狠干青青草| 五月婷婷亚洲| 日韩无码专区| 丁香五月区| 天天玩天天摸| 思思国产99| 99久久99久久| 操大屄五月天视频| 九色PORNY9l原创自拍| 99色色最新视频| 能看的av网站| 三人荫蒂添的好舒服A片| 久久网址99热| 日本在线免费中文com.| 激情五月天综合网| 亚洲综合色婷| 六月丁香婷| 欧美日本一区二区三区| AV大香蕉| 久久成人天| 色五月天丁香婷婷| 久操香蕉| 狠狠88综合久久久久噜噜噜| 99精彩视频| 日本天天操| 婷婷狠狠18禁久久| 人妻VideOssS人妻| 九九综合| 亚洲综合五月天婷婷丁香| 99精品爱| 激情五月婷婷| 久99视频| 日本系列_4页_777FP| 激情文学综合婷婷五月天丁香花| 色婷婷丁香五月综合| 色噜噜狠狠色综合日日| 欧美日比视频| 五月天色色色网| 五月天激情小说婷婷| 天天做天天爱| 五月婷婷久久网| 超色欲天天| 免费看欧美成人A片无码| 婷婷娌伦网| 97色色色视频| 亚洲国产精品二二三三区| 成人五月天丁香| 26uuuuuuuu国产| 六月丁香啪啪啪| 丁香五月婷在线观看| 欧美99热| 性色欲情 网站| 久久五月天网| 九月婷婷综合网| av人人操| 99视频热99| 激情五月婷婷综合视频| 欧美性爱五月天| 丁香婷婷六月激情文学 | 99色视频| 婷婷六月丁香在线| 亚洲激情综合| wwW天天干| 人妻AV在线| 92久久| 国产精品VA在线| 伊人久久大香线蕉av一区| 久久综合激情婷婷激情| 操人无码| 丁香五月综合狠狠| 最新亚洲色色网| 少妇AB又爽又紧无码网站 | 五月婷婷综合网| 丁香六月av| 久久久久久五月天| 五月婷综合性中心| 99原创自拍视频在线观看| 《》【无码】想被搞到爽AV应募而来的超M素人 西纯子 10musume-011723-01 | 色婷婷日本| www.婷婷,com| 九九色精品| site:901-07.com| 性爱久久| 亚洲婷婷五月天激情综合| 色屌丝中文字幕| 激情AV| 国产精品久久99| 成人精品在线| 久久婷婷五月丁香| 丁香五月 无码| 五月天色不卡| 91蜜桃婷婷狠狠久久综合9色| 色婷婷丁香五月天| 狠狠色官网| 97超级碰| 天天综合 99久久婷婷| 中日韩美欧成人一区二区精品在线| 久久婷青青草原| 九九九九这里只有精品| 超碰色色综合| 日本99热| 久久精品性爱| 婷婷欧美色| 一级AV片| 殴美日比视频| 色婷婷五月网| 国产成人在线不卡AV| 大香蕉婷婷| 婷婷激情综合色五月久久,色婷婷丁香花,丁香婷婷五月情天,久久婷婷五月综合色 | 丁香五月成人| 五月婷婷免费看| 97色婷婷成人综合在线观看| 另类少妇人与禽zOZZ0性伦| 一本伊人色婷| 亚洲无码播放| 亚洲av综合在线| 8区视频在线| 夜夜www| 婷婷五月色色| wwwav大香蕉| 婷婷情色五月天| 五月色亭丁香| 另类激情五| 99干日日干| 综合大香蕉| 久久久久久久久久人妻| 天天操天天日天天爱| 99re久热| 裸睡玩奶头(高H)| 日韩另类在线观看| 丁香五月天堂网AV| 久久大香蕉同僚| 丁香六月色婷婷欧美| 婷婷丁香五月视频| 无码激情AAAAA片-区区| 欧美五月婷婷| 99国产在线| 强辱丰满人妻HD中文字幕| 伊人网欧美在线男人天堂五月丁香 | 91狠狠色丁香| 欧美爆乳一区二区三区| 色五月天中文字幕| 91超级碰| 91欧美| 婷婷五月综合色拍| 中文字幕在线人妻| 99热热热99精品丁香| 日本三级韩三级99久久| 欧美日韩日韩成人| 91av传媒高清在线视频网| wwwwww.色| 2w在线视频| 精品夜夜澡人妻无码AV| 色丁香久久| 亚洲第一第二网站| 青青草日本亚洲| 99er这里只有精品视频| 情色五月天网站| 成年视频免费观看| 五月香蕉网| 色综合99无码| 日 日干 日日做| 婷婷99丁香| 操精品9| 日本不卡高字幕在线2019| 99热这里只有精彩| 五月丁香亚洲综合| wwwss在线观看| www色五月| 五月丁香色婷婷色| 色婷婷五月天成人网| 婷婷五月亚洲综合| 五月天婷婷久久| 天天搞夜夜爽夜夜爽| 激情六月丁香| 丁香六月综合激情| 那里有AV网址| 色五月开心五月激情五月| 丁香五月婷婷六月婷| 激情五月六月婷婷综合啪啪| 日操| 管管補管管紱| 欧洲亚洲激情五月天在线| 精品成人无码A片观看香草视频 | 亚洲色五月天在线| renre人人操国产超碰在线| 婷婷五月天少妇| 深爱开心激情网| 亚洲色小说在线综合| 九九热手机在线视频| 综合五月天婷婷色| 五月天涩涩| 日日干日日| 91九九| 婷婷91| 日本色色影片| 最新日韩久热免费视频看看| 先锋五月婷婷丁香草草| 99国产小视频免费观看| 亚洲精品性色| 五月婷婷丁香六月| 丁香六月欧美| 日本操B视频在线观看| 无码人妻一区二区一牛影视| 久久久99免费视频| WWW、日本色丁香co m| 婷婷五月丁香色情| 色色cOm| 亚洲精品又粗又大又爽A片 | av在线免费播放| 久久久久久人妻| 婷婷中合| 丁香六月五月天| 91精品无码| 婷婷五月丁香六月| www.ywav| 久久新地址| 五月丁激情| 婷婷婷婷婷婷婷婷| 丁香六月婷婷| 色综合偷拍| 婷五月天天| 五月婷婷之美女图片| 亚洲操人| 婷婷激情五月天激情小说| 思思色综合网站| 日本女人久久| 九九视频在线观看视频6| 《丁香激情综合久久伊人久久》影视在线观看 -高清预告手机免费播放 -三妹影院 | 中文字幕综合| 欧美综合婷婷网| 婷婷中文字幕网| 无码少妇高潮喷水A片免费| 久久hd| 六月香五月婷| 五月丁香啪啪啪综合网| 综合久久十| 色婷婷中文字母五月丁香| 狠狠干无码| 日韩无码专区| 俺也去在线久久精品23欧美综合视频网站,丰满人妻一区二区三区在线视频53,丰满 | 亚洲激情 久久| 国产激情在线| 伊人大香蕉爱聚| 婷婷婷婷婷开心无码播放| 色色a| 99热日| 婷婷九月狠狠色| 久99久在线| 亚洲国产精品VA在线看黑人| 日本97在线视频| 成年人看Va免费视频| 香蕉婷婷| 色情综合| 久久与婷婷| 日韩无码亚欧无码| 第一区久久网站| 久热这里| 激情婷婷五月女| 九九五月天| 久久久jd| 狠狠爱婷婷丁香| 91xxxx九色| 毛片色五月| 日本激情综合| 五月天三级| 久久综合激情| 欧韩性爱| 五月丁香六月婷| 91一起操| 亚洲九九视频| 精品久色| 激情五月婷婷五月| 狠狠色色| 婷婷在线视频| 99热在线观看免费中文| 欧美色色色色色| 婷婷五月天成人导航| 日韩视频99| 五月婷婷六月丁香| 国产无套精品一区二区| 婷婷色婷婷亚洲成人| 26uuu亚洲| 婷婷五月天中文字幕.| 青青草五月天| 色婷婷在线视频久| 国产精品日本一区二区在线播放| 色播五月丁香综合| 天天干天天日蜜臀av| 天天色综合网吨吧| 9色免费网| 美欧成人视频| 丁香五月天网站| 五月天色区| 五月色 亚洲| 99九九这里有免费视频| 成人丁香五月天| 天堂网色色| 丁香久久综合| 99综合色色色| 成人做爰黄A片免费看直播室男男 久草热8精品视频在线观看 | 色婷婷精品视频| 激情伊人| 欧美搡BBBBB摔BBBBB| 精品色色网| 在线五月色播| 99热这里有精品| 日本www免费九九| 99久久玖玖| 丁香五月777| 玖玖综合色| 六月色日韩| 丁香,开心成人,久久| 五月开心激情| 激情丁香婷婷| 婷色天堂| 午夜九九九九九九九九九九九九九| 成人网址在线观看| 一本色道久久88综合日韩精品| 综合激情深爱| 991精品在线视频| 深爱五月激情五月| 丁香 婷婷 亚洲 熟女| 欧美色图天堂网色| 香蕉久久av一区二区三区| 婷婷五月天开心网| 婷婷第六色| 任你干线上免费视频有3吗| 日本熟妇精品99| 开心五月婷婷在线视频免费观看| 欧美在线视频9| 丁香五月五月婷婷| 人人爱人人添| 91操操| 中文字幕高清av| www.超碰在线| www激情五月天| 九九Av| 大香久久综合网| 亚洲婷婷免费| 久久婷婷综合五月趴| 色色色婷婷五月| www.婷婷| 最近免费中文字幕大全高清大全1 色狠狠色噜噜AV天堂五区 | 冬月かえでAV无码播放| 婷婷六月伊人| 丁香婷婷五月综合欧美另类| www.97碰碰com| 久久99网站| 五月婷婷av| 久色姿源| 97人人草| 色五月丁香五月| 3pAV| 欧美超级视频97| 色狠狠色噜噜AV天堂五区 | 婷婷天天色| 亚洲婷婷丁香五月亚洲| 中美日韩成人在线| 色综合色婷色基地| 五月婷婷久久大片| AV大香蕉| 天天干天天日天天操| 亚洲国产精品VA在线看黑人| 丁香五月综合亚洲| 亚州欧美国产久精国产99综合视频| 4399在线观看免费高清黄色视频| 操逼综合激情网| 伊人在线视频| 国产成人网| 啪啪综合网| 五月色丁香| 婷婷综合在线| 综合五月丁香六月婷婷| 五月婷婷乱| 五月婷婷六月爱| 婷婷丁香77777| 任你日视频| 色综合色色色色| 亚洲无码猫咪| 色婷婷av综合网| 精品亚洲国产成AV人片传媒| 色色操| 天天操天天插| 天天插天天插| 性一交一乱一交A片久久四色| AV在线大香蕉| 久久永久视频| 99热爱爱干干日| 日本系列_4页_777FP| 色色色在线观看| 日日夜夜天天| 98色花堂98t.R| 色五月欧美| 天堂色婷婷| 91avse| 婷婷综合激情| 99re这里只有| 日本色色影片| 狠狠插.com| 91九色超碰| 激情综合五月婷婷| www.婷婷网| 久久五月视频| 亚洲丁香五月天在线视频| 欧美色色色色色色色色色色影视| 成人精品一区二区三区四区五区| 欧洲亚洲免费视频9| 免費亭亭成人| 激情综合色婷婷啪啪六月天| 色色色色色色色色网站| 欧美丁香五月夫妻天| 欧洲一区二区| 岛国av网站| 超级碰碰97在线| 久久婷婷网址| 97色图片中文字幕视频在线观看| 婷婷五月综合社区| 五月综合亚洲色| 色婷婷色五月色丁香| 色综合开心五月深爱五月| 婷婷丁香人妻天天久久| 激情四射婷婷| 91超级碰碰| 天堂久热| 啪色综合| 99丁香五月婷| 另类国产综合| 天天肏高清在线| 婷婷五月天久久久| 婷婷影视久久| 九九热99免费视频| 亚洲第一色网站| 国产日韩亚洲欧美在线观看| 99九九综合久久九九| 欧美性爱五月天| 人人操人| 亚洲sesesese| 俺去也在线www色官网| 天天插天天| 婷婷色操| 39视频第二区| 五月深爱婷婷| 婷婷五月天亚洲图片| 婷婷五月天六点丁香五月| 久久永久视频| 密着浓厚中出乚交尾GvG935| 丁香五月人妻| 五月丁香六月欧美综合| 69色婷婷| 精品久久久久成人码免费动漫| 狠干综合| 久久婷婷五月综合激情国产| 伊人婷婷综合| 久久九九Com| www久| 精品三区影院| 久久久97| 丁香五月婷婷操逼| 美女天天爽| 人妻AV在线| 天堂久久性| 色婷婷五月天天天天天天天天天| 丁香五月婷婷激情尤物| 强壮公让我夜夜高潮A片视频| 无码动漫AV| 婷婷五月俺要去| www.五月天色色.com| 91人久| 精品激情| 丁香五月婷婷在线| 综合天堂AV久久久久久久| 99操逼视频| 色婷婷www| 欧美大片免费观看| 日本欧美在线| 色综合五月天| 国产操B| 另类图片激情五月天| 五月丁香六月激情| 亚洲成人丁香花| 五月天婷婷在线啪啪视频| www色婷婷| 94干大香蕉| 性色99| 精品夜夜澡人妻无码AV| 99ri精品| 99热在线看片| 超碰免费电影| 丁香激情合作五月| 久久丁香五月天| 久久99久久99精品免观看粉嫩| 精品A√| 成人无码免费一区二区中文| 丁香五月六月久久综合 | 中文字幕操比影片| oVV4WIB3vFi8D| 91精品久久久久久77777| 91色在线/日韩| 99网| 婷婷色情五月| 婷婷 月 丁香| 无码字幕中文| 日本激情五月| 久9综合| 五月天激情啪啪| 拍色综合| 久草热视频在线观看| 欧美日韩一区二区三区四区| 欧美激情综合色综合色| 日韩在线看AV| WWW.夜夜| 9l久久久视频| 六月丁香综合| 婷婷久久精品| 丁香五月激情网| 日韩色五月| 97啪啪| 五月天玖玖狠狠色色| 任你草| 婷婷综合偷拍| 深爱五月中文字幕| 亚州操人在线视频| 婷婷久久综合| 99性爱| 九九热再线九九视频免费在线观看| 狠狠干夜夜干| 电影蜘蛛女| 欧美特大片黄| 亚洲色婷婷视频| 九九99男女视频在线观看| 91肏| 99精品无码视频| 蜜臀AV在线观看| 可以免费看的av网站| 久久综合五月婷婷| 99福利导航| 五月丁香手机在线| 粉嫩AV久久一区二区三区| 欧美英丁香开心快乐六月天网| www.com在线操视频免费观看| 免费看欧美成人A片无码| 久久9视频欧美| 国产日韩欧美| 五月婷婷在线观看| 草草影院爱爱| 五月天六月色| 激情美女五月天激情在线| 91色干| 激情九月婷婷| 婷婷五月成人系列| 五月丁香激情综合网官网| 99乱视频| 欧美叉叉叉BBB网站| 婷婷色五月综合| 色五月婷婷91| 性一交一乱一交A片久久四色| 色丁香五月综合网| 五月天堂六月丁香亚州中文字幕久久| 色都都狠狠色都都色综合色| 51XX午夜影福利| 超碰AV在线| 五月色情| 色色99| 天天日人人| 无码动漫AV| 久久色情| 日本黄色三级片内射| 色五月丁香伊人五月| 操人91| 性爱激情五月| 丁香六月婷婷综合激情欧美| 亚洲激情五月婷婷日日| 丁香五月777| 一本大道熟女人妻中文字幕在线| 色五月激情网| 丁香婷婷六月激情| 色九月婷婷丁香| 免费看欧美成人A片无码| 五月天桃色深爱网| 五月天激情网图片 - 百度| 狠狠色丁香久久婷婷综合五月| 99热色精品| 激情綜合網址| 开心五月丁香婷婷| 五月丁香六月婷| 97碰 在线视频观看| 婷婷色影院| 婷婷内射视频在线| 亚洲色综合性| 狠狠久久婷五月综合色| 欧美色色色色色色| 五月丁香婷婷成人网| 黄色三级日本| 婷婷五月色播放| 六月婷婷狠狠色在线观看| 99福利导航| 男人的天堂99| 综合色播| 五月天激情影院| 九九这里都是精品| 69激情小说| 亚洲精品va| 久久激情综合| 婷婷九色| 国产亚洲色婷婷久久99精品9j| 亚洲综合网在线| 伊人99热| 亚洲中文乱字字幕在线永久| 色六月婷婷| 婷婷五月激情视频| 九九热99精品| 色婷婷婷综合五月天| 亚洲一个色| AAA久久久| 婷婷情色五月天| 日韩无码人妻一区二区| 中文字幕欧美精品久久| 久久se 综合网 | 四月婷婷五月色综合| 久久大香蕉视频| 激情婷婷丁香色五月| 亚洲正能量欧美| 亚洲乱码日产精品BD| 高清无码网址| 色99视频| 思思热在线视频精品| 亚洲色五月婷婷| 热久久成人| 五月丁香日本在线视频观看| 成人短视频在线| 丁香婷婷五月六月久久| 91人操人人人操人| 国产日韩av片| 日韩黄色网络| 五月天综合激情网| 久操福利| 影音先锋色婷婷| 香蕉综合在线| 精品九九在线观看视频| VA日本视频| 性婷婷| 婷婷五月天亚洲激情戏精品| 天天插天天干天天舔| 九玖欧洲亚洲| 五月丁香六月综合基地| 狠狠穞A片一區二區三區| 久久丁香综合| www.91.com黄| 老司机伊人| 久久xx| 久久久久久五月天| 色亭亭九月| 伊人色五月| 超碰99在线观看| 日本狠狠爽| 色欲AV导航| WWW.桔色成人.COM| 亚洲欧美成人在线| 思思99热在线| 婷婷五月色花丁香社区| 丁香五月婷婷99| 99在线视频播放| 91精品久久久久久综合五月天| 99热精品在线| 日本美女97在线视频| 二区成人视频| 97极品在线| 五月天·www·com| 青青热久久综合| 99re免费精品视频| 丁香婷婷久| 色五月婷婷影院| 国产色丁香| 欧美色欲色欲天天天www| 99久在线精品99re8| 玖玖爱资源站| 精品一区二区三区免费毛片爱 | www.婷婷六月天| 青青久久五月| 91丨九色|PRNY熟妇| 久热久| 99视频热| 久久激情网| 久草丁香婷婷1024| 日本美女上人| 天天干天天玩天天夜天天射天天操天天日蜜臀少妇 | 操逼视频网址| 亚洲午夜电影| 激情五月天之六月婷婷| 深爱开心激情| 九九成人视频| 97超喷视频在线观看| 成人网址在线观看| 色色欧美色色| WWW,五月| 思思热99er| 婷婷激情性爱| 欧美激情五月| 久99久精品| 色五月婷婷成人| 91碰碰视频| 麻豆五月丁香婷婷| 97在线精品| 操b视频在线观看一区二区| 激情婷婷丁香五月天小说| 久久婷婷六月综合综合色| 激情综合五月婷婷| 99超级碰碰| 婷婷五月丁香综合人妻| 亚洲超碰青涩| 热九九在线| 久久激情天堂| 婷婷五月综合中文字幕| 五月天天丁香婷婷在线中| 天天操婷婷| 51精品国自产在线| 99欧美| 五月婷激情影院| 91碰碰碰久久久久| 天天激情视频| 九九碰九九爱97超碰| 啪啪五月综合| 色久免费| 99在线精品免费视频| 色色色99| 97色天堂| 高清国产一级婬片a免费| 丁香伊人激情| 这里只有精品久久| 日本女人久久| 色婷狠狠| 婷婷五月天最新网址| 色 五月俺去也| 国产精品色色| 久久婷婷啪啪视频| 天天干天天干天天干| 婷婷激情五月天激情小说| 五月丁香六月婷婷婷婷| 欧美叉叉叉BBB网站| 九九综合精品| 婷婷成人五月天成人文学| 三级黄网站| 亚洲免费看片| 99操中文视频| 99热大香蕉| 五月天天堂久久| 操操自拍| 91九色中文字幕女在线观看| 人妻久久久久久久久久久| 婷婷丁香成人色综合| 五月婷婷久久综合| 五月天激情国产综合婷婷婷| 激情综合青草| 久久综合五月天| 九九这里有精品视频| 九九热超碰| 激情五月综亚网| 《亚洲操B久久免费在线观看,亚洲操B久久在线播放》在线播放 - 高清资源 - 97 | 婷婷丁香五月综合| WWW.激情|