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

ARTICLE DETAIL

資訊詳情

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

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

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