欧美成人午夜精品久久久,国产?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
返回資訊列表
最新激情五月天| 夜夜涩涩涩| 婷婷日| 91精品久久久久久综合五月天| 中文字幕成人| 成人五月丁香社区| 激情婷婷五月天伊人在线观看| 亚洲色综合色网| 五月综合激情| 丁香婷五月天| 亚洲99在线| 久久网日本| 97干在线视频| 99操网站| 深爱五月激情五月| 思思久久青草热| 青青草五月天| 人人操AV| 天天色天天日天天舔| 91九色无码日韩 | 无码地址| 日笨久久网| 婷婷操逼| 视频色色色色色色| 五月丁香六月婷婷,婷| 久综合4| 日日噜狠狠色| 丁香五月激情五月开心五月| 久久欧洲综合网| 久久99热这里| 六月丁香婷婷色狠狠久久| 99国产在线精品视频| 99精品22| 综合激情啪啪| 五月天激日本色情在线| 色,激情五月天| 男人的天堂婷婷色五月| 天天日天天插| 热九九精品| 六月激情综合| 四虎成人精品永久免费AV九九| 激情黄色小说五月天| 色色九九五月天| 欧美成综合在线观看| 色色热| 六月婷婷综合| www色五月| 五月婷婷中字在线| 极品 少妇 内射| 婷香五月| 亚洲无aV在线中文字幕 | 色欲色欲久久宗合网| 久热成人| 色色国产| 色八戒操婷婷| www.一区二区三区| 91久女| 色综合久| 热久综合| 久久久久久99精品无码| 夜夜爱爱亚洲| 97香蕉碰碰人妻国产欧美| 婷婷久久爱| 婷婷五月天综合亚洲| 国产五月视频| 久久婷婷综合色丁香| 9精品一区| 97超级操操| 强辱丰满人妻HD中文字幕| 亚洲综合色色| 99热激情| 婷婷色婷婷| 久久精品一区二区三区四区| 伊人在线视频| 影音先锋 一区| 丁香五月婷婷亚洲综合精品| 丁香婷色| 99热乎| 青青操avbb| 婷婷5月天av| 无码色色色色色| 特黄三级片| 色狠狠五月天| 九九视频这里有精品| 先锋男人99资源| 色噜噜狠狠狠综合曰曰曰| 色小说婷婷五月天天天| 丁香六月婷婷久久综合| 亚洲综合激情五月久久| 《亚洲操B久久免费在线观看,亚洲操B久久在线播放》在线播放 - 高清资源 - 97 | 天天久久狠狠色综合| 婷婷五月精品中文字幕| 激情五月,色五月| 思思热在线精品视频网站| 成人va在线观看视频| 久这里只有精品99| 天天插,天天射| 超碰免费成人| 欲求不满的人妻| 色v综合网| 免费的日逼视频| 丁香五月天在线| 天天狠天天叉| 国产99久| 五月激情久久综合| 九九这里都是精品| 噼里啪啦完整版中文在线观看| 婷婷五月天综合久久日美女| 亚洲婷婷五月| 亚洲激情五月丁香久久久久| 天天狠天天叉| 五月婷亚洲精品| 极品人妻videosss人妻| 五月丁香六月婷婷综合伊人| 色五月婷婷综合| 色色网站毛片| 热99一二三| 五月婷在线观看| 五月天婷婷高清无码| 久久六月天| 色色综合网。| 婷婷涩五月天综合| 激情综合网五月激情网| 激情五月综合网| 婷婷五月激情综合网| 《诡秘之主》在线观看| 婷婷五月天AV在线| 噼里啪啦在线观看免费完整版视频| 欧美成人精品A片免费一区99| 狠狠婷婷色综合| 亚洲无线视频| 天天艹天天色| caop在线| 激情六月丁香| 操操操AV| 99热8在线| 亚洲sesesese| 五月天另类小说| 丁香五月婷婷婷桃花影院| 99re思思在线视频| 色婷久| 亚洲综合九九| 奇米影视777在线_在线观看午夜_h小视频在线观看_岛国大片 | 伊人大蕉香| 加勒比色色| www99精品| 色欧美日| 六月婷婷七月丁香| 亚洲网综合在线| 热99精品视频在线观看| 色欲久久综合| 夜夜人妻五月天| 另类图片天天影视在线观看| 综合久久9| 九九这里都是精品| 久久婷婷五月天激情新地址| 79精品在线视频| 婷婷五月天AV| www.激情com| 日日夜夜狠狠婷婷色| 婷婷综合亚洲| 在线综合91| 人人草人人爱手机视频看看| 国产九月婷婷| 人人操av| 色综合色| 狠狠香蕉| 婷婷五月亚洲激情| 国产午夜精品一区二区三区四区| 99aese| 成人看片网站| www.十八禁不禁AV.com| 俺来也狠狠| 79成人网| 五月婷综合| www.俺去也com| 丁香色婷婷五月天| 五月久久网| 六九色综合婷婷五月天| 婷五月天六| 91成人性爱视频| 婷婷色五月天色色| 色欲婷婷五月天| 色婷网| 99久久婷婷国产综合| 五月婷婷色影院| 丁香六月综合激情| 婷婷五月天,影院| 夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂亚洲亚洲亚洲亚洲亚洲亚洲亚洲亚洲色 | 五月天停婷基地| 午夜无码熟熟妇丰满人妻| 五月激情婷婷六月丁香| 特黄三级又爽又粗又大| 色色色免费视频| 日韩AV中文字幕在线| 亚洲激情综合| 久久与婷婷| 色综合久久久无码中文字幕999| 手机AVAV天堂看网| 97超碰婷婷五月天| 亚洲精品婷婷| 亚洲成人高清在线| 久久小说网| 天天色天天色天天色天天色天天色| 久久五月热| 大天天伊人| 99操视频| 国产色香蕉精品五夜婷| 六月综合婷婷开心伊人| 久久婷婷五月天激情唯美| 九九久久玖玖爱| 天天拍天天操| 色婷婷丁香五月丁香| 国内精品免费一区二区2009| 香蕉婷婷| 桃色激情网| 五月丁香婷婷基地| 欧美A片在线视频免费观看| 99热综合网| 99婷婷五月天| 五月丁香婷婷婷激情爱爱| 色五月欧美| 99热九九这里只有精品| 九九九九无码| 在线理论片| 狠狠操天天干| 久99久热只有精品国产99| 婷婷最新地址| 丁香六月综合| www.亚洲激情| 欧美丁香婷婷天天操| 七七久久婷婷| 免费看欧美成人A片无码| 思思热视频| 婷婷五月在线综合| 日韩狠狠色| 日韩黄色中文字幕| 九九精品热| 五月丁香婷婷激情澎湃四射| 99这里只有精品国产| 国产综合A片| 天天色播| 色爱亚洲| 久播影院免费观看电视剧大全最新网| 婷婷色色综合激情| 亭亭五月丁香综合欧美| 97久人人| 婷婷久久色五月婷婷久久久| Av九九| 丁香九月婷婷色| 五月天色播网| 五月天激情小说| 中文成人在线| 精品久久人妻| 丁香五月天激情| 操人妻视频91| 日韩一区二区在线播放| 99碰碰| 五月天色色色色色| 97亚洲精品| 无码色| 91碰| 久久婷婷网站| 激情人妻综合| 婷婷视频在线| 五月丁香六月香综合激情| 久热这里只有国产| 噜噜色天天开心| 久热99热| 色噜噜夜夜夜综合网| 曰本aaaaaa丈片| 99国产精品久久久久久久久久久| 91九色国产| 99热这里只| 色色网站免费观看| 这里只有精品久| 激情网五夜婷婷| 中文字幕不卡+婷婷五月| 亚洲欧洲一二| 亚洲AV无码影院| 婷婷不卡基地| 91oumei| 日韩有码一区| 涩九九九九| 五月婷久久草| 成人av中文字幕| 在线观看免费狠狠色丁香香综合| 91九色国产在线| 成人网站av免费网站推荐| 日笨久久网| 啪啪啪丁香五月| 大香蕉在线99热| 丁香婷婷九月在线| 五月丁香天堂| 性热视频99精品| 激情文学第四色婷婷丁香五月| 色婷久| 伊人婷婷五月天av| 激情宗合哪里能看| 天天 青草 丝袜制服 在线| 六月丁香婷婷网| 五月丁香六月婷婷亚洲激情综合| 久久久精久人妻| 色五月五月丁香| 九九热思思热| 这里只有精品免费视频| 久久九九网| 丁香五月播播| AA片在线观看视频在线播放| 婷婷六月久久| 亚洲精品无码久久| 国产精品-91JQ就要激情网91JQ6.91JQ27.CASA:16888 | 色婷婷小说| 99热九九热| 丁香五月自拍| 大香蕉丁香五月| 高清 码 免费看片短视频| 99热亚洲| 五月婷成人网| 丁香六月婷婷一区二区三区| 一区二区成人电影| 亚洲视频在线观看| 伊人大蕉香| 久久在这里99| 好好干av| 丁香五月无码| www.婷婷五月天| 在线中文av| 噜噜在线| 91啦丨九色丨刺激中文| 啊V视频在线观看| 免费色色色| 色狠狠色狠狠| 网色99| 国产亚洲精品AAAA片APP| 婷婷五月综合丁香久久| 99久久亚洲精品视频| www.狠狠狠狠| 日韩啪| 超碰免费人妻| 黃色三级三级三级三级 qixing300.shrkbk.com www.jinbozs.com tianmiaosw.com | 久久激情五月天| 激情图片婷婷丁香五月| 51精品国自产在线| 99自拍视频在线| 五月天婷婷乱| 亚洲人妻av| 在线视频婷婷| 久思思热视频在线观看| 丁香五月激情婷婷婷婷在线观看| 亚洲激情久久| 亚洲小电影在线观看黄999| 婷婷四月 成人 狠狠干| 日本色色网站| 99@久久@99精品视频| 99噜噜| 激情综合婷婷| 日韩无码色色| 狠狠情色| 色色色色网色色网色色| 操操啪| 中文字幕性爱视频| 99色在线观看视频| 五月综合激情网| 91久久久久久久久久| 五月天小说激情| 丁香五月婷婷综合精品素人| 狠狠婷婷日韩| 影音先锋 91工厂| 五月婷婷丁香啪啪| 婷婷色基地在线看 | 99热这里只有精品99| 亚洲精品V天堂中文字幕| yellow视频在线观看91| 丁香五月天激情综合| 99久久国产宗和精品1上映| 久热99热| 色婷久九| 9精品视频在线| 色久免费| 天天干在线播放| 99热只有精品在线播放| 97精品综合久久| 激情婷婷丁香色五月| 五月天婷婷丁香蜜桃91| 亚洲乱码精品久久久久..| 激情婷婷五月| 五月婷亚洲精品AV天堂| 色五月五月婷婷| 亚洲日日操| 99精彩视频网站在线| 激情五月综合网| 超碰资源在线| 五月天婷综合| 99精品视频偷拍| 五月婷婷丁香大香蕉| 性爱电影科技贸易有限公司| 成人做爰高潮A片免费视频| 丁香色情五月综合激情| 免费视频99| 超碰人人超碰| 超碰人人艹| 色婷婷综合成人| 婷婷丁香五月色| 亚洲第二AV| 99热亚洲精品| 丁香久月婷| 婷婷成人五月天成人文学| 色色97丁香婷婷五月天| 99精品色| 久热黄色| 26UUU欧美| www色色com| 激情五月天在线视频| 日韩精品999| 日韩成人AV在线播放| 狠狠99| 欧美激情综合色综合啪啪五月| 五月婷免费视频| 人妻久久久久久久 | 色色色色色网站| 久久久色情| 天天上天天爽| 久久久宗合视频88| 欧美VA在线| 久热伊人9| 婷婷 丁香 精品| 超碰99热精品| 五月婷婷婷婷| 婷婷五月婷婷五月| 888久久久| 综合久久高清| 射区导航| 99综合视频| 五月丁香怕怕综合| 激情玖玖综合网| 激情网五月| 人妻久久婷婷| 婷婷久久网| 丁香五月AV综合激情| 五月伊人91| 人人爽天天爽| 大香蕉综合网| 日本在线播放97| 99九九视频| 婷婷久久网| 亚洲日韩乱码一区二区三区四区| 26uuu四色| 少妇被躁爽到高潮无码文| 天天射影视综合网| 综合久久影院| 狠狠五月婷婷| 亚洲精品成人| www激情网| 久久大香免费| 激情五月婷| 五月宗合激情网| 99丁香五月婷| 激情九月丁香婷婷| 婷婷丁香成人| 婷婷五月天干干| 婷婷操超碰| 国产精产国品一二三在观看| 五月激情六月丁香| 色色成人網| 色婷婷综合电影| 丁香五月色情| 婷婷六月色丁香视频在线观看| 十二区无码| 亚洲精品无码久久| 99免费热视频| WWW色五月天| 婷婷久久婷婷色五月| 99久久激情视频| 久久久久人妻精选| 国庆精品久久| 久久99大全| 国产精品99久久久久久久女警| 婷婷五月亚洲一本在线丁香| 亚洲99激情| 亚洲在线视频321| 五月天婷婷基地| 新激情五月天天在线网| 色小说五月婷婷| 香蕉综合在线| 99久久精品亚洲综合| 五月丁香| 狠狠爱综合| 九九亚洲视频| 天天艹天天色| 成人精品一区二区三区四区五区 | 五月婷婷久久开心网| 婷婷色中文| 97综合视频在线| 丁香婷婷影院| 色婷婷a v| 99热这里只有精品18| 99丁香五月婷 | 五月天天天天天天天天天天天天天天天婷婷婷| 五月丁香亚洲五月| 久久色五月天| 色色五月天激情| 91天堂网综合| 超碰京东热av男人的天堂| 青柠影视免费高清电视剧| 9色在线| 五月六月伦理| 五月丁香六月婷婷网站| 这里只有精品99www| 国产VA播放| 99色中文| 久久99精品久久久久子伦| 99精品九九| 亚洲精品无码99热| 国产精品天天狠天天看| 乱精品一区字幕二区| 大香蕉九九| 丁香五月欧美激情| 在线视频你懂得| 婷婷玖玖五月天| 五月丁香婷婷基地| 天天噜| 婷婷丁香人妻天天爽| 日日操日日爽| 五月天婷婷人妻| 五月久久亚洲| 丁香五月色五月婷婷宗合| 好好日激情五月天| 97色色色色色色色色色色色色色| 无码中文一区二区三区| 婷婷区日本| 色婷婷五月基地在线| 欧美激情五月天婷婷| 秋霞免费三级片| 婷婷色丁香五月| 男人天堂99| 五月色网| 五月天伊人av| 99热99免费| 99只有这里是精品| 欧美日本va| 色五月婷婷色五月婷婷色五月婷婷| 常久最新免费的色吊丝| 婷婷六月激情| 99自拍视频在线观看| 99久久久久| 五月丁香六月成人| 精品一二三区久久AAA片| 婷婷五月色| 亚洲电影在线观看| www.久操| 碰碰91| 五月综合亚洲色| 激情五月综合免费| 久久这里有精品视频在线免费观看| 丁香六月天堂| 日韩在线99| 亚洲综合在线视频| 亚洲乱码日产精品BD| 丁香五月婷中字在线| 五月噜噜| 激情六月丁香综合| 婷婷五月天熟妇| 婷婷中文字暮| 情色婷婷五月天| 四虎成人精品永久免费AV九九| 久久久免费精彩视频| 在线观看国产高清视频免费网站 | 久久ww| 97很鲁在线视频| 97操男人的天堂| 亚洲婷婷基地| 激情丁香淫荡婷婷| 99网99热| 国产精产国品一二三在观看| 免费成片在线观看| 色色精品色| 五月婷色啪| 高清无码网址| 99国产精品久久久久久久久久久 | 女力报到正好爱上你| 婷婷丁香六月天| 婷婷五月天伊人网| 丁香九色不卡aaa| 日本啪啪天堂| 婷婷六月色播| 婷婷狠狠操| .肏屄视频一区二区| 国产成人av在线播放| 久热这里只有精品99re,久热这里只有精品7 | 激情伊人网| 色波激情五月天| 思思热AV| 午夜天堂一区人妻| 超碰在线免费9| 丁香五月激情月| 天天日天天色| 一级AV片| 涩五月婷婷| 色五月婷婷久久| 婷婷在线视频| 99久操| 五月丁香六月欧美综合| 99热老司机| 丁香婷婷天堂| 婷婷五月天改成什么了| 高清无码网址| 婷婷中文综合网| WWW.夜夜操.com| 精品99在线观看| 4399啪啪视频| 久久精品性爱视频,| 婷婷六月激情| 日本三级99人妇网站| 91婷婷丁香五月天免费视频网站| www.minyis.com【JT】实力收量可预付QQ2101460746 | AV在线大香蕉| 亚洲色热| 九九热视频精品999| 女性自慰系列第五页| 亚洲五月天另类小说图片| 国产偷人爽久久久久久老妇APP| 婷婷五月激情欧美| 激情六月婷婷| 绿色小导航AV| 午夜色丁香| 98国产精品综合一区二区三区| 黄网在线免费观看| 色丁香五月| 婷婷久久天堂网| 一区二区三区四区无码| 色五月激情五月| 中文字幕婷婷五月天| 色色色地址| 99热全是精品| 五月婷婷亚洲| 超碰在线资源| 99re思思热久久| 超碰操日| 色了色综合| 日本熟妇乱妇熟色A片蜜桃| 久久丁香| 99色色| 九九这里只有精品在线视频| 三级三久久线久久99久目本WW| 综合色网站| av在线免费网站 | 国产av网| 狠狠五月综合在线| 婷婷五月欧美| 99视频精品全部观看10| 婷婷玖玖丁香| 九九自拍网| 国产无人区大片| 色婷婷先锋| 国产脫衣舞一区二区三区| 久久婷婷国产| 亚洲色碰| 99热综合网| WWW、日本色丁香co m| 九月丁香| 《》【无码】想被搞到爽AV应募而来的超M素人 西纯子 10musume-011723-01 | 五月婷婷六月丁香免费| 99热这里只有精品55| 天天爽成人综合网站| 99热这里只有精| 丁香五月天色| 最近中文字幕2019视频1| 一个色的综合| 婷婷5月久久综合网站| 婷婷五月天激情影片| #NAME?| www.久热| 大香蕉综合在线| 色五月婷婷在线| 欧美色播综合在线观看| 欧美综合激情| 天天拍天天操| 99免费视频久久| 九九九激情综合| 韩国天天婷婷| 九九色影视| 国产成人精品亚洲线观看| 日韩人妻操逼视频| 五月天社区婷婷丁香社区| 开心五月婷婷激情| 五月丁香婷婷婷婷综合网| 亚洲第一成人AV| 波多野结衣AV无码Porn| 久久久人妻人伦| 日本不卡高字幕在线2019| 五月婷天天搞视频| 综合色播| 色色五月天 亚洲| 囯产精品久久欠久久久久久九大| 婷婷五月丁香av网站| 99精品视频免费观看近期发布| 国产VA亚洲VA96| 免费亚洲婷婷中文字幕| 4438亚洲欧美| 婷婷五月AV| 天天草天天爱| 色婷婷操逼网| 激情五月天色色网| 国产VA亚洲VA96| 9久久精品| 综合福利网| 在线网黄| 丁香六月天婷婷开心综合| av在线免费网站 | 久久99网站| 色色婷婷综合网| 九九人人自拍| 亚洲三A| 婷婷五月激情的图片| 婷婷六月激情啪啪| 五月丁香亭亭操逼| 激情五月天久久| 另类天堂| 五月天另类视频| 色色色99韩| 91在线操| 91丁香色| 五月丁香六月婷| 久久金品黃色| 日本成人噜噜噜噜噜| 日本久热| 久久精品天| 国产婷婷色综合AV蜜臀AV| 91丨九色丨白浆秘| 久狠日av| 久久婷婷五月综合激情国产| 人人人操| 五月丁香中文婷婷中文| 免费无码毛片一区二区A片| 草草操操| 色五月综合在线| 国产99视频永久免费| 九月影院義母在线播放| 婷婷久久天堂网| 9热网站| 亚洲情欲| 久久精品五月天| 99亚洲日韩| 婷婷综合成人五月天| 久久丁香五月天| 成人在线日韩欧美| 91男人资源站| 日本一級黃色一級片| www.婷婷| 1024日韩| PORNY九色9l自拍视频成人| 噜噜五月天综合| 六月色色婷婷| 五月天成人在线视频丁香| 婷婷五月播| 97色热| 丁香五月777| 婷婷六月天| 五月停性愛| 国产古装妇女野外A片| 丁香六月激情| 99在线小视频| 这里只有精品免费| 色婷婷基地| 九九五月天| 另类精品视频在线观看| 9久热在线视频精品| 天天摸天天透天天舔| 99久久久| 99热免| 26UUU欧美| 婷婷亚洲欧美丁香五月| 91人人爽久久涩噜噜噜| 99热这里只有精品22| 五月天影院| 日日夜夜小色哥| 婷婷五月天电影在线| 天天天天做夜夜夜夜做| 色五月色五天色情网| 久久人妻情侣| 激情丁香五月婷婷啪啪| 无码 色| 五月婷婷五月丁香| 五月天.com| 91热视频色网站| 91人人操人人| 五月天综合网| 日韩成人综合网| 丁香五月天激情综合| 少妇高潮A片无套内谢麻豆传| 亚洲精品字幕在线观看| 不卡在线视频| 激情五月天情色| 91热手机在线| 99久热在线精品| 亚洲精品视频在线| 99亚洲综合| 色五月天网| 婷婷六月久久综合导航| 色欲久久久久久综合网综合网| 丝袜激情网| 九热视频| 超碰在线网站9| 九九成年视频| 九色91视频| 另类色网| 激情性五月天免费小说视频| 五月天婷婷久久| 色婷婷久久| 精品亚洲国产成人A片在线鸭王| 国产精品涩涩涩视频网站| 色婷婷中文| 六月婷婷香蕉| 色婷婷成人丁香| 日本激情五月天‘| 九九婷婷综合| 99激情| 婷婷五月天丁香久久| 色婷婷色九月| 热99精品视频观看| 99热这里只有精品86| 色综合区| 人妻丰满精品一区二区A片| 日本高清不卡免费一区二区三区| wWW九九在线播放| 五月伊人综合| 男人的天堂五月丁香| 婷婷综合色图| 风流少妇A片一区二区蜜桃| 91丨九色丨老熟女激情| 激情爱爱网站超大免费| 天天婷婷天天| 97精品自拍视频| 久久久网站| 亚洲视频在线观看区| 久久婷婷五月天| 婷婷六月五月天综合| 97精品欧美91久久久久久久| 《亚洲操B久久免费在线观看,亚洲操B久久在线播放》在线播放 - 高清资源 - 97 | 激情婷婷丁香色五月| 久久狠狠干| 欧美特大片黄| 九九色色网| 婷婷五月色综合| 色播五月婷婷| 日本网站久久| 精品99这里有| 色综合天天综合成人网| 97天堂| 国内久久久精品99| 内射激情在线| 久久综合性| se婷97| www.99热最新视频8| 丁香婷婷激情| 婷婷色网址| 婷婷激情五月天网站| 九九热这里| AA片在线观看视频在线播放| 99色综合网| 人人爱人人添| 国产AV一区二区三区日韩| 六月婷欧美| A久网| 玖玖在线视频| 五月婷婷熟女| 激情六月色| 不卡的AV网站| 天天做综合| 久久精品五月天| 操b视频在线观看一区二区| 五月色情婷婷开心五月色情| 天天肏夜夜肏| 国产成人AV在线播放| 天天做 天天爱| 国产美女无遮挡裸体毛片A片| 国产精品视频免费看| 五月婷婷说| 91男同视频| 99re热精品视频国| 网色99| 九九99香蕉在线视频播放| 一级二级香港秋霞欧美欧美秋霞| 99噜噜噜在线播放| 俺来也综合网精品一区| 91九色国产在线| 亚洲精品中文字幕成人片| 视色综合| 91|疯狂丨高潮丨对白| 色色99色色| 特级西西4444www无码| 热久国产| 99玖玖在线视频| 伊人五月天久久| 丁香五月婷婷色偷偷| 182.t午在线观看| 99热九九在线| 日本激情综合| 六月婷婷影院| 国产又爽又猛又粗的视频A片| 欧美大奶熟女噜噜噜噜| 欧美这里只有精品| 亚洲综人色综网| 综合色久| 丁香六月婷婷激情综合| 久99| 色噜噜狠狠色综| 激情综合婷婷| 97操操| 激情婷婷五月| 久久婷婷五月国产色综合激情| 色爱亚洲| 亚州精品色情在线观看| 五月丁香亭亭| 99精品在| 91国产精品视频播放| 深爱五月最新网址| 亲子乱AV-区二区三区| 开心五月激情婷婷| 97日日碰碰| 五月婷婷成人| 久久综合首页| 国产成人网| 欧美又粗又大一区二区在线观看| 婷婷五月天小说| 狠狠色激情综合| 人人妖人人97| 狠狠摸狠狠摸| 人妻激情综合| 日本婷婷| 综合久久丁香婷婷,五月婷婷六月丁香,开心激情综合网,六月丁香在线观看,婷婷丁 | 九色七七| 婷婷天堂综合| 欧美久热| www.色五月天.com| 91操屁股| 婷婷六月丁香五月| 管管補管管紱| 丁香五月婷婷老师网站| 欧美激情综合色综合啪啪五月| 91色五月| 男女啪啪做爰高潮无遮挡| 台湾佬天天日丁香婷婷五月天| 91免费试看| 色欲久久久久久综合网综合网| 在线成人网站| 亚洲欧洲中文日韩久久AV乱码| av性爱在线| 九月激情综合| 丁香五月激情综合| 婷婷五月天欧美| 97操操操| 9精品久久999| 亚洲美女网Va| 色噜噜狠狠色综| 色色五月婷婷狠狠| 久久Xx| 色宗合,宗合网| 丁香五月婷婷亚洲天堂| 色五月六月| 日韩久久这里只有精品| 夜色综合网| 天天操夜夜操| 网站免费一站二站| 久久五月视频| 久久色午夜在线导航| 九九热99热| 久久久五月四色| 97人人超| 五月激情婷婷偷拍| 五月天大香蕉| 5月丁香六月婷婷| 色色激情网| 五月丁香色停停啪啪啪| www.久久综合| 9999热这里只有精品| 日本系列_4页_777FP| 亚洲第一成人无码A片| 激情中文在线| 丁香五月婷婷88在线| 操碰久| 俺也去五月婷婷丁| 九九综合九九| www.深爱激情| 再次出发二| 国产.亚洲.欧洲视频在线| 久久小说网| 另类图片天天影视在线观看| 久久精品亚洲一级牲爱综合| 丁香五月激情宗合网| 月丁香久久久| 亚洲亚洲人成综合网络| 色九月婷婷丁香| 色婷婷先锋| 开心六月丁香五月婷婷| 人人插9| 9视频在线成人网站| 丁香五月六月综合激情| 婷婷激情五月天激情| 无码毛片992367| 97人人干人人操| 婷婷久久在线| 婷婷丁香九色| 久热91| 五月丁香激情四射| 天天综合影院| 五月丁香六月婷婷免费视频| 色综合激情| 丁香五月婷婷色偷偷| 天天色中文字幕女优AV| www.99视频| 久婷| 免费观看大片视频 丁香婷婷 六月欧美| 六月婷婷狠狠做| 99热这里只有精品26| 欧美色色色色色色色色色色| 久9热在线免费观看| 少妇被下春药玩弄A片| 天天干天天操天天爽| 91ncm视频| 99这里| 五月天,激情四射,婷婷频道| 国熟女视频| 美女亚洲五月丁香| 五月五婷婷网| A片一曲| 中文字幕综合| 国产激情在线观看| 91男人资源站| 色色欧美色色色| 开心五月婷婷| 色噜噜狠狠色综合日日| 91操操| 久久久婷| 色婷婷久久| 色综合久久综合中文综合网| 少妇人妻人伦A片| 五月天开心婷婷激情网站 | 五月情四婷婷| 婷婷五月天另类视频| 97丁香花五月天激情小说| 婷婷综合另类小说| 丁香5月激情网| 99婷婷| 俺来也综合网精品一区| 91欧美| 9er热在线精品视频| 亚洲成人在线播放| 九九热这里只有精品23| 五月天婷婷色| 亚洲综合在线伊人婷| 亚洲天堂久久| 99国产小视频2013| 天天肏屄夜夜爽| 99精品视频在线6| 99热这里只有精品亚洲| AV天堂淫乩| 久久婷婷五月草视频在线播放| 激情精品久久| 天天操夜夜夜拍拍拍| 另类小说五月天综合网| 丁香色五月婷婷91桃色| 久久久人妻门| 五月天最新网| 婷婷丁香六月天| AV在线大香蕉| 色香欲综合| 欧美人与性动交CCOO| 亚洲熟妇AV乱码在线观看| 影音先锋自拍网| 日本婷婷色| 精品99在线观看| 狠狠爱激情网| 狠狠舔| 婷婷五月天,影院| 性天天中文网| 久久五月婷婷丁香| 色99在线| 日韩免费视频| 亚洲综合视频八| 丁香六月| 国产亚洲精品人人| 天天摸日日舔狠狠添婷婷婷 | 九九色情网站| 激情骚五月| 超碰成人在线观看| 狠狠色丁香综合| 五月丁六月婷| 亚洲色色色| 色噜噜狠狠色综无码久久合欧美| 极品人妻VIDEOSSS人妻| 99视频日韩| 超碰免费人妻| 五月婷婷丁香伦理网| 婷婷五月天电影区小说区| 在线观看av网站| 日日日日日| 五月天色色色网| 伊人超碰| 欧美天天性| 99ri精品在线| 三男玩一女三A片| 97在线视频 欧美| 无码se| 丁香5月婷婷| 色综合久久综合中文综合网| 日韩丰满少妇无码内射| 久久影视婷婷五月| 婷婷五月色花丁香社区| 99亚洲日韩| 夜夜操天天干| 香蕉99网| 婷丁香久综合| 99久久综合| 婷婷色婷婷| 久99精品视频| 97色色色视屏| 日本色婷婷| 少妇性按摩无码中文A片 | 婷婷午夜天| 99视频在线| 丁香狠狠操| 亚洲婷婷月丁香五月| 天天爽天天操| 99国产精品白浆在线观看免费| 久久宗合影| 97色伦另类图片小说视频 | 无码AV久久久久久久久| 久久婷婷五月综合色丁香| 色色五月天婷婷丁香| 色综合久久88色综合天天| 五月综合色| 91在线观看www| 丁香五月天在线视频| 五月丁香六月婷婷激情视频在线观看免费| 亚洲第一综合| 99久久精品国产色欲| 亚洲女婷婷五月基地综合久久久| 五月丁香好婷婷A片网| seuuu婷婷| 色狠狠五月天| 丁香五月天亚洲视频| 色欲色欲久久宗合网| 天天射影| 99热天堂| 色婷婷久久7777| 亚洲婷婷婷| 天天日天天色| 插逼综合网| 99成人精品视频| 丰满少妇猛烈A片免费看观看| 激情婷婷久久| 五月婷婷在线综合| 爱超碰性| 天天做天天爱天天日| 热久国产| www,色综合| 夜夜操天天爽| 国产古装妇女野外A片| 婷婷五月色播网| 香蕉国产2013| 操逼巨乳91| 这里只有精品2| 色99综合色88| \\五月天婷婷激情| 久久婷婷综合五月天| 天天综合五月| 日本高清综合网五月丁香| 五月丁香亭亭激情操逼网| 婷婷五月丁香综合激情小说| 26uuu亚洲| 99在线视频色版| 99re在线视频| 欧美乱码国产一级A片| 丁香六月无码播放| 91久女| 五月丁香在线偷拍视频| 伊人无码高清| 久月丁香爱婷婷综合| 草草视频91| 4399在线日本A片| 亚洲六月色婷婷| 夜夜爱伊人| 99狠狠| 日本久久爽| 人人九色| 日韩在线观看亚洲| 色综合色| 任你日热视频| 99热这里只有精| 婷婷丁香成人五月天| 色综合色| 一月婷婷色色| 九九碰九九爱97超| www.精品99| 99综合视频| 99er6免费视频热播| 久久精品性爱| 永久思思热在线| 久久人妻精品| xx综合网| 欧美色一级色| 99性爱精品| 天堂va久久久噜噜噜久久Va| 五月婷婷六月丁香色| 人人草碰| 超碰在线观看9| 婷婷五月天久久久| 天天爱天天做天天操| 欧美日韓成人亚洲精品另类| 99色视频| 99热这里只有精品 搜| 综合精品啪啪| 午夜婷婷久久| 久久综合中文| 亚洲色综合| 婷婷丁香五月六月激情| 丁香五月激情啪啪综合| 99这里只有| 婷婷激情六月综合| 色五月婷婷五月| 色欲日日躁| 97超碰99热99| 国产成人高清| 天天干,天天舔| 欧美成人AAA片一区国产精品| 97色婷婷五月天| 99热全是精品| 在线99热| 欧美一区二区三区不卡影视| 国产激情一区| 五月天狠狠色| 五月婷婷色播视频| 九月丁香八月婷婷加勒比| 人人草开心五月天| 色婷视频| 人妻无码视频网| 99精品小视频| 久热成人| 变态 另类 在线| 五月丁香六月激情在线| 亚洲AV网站| 亚洲偷| 久久99激情| 丁香五月成人论坛| 青青草婷婷久久| 五月婷婷色五月| 久99久热只有精品国产99| 丁香五月婷婷色偷偷| 日本狠狠干| 99re热免费观看视频精品| 久99在线视频| 国产精品久久久爽爽爽麻豆色哟哟| 无码人妻一区| 99热综合| 日韩啪啪自拍| 色婷婷小说| 五月婷婷福利| 九九精品热| 成人久碰| 色五月天丁香| 六月婷婷色宗合| 日本色99| 久久九九热38| 丁香九月激情|