日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

使用Tensorize评估硬件内部特性

發布時間:2023/11/28 生活经验 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用Tensorize评估硬件内部特性 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

使用Tensorize評估硬件內部特性
這是有關如何在TVM中執行張量的入門文檔。
通過使用調度原語tensorize,人們可以用相應的內部函數代替計算單元,從而輕松利用handcrafted micro-kernels,擴展TVM以支持新的硬件體系結構。
本文的目的是展示張量的功能和用法,而不是提供有效的解決方案。
from future import absolute_import, print_function

import tvm
from tvm import te
import numpy as np
定義矩陣乘法
以矩陣乘法為例。Matmul首先將兩個矩陣之間的對應元素相乘,然后在某個軸上累積。以下幾行描述了TVM中A * B^T的計算。
N, M, L = 1024, 512, 64
A = te.placeholder((N, L), name=“A”)
B = te.placeholder((M, L), name=“B”)
k = te.reduce_axis((0, L), name=“k”)
C = te.compute((N, M), lambda i, j: te.sum(A[i, k] * B[j, k], axis=k), name=“C”)
s = te.create_schedule(C.op)
print(tvm.lower(s, [A, B, C], simple_mode=True))
輸出:
primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
attr = {“global_symbol”: “main”, “tir.noalias”: True}
buffers = {C: Buffer(C_2: Pointer(float32), float32, [1024, 512], []),
B: Buffer(B_2: Pointer(float32), float32, [512, 64], []),
A: Buffer(A_2: Pointer(float32), float32, [1024, 64], [])}
buffer_map = {A_1: A, B_1: B, C_1: C} {
for (i: int32, 0, 1024) {
for (j: int32, 0, 512) {
C_2[((i512) + j)] = 0f32
for (k: int32, 0, 64) {
C_2[((i
512) + j)] = ((float32*)C_2[((i512) + j)] + ((float32)A_2[((i64) + k)](float32*)B_2[((j64) + k)]))
}
}
}
}
調度Matmul
假設有一個支持矩陣矢量乘法(GEMV)作為硬件原語的加速器,可以采用任意大小的reduce軸,但另一個軸必須不大于16。因此,分解了matmul循環,生成最里面的一個(16x64)GEMV循環。
factor = 16
x, y = C.op.axis
(z,) = C.op.reduce_axis
yo, yi = s[C].split(y, factor=factor)
s[C].reorder(x, yo, yi, z)
print(tvm.lower(s, [A, B, C], simple_mode=True))
輸出:
primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
attr = {“global_symbol”: “main”, “tir.noalias”: True}
buffers = {C: Buffer(C_2: Pointer(float32), float32, [1024, 512], []),
B: Buffer(B_2: Pointer(float32), float32, [512, 64], []),
A: Buffer(A_2: Pointer(float32), float32, [1024, 64], [])}
buffer_map = {A_1: A, B_1: B, C_1: C} {
for (i: int32, 0, 1024) {
for (j.outer: int32, 0, 32) {
for (j.inner: int32, 0, 16) {
C_2[(((i
512) + (j.outer16)) + j.inner)] = 0f32
for (k: int32, 0, 64) {
C_2[(((i
512) + (j.outer16)) + j.inner)] = ((float32)C_2[(((i512) + (j.outer16)) + j.inner)] + ((float32*)A_2[((i64) + k)](float32*)B_2[(((j.outer1024) + (j.inner64)) + k)]))
}
}
}
}
}
如上面打印的IR所示,內部循環j.inner與k一起形成GEMV的計算-在最內部的兩個循環內,索引i是固定的,對矩陣的訪問A僅變化k,生成A“向量”的訪問模式”。 可以用j.inner張量來評估假設的硬件的GEMV指令。
定義固有的GEMV張量化
調度張量前,先定義GEMV的固有函數。它包括兩部分,第一部分是GEMV的計算定義。TVM使用它來匹配原始Matmul調度中的計算模式。第二個是指定如何在設備上執行GEMV,這在intrin_func下面完成。
def intrin_gemv(m, l):
a = te.placeholder((l,), name=“a”)
b = te.placeholder((m, l), name=“b”)
k = te.reduce_axis((0, l), name=“k”)
c = te.compute((m,), lambda i: te.sum(a[k] * b[i, k], axis=k), name=“c”)
Ab = tvm.tir.decl_buffer(a.shape, a.dtype, name=“A”, offset_factor=1, strides=[1])
Bb = tvm.tir.decl_buffer(b.shape, b.dtype, name=“B”, offset_factor=1, strides=[te.var(“s1”), 1])
Cb = tvm.tir.decl_buffer(c.shape, c.dtype, name=“C”, offset_factor=1, strides=[1])

def intrin_func(ins, outs):ib = tvm.tir.ir_builder.create()aa, bb = inscc = outs[0]ib.emit(tvm.tir.call_extern("int32","gemv_update",cc.access_ptr("w"),aa.access_ptr("r"),bb.access_ptr("r"),m,l,bb.strides[0],))return ib.get()return te.decl_tensor_intrin(c.op, intrin_func, binds={a: Ab, b: Bb, c: Cb})

在此te.decl_tensor_intrin聲明如何執行計算c.op。實現只接受輸入和輸出,將它們轉換為指針并發出外部函數調用。注意,張量需要用戶指定offset_factor,原始數據結構的起始地址和傳遞給張量的偏移量之間對齊的問題,TVM能評估,通過矢量化加載進行優化。為了簡化,將系數設置為1。
為輸入和輸出聲明了緩沖區,盡管這不是必需的,將從緩沖區提供的額外信息中受益。例如,bb.strides[0]作為參數傳遞 給外部函數gemv_update。將看到bb.strides[0] == l如何與更復雜的調度區分開。
注意,將te.var(“s1”)用作第一個步幅B。如果可以推理出步幅(在這種情況下,TVM確定張量B是緊湊的,步幅是[L, 1]),可以使用此類placeholder讓TVM自動為綁定推理的值。
gemv = intrin_gemv(factor, L)
s[C].tensorize(yi, gemv)
print(tvm.lower(s, [A, B, C], simple_mode=True))
輸出:
primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
attr = {“global_symbol”: “main”, “tir.noalias”: True}
buffers = {C: Buffer(C_2: Pointer(float32), float32, [1024, 512], []),
B: Buffer(B_2: Pointer(float32), float32, [512, 64], []),
A: Buffer(A_2: Pointer(float32), float32, [1024, 64], [])}
buffer_map = {A_1: A, B_1: B, C_1: C} {
for (i: int32, 0, 1024) {
for (j.outer: int32, 0, 32) {
@tir.call_extern(“gemv_update”, @tir.tvm_access_ptr(@tir.type_annotation(, dtype=float32), C_2, ((i512) + (j.outer16)), 16, 2, dtype=handle), @tir.tvm_access_ptr(@tir.type_annotation(, dtype=float32), A_2, (i64), 64, 1, dtype=handle), @tir.tvm_access_ptr(@tir.type_annotation(, dtype=float32), B_2, (j.outer1024), 1024, 1, dtype=handle), 16, 64, 64, dtype=int32)
}
}
}
通過張大yi,最里面的兩個循環被之前定義的內在函數代替。為了構建和運行該模塊,定義外部函數gemv_update,它是GEMV的naive實現,僅用于演示。
def gemv_impl():
cc_code = “”"
extern “C” int gemv_update(float *cc, float *aa, float *bb, int m, int l, int stride) {
for (int i = 0; i < m; ++i) {
for (int j = 0; j < l; ++j) {
cc[i] += aa[j] * bb[i * stride + j];
}
}
return 0;
}
“”"
from tvm.contrib import utils, clang

temp = utils.tempdir()
ll_path = temp.relpath("temp.ll")
# Create LLVM ir from c source code
ll_code = clang.create_llvm(cc_code, output=ll_path)
return ll_code

利用pragma屬性import_llvm導入llvm asm內聯。導入在執行張量的GEMV之前進行。
s[C].pragma(x, “import_llvm”, gemv_impl())
print(tvm.lower(s, [A, B, C], simple_mode=True))
出:
primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
attr = {“global_symbol”: “main”, “tir.noalias”: True}
buffers = {C: Buffer(C_2: Pointer(float32), float32, [1024, 512], []),
B: Buffer(B_2: Pointer(float32), float32, [512, 64], []),
A: Buffer(A_2: Pointer(float32), float32, [1024, 64], [])}
buffer_map = {A_1: A, B_1: B, C_1: C} {
attr [IterVar(i: int32, (nullptr), “DataPar”, “”)] “pragma_import_llvm” = "; ModuleID = ‘/tmp/tmpinr5hwkd/input0.cc’
source_filename = “/tmp/tmpinr5hwkd/input0.cc”
target datalayout = “e-m:e-i64:64-f80:128-n8:16:32:64-S128”
target triple = “x86_64-pc-linux-gnu”

; Function Attrs: noinline nounwind optnone uwtable
define dso_local i32 @gemv_update(float*, float*, float*, i32, i32, i32) #0 {
%7 = alloca float*, align 8
%8 = alloca float*, align 8
%9 = alloca float*, align 8
%10 = alloca i32, align 4
%11 = alloca i32, align 4
%12 = alloca i32, align 4
%13 = alloca i32, align 4
%14 = alloca i32, align 4
store float* %0, float** %7, align 8
store float* %1, float** %8, align 8
store float* %2, float** %9, align 8
store i32 %3, i32* %10, align 4
store i32 %4, i32* %11, align 4
store i32 %5, i32* %12, align 4
store i32 0, i32* %13, align 4
br label %15

15: ; preds = %50, %6
%16 = load i32, i32* %13, align 4
%17 = load i32, i32* %10, align 4
%18 = icmp slt i32 %16, %17
br i1 %18, label %19, label %53

19: ; preds = %15
store i32 0, i32* %14, align 4
br label %20

20: ; preds = %46, %19
%21 = load i32, i32* %14, align 4
%22 = load i32, i32* %11, align 4
%23 = icmp slt i32 %21, %22
br i1 %23, label %24, label %49

24: ; preds = %20
%25 = load float*, float** %8, align 8
%26 = load i32, i32* %14, align 4
%27 = sext i32 %26 to i64
%28 = getelementptr inbounds float, float* %25, i64 %27
%29 = load float, float* %28, align 4
%30 = load float*, float** %9, align 8
%31 = load i32, i32* %13, align 4
%32 = load i32, i32* %12, align 4
%33 = mul nsw i32 %31, %32
%34 = load i32, i32* %14, align 4
%35 = add nsw i32 %33, %34
%36 = sext i32 %35 to i64
%37 = getelementptr inbounds float, float* %30, i64 %36
%38 = load float, float* %37, align 4
%39 = fmul float %29, %38
%40 = load float*, float** %7, align 8
%41 = load i32, i32* %13, align 4
%42 = sext i32 %41 to i64
%43 = getelementptr inbounds float, float* %40, i64 %42
%44 = load float, float* %43, align 4
%45 = fadd float %44, %39
store float %45, float* %43, align 4
br label %46

46: ; preds = %24
%47 = load i32, i32* %14, align 4
%48 = add nsw i32 %47, 1
store i32 %48, i32* %14, align 4
br label %20

49: ; preds = %20
br label %50

50: ; preds = %49
%51 = load i32, i32* %13, align 4
%52 = add nsw i32 %51, 1
store i32 %52, i32* %13, align 4
br label %15

53: ; preds = %15
ret i32 0
}

attributes #0 = { noinline nounwind optnone uwtable “correctly-rounded-divide-sqrt-fp-math”=“false” “disable-tail-calls”=“false” “less-precise-fpmad”=“false” “min-legal-vector-width”=“0” “no-frame-pointer-elim”=“true” “no-frame-pointer-elim-non-leaf” “no-infs-fp-math”=“false” “no-jump-tables”=“false” “no-nans-fp-math”=“false” “no-signed-zeros-fp-math”=“false” “no-trapping-math”=“false” “stack-protector-buffer-size”=“8” “target-cpu”=“x86-64” “target-features”="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" “unsafe-fp-math”=“false” “use-soft-float”=“false” }

!llvm.module.flags = !{!0}
!llvm.ident = !{!1}

!0 = !{i32 1, !“wchar_size”, i32 4}
!1 = !{!"clang version 9.0.1-+20191211110317+c1a0a213378-1exp120191211221711.104 "}
";
for (i, 0, 1024) {
for (j.outer: int32, 0, 32) {
@tir.call_extern(“gemv_update”, @tir.tvm_access_ptr(@tir.type_annotation(, dtype=float32), C_2, ((i512) + (j.outer16)), 16, 2, dtype=handle), @tir.tvm_access_ptr(@tir.type_annotation(, dtype=float32), A_2, (i64), 64, 1, dtype=handle), @tir.tvm_access_ptr(@tir.type_annotation(, dtype=float32), B_2, (j.outer1024), 1024, 1, dtype=handle), 16, 64, 64, dtype=int32)
}
}
}
最后,將張量版本與numpy.dot產生的張量版本進行比較,確保實現正確。
func = tvm.build(s, [A, B, C], target=“llvm”, name=“gemv”)

from tvm.topi.utils import get_const_tuple

dtype = A.dtype
ctx = tvm.context(“cpu”, 0)
a = np.random.uniform(size=get_const_tuple(A.shape)).astype(dtype)
b = np.random.uniform(size=get_const_tuple(B.shape)).astype(dtype)
c = tvm.nd.array(np.zeros(get_const_tuple(C.shape), dtype=dtype), ctx)
func(tvm.nd.array(a, ctx), tvm.nd.array(b, ctx), c)
tvm.testing.assert_allclose(c.asnumpy(), np.dot(a, b.T), rtol=1e-3)
進行Tensorize更新Reduce-update
已經了解了張量化的基本概念,現在讓向更復雜的情況邁進一步。
假設加速器只能將向量乘以一個矩陣,向量的大小必須不大于16。考慮到硬件限制,需要按如下方式拆分reduce軸。
zo, zi = s[C].split(z, factor=factor)
s[C].reorder(x, yo, zo, yi, zi)
由于張量內在函數現在僅覆蓋了reduce軸的一部分,而不是使用一個“ body”函數,因此TVM需要一個reduce_reset在reduce for循環之前調用的reduce_update函數,以及一個定義“ update”的函數。計算策略。
def gemv_impl():
cc_code = “”"
extern “C” int gemv_update(float *cc, float *aa, float *bb, int m, int l, int stride) {
for (int i = 0; i < m; ++i) {
for (int j = 0; j < l; ++j) {
cc[i] += aa[j] * bb[i * stride + j];
}
}
return 0;
}
extern “C” int gemv_reset(float *cc, int m) {
for (int i = 0; i < m; ++i) {
cc[i] = 0.0;
}
return 0;
}
“”"
from tvm.contrib import utils, clang

temp = utils.tempdir()
ll_path = temp.relpath("temp.ll")
# Create LLVM ir from c source code
ll_code = clang.create_llvm(cc_code, output=ll_path)
return ll_code

def intrin_gemv(m, l):
a = te.placeholder((l,), name=“a”)
b = te.placeholder((m, l), name=“b”)
k = te.reduce_axis((0, l), name=“k”)
c = te.compute((m,), lambda i: te.sum(a[k] * b[i, k], axis=k), name=“c”)
Ab = tvm.tir.decl_buffer(a.shape, a.dtype, name=“A”, offset_factor=1, strides=[1])
Bb = tvm.tir.decl_buffer(b.shape, b.dtype, name=“B”, offset_factor=1, strides=[te.var(“s1”), 1])
Cb = tvm.tir.decl_buffer(c.shape, c.dtype, name=“C”, offset_factor=1, strides=[1])

def intrin_func(ins, outs):aa, bb = inscc = outs[0]def _body():ib = tvm.tir.ir_builder.create()ib.emit(tvm.tir.call_extern("int32","gemv_update",cc.access_ptr("w"),aa.access_ptr("r"),bb.access_ptr("r"),m,l,bb.strides[0],))return ib.get()def _reduce_reset():ib = tvm.tir.ir_builder.create()ib.emit(tvm.tir.call_extern("int32", "gemv_reset", cc.access_ptr("w"), m))return ib.get()def _reduce_update():return _body()return _body(), _reduce_reset(), _reduce_update()return te.decl_tensor_intrin(c.op, intrin_func, binds={a: Ab, b: Bb, c: Cb})

注意,intrin_func返回一個三元組: 如果tensorization包括所有的reduce軸,功能將被調用,否則一起將被使用。在示例中,共享相同的實現,而在其它情況下,硬件對于這兩個功能可能具有不同的指令。此外,由于平鋪,可以看到現在是不同的。(body, reduce_reset, reduce_update)body()reduce_reset()reduce_update()body()reduce_update()bb.strides[0]l
張量squared GEMV,生成并檢查結果
gemv = intrin_gemv(factor, factor)
s[C].tensorize(yi, gemv)
s[C].pragma(yo, “import_llvm”, gemv_impl())

func = tvm.build(s, [A, B, C], target=“llvm”, name=“gemv”)
a = np.random.uniform(size=get_const_tuple(A.shape)).astype(dtype)
b = np.random.uniform(size=get_const_tuple(B.shape)).astype(dtype)
c = tvm.nd.array(np.zeros(get_const_tuple(C.shape), dtype=dtype), ctx)
func(tvm.nd.array(a, ctx), tvm.nd.array(b, ctx), c)
tvm.testing.assert_allclose(c.asnumpy(), np.dot(a, b.T), rtol=1e-3)
概要
本文演示了TVM中張量內在函數的用法。Tensorize為用戶提供了一種通過微內核獲得完全優化的調度方式。例如,英特爾CPU上使用張量化直接調用AVX指令進行INT8量化。使TVM可以編譯為ASIC-有關詳細信息,請參閱VTA:深度學習加速器堆棧。演示了如何使用內聯程序集導入,這可以幫助用戶輕松地將asm輸入調度中。

總結

以上是生活随笔為你收集整理的使用Tensorize评估硬件内部特性的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

有码中文字幕在线观看 | 日韩成人精品一区二区 | 精品国产欧美一区二区三区不卡 | 激情文学综合丁香 | 精品久久网站 | 中文视频在线播放 | 青春草视频在线播放 | 亚洲国产偷 | 国产亚洲91| 国产一区二区久久久 | 91精品1区2区 | 欧美a级一区二区 | 午夜视频在线观看一区二区三区 | 国产精品视频久久久 | 美女网站免费福利视频 | 人人干天天射 | av大全在线| 国产高清免费在线观看 | 干干操操| 欧美精品在线观看一区 | 国产视频精品免费 | 久久久久亚洲精品国产 | 久久午夜免费视频 | 超碰免费在线公开 | 久久久久久高清 | 在线视频精品 | 激情综合中文娱乐网 | 国产不卡在线观看视频 | 缴情综合网五月天 | 欧美日韩视频在线观看一区二区 | 操久久免费视频 | 91精品中文字幕 | 欧洲亚洲国产视频 | 中文字幕电影高清在线观看 | 国产午夜精品久久 | 午夜视频不卡 | 99久热 | 日韩精品在线免费播放 | 日韩三区在线观看 | 精品女同一区二区三区在线观看 | 亚洲五月激情 | 中文字幕视频 | 国产黄色精品网站 | 国产97在线播放 | 亚洲精品456在线播放乱码 | 国产精品99久久久久久有的能看 | 久久这里只有精品视频首页 | 欧美韩国在线 | 久久这里只有精品首页 | 午夜精品久久久久久99热明星 | 日韩毛片久久久 | 国产 日韩 在线 亚洲 字幕 中文 | 在线导航福利 | 欧美日韩国产色综合一二三四 | 国产精品一区二区久久精品爱微奶 | 91精品国自产拍天天拍 | 欧美最猛性xxxxx(亚洲精品) | 最新成人av| 波多野结衣视频一区二区 | 久久视频在线观看免费 | 国产精品久久久久久av | 在线观看 亚洲 | 最近中文字幕第一页 | 国产福利91精品一区二区三区 | 成年人免费观看在线视频 | 国产精品久久久久一区二区国产 | 日韩欧美精品在线观看 | 久久精品区 | 五月天婷婷在线视频 | 日韩精品一区二区三区水蜜桃 | 亚洲视频分类 | 成 人 a v天堂| 亚洲色五月 | 91久久国产精品 | 久爱精品在线 | 亚洲一区二区黄色 | 97精品国自产拍在线观看 | 日黄网站 | 日韩av免费在线看 | 久久成人久久 | 欧美成人性战久久 | 国产不卡在线播放 | 免费又黄又爽视频 | 91av在线免费观看 | 麻豆小视频在线观看 | 激情视频一区二区三区 | 免费日韩电影 | 天天天天色射综合 | 欧美特一级 | 97精品国产97久久久久久免费 | 在线国产日韩 | 免费视频资源 | 久久久久免费视频 | 美女很黄免费网站 | 一级免费黄视频 | 在线日韩一区 | 国产福利精品一区二区 | 麻花豆传媒一二三产区 | 91免费高清 | 亚洲黄在线观看 | 欧美午夜精品久久久久久孕妇 | 国产操在线 | 亚洲精品中文字幕视频 | 色网站免费在线观看 | 成人a视频片观看免费 | 久久久久久毛片精品免费不卡 | 久久伦理 | 欧美日本日韩aⅴ在线视频 插插插色综合 | 狠狠的日 | 成人黄色片免费 | av一区二区三区在线观看 | 国产91国语对白在线 | 日日碰狠狠添天天爽超碰97久久 | 日韩视频二区 | 国产黄在线观看 | 超碰.com | 99精品国产一区二区三区不卡 | 欧美日韩在线视频免费 | 99热在| 蜜臀久久99精品久久久无需会员 | 毛片精品免费在线观看 | 手机av在线免费观看 | 国产精品久久久久永久免费观看 | 美女露久久| 美女精品在线观看 | 国产精品观看视频 | 又黄又刺激视频 | 狠狠干夜夜操天天爽 | 欧美在线aaa| 偷拍精偷拍精品欧洲亚洲网站 | 在线观看国产亚洲 | 97视频在线观看免费 | 久久资源在线 | 日韩av高清 | 99久久精品国产亚洲 | 亚洲天堂色婷婷 | 国产一区二区手机在线观看 | 精品一区二区免费视频 | 在线观看av小说 | 美女av免费| 夜夜视频资源 | 日韩视频一区二区三区在线播放免费观看 | av免费片| 综合精品久久 | 国产精品久久久久久久久久久久午夜 | 奇米影视999 | 久久精品www人人爽人人 | 91在线网站 | 国产精品久久久久永久免费看 | 人人插人人搞 | 正在播放 久久 | 国内99视频 | 网站免费黄色 | 日韩中文字幕免费 | 欧美日本啪啪无遮挡网站 | 免费在线播放av电影 | av在线播放一区二区三区 | 欧美激情第一区 | a在线一区| 久久久久久国产精品免费 | 国产色道| av电影在线免费 | 成人av在线影院 | 人人射人人澡 | 欧美一二三专区 | 色综合天天视频在线观看 | 免费日韩一区二区 | 精品自拍sae8—视频 | 综合婷婷| 日本久久免费视频 | 精品自拍av | 丁香婷婷综合色啪 | 国产在线播放一区二区 | 国产精久久 | 欧美在线一| 超碰人人草 | 天天射天天射天天射 | 久久免费视频精品 | 高清精品视频 | 国产99久久久国产精品免费看 | 亚洲精品视频在线 | 日韩欧美在线高清 | 亚洲国产精品电影 | 婷婷六月天丁香 | 自拍超碰在线 | 激情综合网五月婷婷 | 亚洲视频综合在线 | 免费观看成年人视频 | 96久久欧美麻豆网站 | 99精品视频一区 | 久久精品91视频 | 狠狠干网站 | 在线免费三级 | 99国产一区| 久草www | av日韩国产| 国产精品免费视频一区二区 | 国产精品欧美在线 | 国产精品久久久久久久7电影 | 911精品美国片911久久久 | 日韩欧美视频 | 国产精品乱码高清在线看 | 免费观看国产精品视频 | 99热在线国产 | 91精品久久久久久 | 亚洲精品一区二区久 | 色婷婷视频在线观看 | 国产精品福利小视频 | www99久久| 99色99| 性色在线视频 | 日韩亚洲国产中文字幕 | 在线视频一二三 | 婷婷 综合 色 | 玖玖精品视频 | 91精品国产高清自在线观看 | 欧美做受高潮电影o | 在线看黄色的网站 | 国产福利一区在线观看 | www.天天成人国产电影 | 91精品国产92久久久久 | 国产在线一区二区三区播放 | 日韩三级视频在线看 | 婷婷射五月 | 探花视频在线观看免费 | 精品国产欧美 | a黄色片在线观看 | 国产精品久久久久久久久婷婷 | 91视频高清 | 麻豆视频在线免费看 | 肉色欧美久久久久久久免费看 | 久久国产美女视频 | 天天操天天玩 | 最近日本韩国中文字幕 | 91高清视频免费 | 成人小视频在线免费观看 | 91九色在线视频观看 | 欧美综合干 | 精品国产电影一区二区 | 久久亚洲二区 | 久久久久久久久久久久久久av | 91一区一区三区 | 国产视频一二区 | 国内丰满少妇猛烈精品播放 | 国产精品久久久久久99 | 在线观看中文字幕一区二区 | 久久免费视频一区 | 免费看十八岁美女 | 69人人 | 丁香激情综合久久伊人久久 | 久久一区二区三区国产精品 | 91丨九色丨高潮 | 日韩视频免费观看高清完整版在线 | 99精品国产免费久久 | 久久极品| 国产白浆视频 | 天天综合操 | 超碰国产在线播放 | 97超碰在线人人 | 免费福利小视频 | 国产中文字幕在线视频 | 狠狠色丁香婷婷综合久小说久 | 麻豆传媒一区二区 | 美女久久久久 | 国产精品中文字幕在线 | 久久亚洲精品国产亚洲老地址 | 久久亚洲欧美日韩精品专区 | 国产视频一区二区在线播放 | 国产精品3区 | 久久福利影视 | 激情图片区 | 欧美一级片在线免费观看 | 亚洲特级毛片 | 婷婷亚洲综合五月天小说 | 日韩在线视频国产 | 深爱激情开心 | 国产专区在线播放 | 久久国语 | 一级性视频 | 久久综合久色欧美综合狠狠 | 97超碰免费 | 黄色com| 久久国产美女视频 | 美女搞黄国产视频网站 | 在线视频观看91 | 日本久久中文字幕 | 国产精品一区二区三区四 | 亚洲欧美日韩精品一区二区 | 激情深爱.com | 美女福利视频在线 | 日韩大片在线免费观看 | 又大又硬又黄又爽视频在线观看 | 成人香蕉视频 | 亚洲国产精品久久久 | 天天干天天操天天 | 国产最新在线视频 | 五月婷丁香网 | www.色五月.com| 天天插天天射 | 亚洲a成人v | 免费视频99 | 天天天操天天天干 | 国产污视频在线观看 | 欧美精品久久久久久久久久久 | 奇米影视999 | 91成人免费观看视频 | 精品亚洲免费 | 成年人在线播放视频 | 五月天婷亚洲天综合网精品偷 | 91天堂影院 | 五月天久久狠狠 | 欧美日韩视频在线观看一区二区 | 久久视频这里只有精品 | 国产精品视频永久免费播放 | 国产一区二区电影在线观看 | 少妇精69xxtheporn | 成人国产在线 | 欧美日韩不卡一区二区三区 | 97av在线视频免费播放 | 亚洲精品久久在线 | 在线看av的网址 | 青春草免费在线视频 | 中文字幕在线观看三区 | 日日夜夜狠狠干 | 一区二区三区日韩视频在线观看 | 国产一级一级国产 | 日韩av在线小说 | 久久人人射 | 在线免费高清一区二区三区 | 国产黄色看片 | 91激情视频在线播放 | 色在线网 | 欧美日韩成人一区 | 99操视频 | 国产午夜精品久久久久久久久久 | 日韩经典一区二区三区 | 久碰视频在线观看 | 高清日韩一区二区 | 国产精品18久久久久vr手机版特色 | 精品国产一区二区三区四 | 国产精品久久99综合免费观看尤物 | 日韩二区三区在线观看 | 五月婷婷久久丁香 | 日日操日日干 | 黄色的视频 | 中文字幕av在线 | 99久久精品国产一区 | 婷婷久月| 亚洲 欧美 91 | 国产精品久久久网站 | 国产成人精品一区二区三区福利 | 久久久久看片 | 午夜精品久久久99热福利 | 香蕉视频4aa | 久久精品人人做人人综合老师 | 国产精品久久99综合免费观看尤物 | av电影免费观看 | 国产激情免费 | 最新超碰 | 玖玖玖影院 | 国产成人一二三 | 国内久久久久 | 国产伦精品一区二区三区照片91 | 五月婷婷国产 | 免费在线黄网 | 精品999 | 免费在线观看av网址 | 成年人av在线播放 | av理论电影| 操操操com | 综合中文字幕 | 免费看一级特黄a大片 | 日韩在线观看视频中文字幕 | 992tv人人网tv亚洲精品 | 国产精品久久久久久久久久久免费看 | 麻豆视频在线免费看 | 亚洲欧美成人网 | 亚洲精品一区二区三区在线观看 | 亚洲国产三级在线 | japanesefreesex中国少妇 | av电影中文 | 人人爽人人爽人人爽人人爽 | 午夜精品婷婷 | 国产精品青草综合久久久久99 | 日韩高清一 | 超碰在线人 | www.在线观看av | 久久国产成人午夜av影院宅 | 香蕉视频在线免费 | 欧美色婷 | 91精品国产92久久久久 | 特级黄录像视频 | 国产精品成人品 | 99久久精品免费一区 | 欧美成人aa | 精品亚洲视频在线观看 | 91中文视频| 亚欧日韩成人h片 | 1024手机看片国产 | 91av视频在线播放 | 丁香六月五月婷婷 | 精品视频 | 久久黄色影视 | 日韩免费中文 | 国产在线观看免 | 日本高清dvd | 婷婷六月综合网 | 丁香六月在线观看 | 日韩电影在线视频 | 又黄又网站 | www免费看 | 免费黄色av. | 久久久久国产成人免费精品免费 | www.色的| 激情视频免费观看 | 福利网址在线观看 | 国产高清av免费在线观看 | 欧美日韩一区二区三区在线观看视频 | 17婷婷久久www | 欧美尹人| 国产资源站 | 韩日三级在线 | 日本乱码在线 | 日韩1级片 | 色综合久久久网 | 日韩欧美在线高清 | 色噜噜在线观看 | 一级黄色片网站 | www日韩精品 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 国产97在线观看 | aaa亚洲精品一二三区 | 免费av网站观看 | 亚洲男女精品 | 午夜 免费 | 天天操夜夜看 | 国产精品69av | 精品国产视频在线观看 | 久久国产手机看片 | 午夜精品久久久久久久久久久久久久 | 91在线免费观看网站 | 欧美在线观看视频一区二区 | 国产一区二区久久久久 | 黄色av电影网 | 国产精品美乳一区二区免费 | aa一级片 | 一区精品在线 | 天天射天天射天天射 | 色婷五月天 | 91精品国产九九九久久久亚洲 | 在线视频18在线视频4k | av一二三区| 国产+日韩欧美 | 成人小视频在线播放 | 国产一区精品在线 | 不卡的av电影在线观看 | 极品嫩模被强到高潮呻吟91 | 成人黄色av免费在线观看 | 欧美性生活免费 | 五月亚洲婷婷 | 免费黄色一区 | 在线观看一级视频 | 欧美日韩一区久久 | 精品国产自在精品国产精野外直播 | 99精品免费视频 | 久久精品亚洲精品国产欧美 | 青青河边草免费视频 | 91大神dom调教在线观看 | 9在线观看免费 | 99r精品视频在线观看 | 精品国产一区二区三区久久久蜜臀 | 美女视频黄在线观看 | 日韩欧美v| 亚洲电影一级黄 | 69av免费视频 | 成年人网站免费观看 | 日日成人网 | 国产特黄色片 | 色综合天天视频在线观看 | 国产免费高清视频 | 欧洲亚洲激情 | 丁香花在线观看免费完整版视频 | 91女神的呻吟细腰翘臀美女 | av免费网站在线观看 | 中文字幕亚洲欧美日韩 | 97精品国产一二三产区 | 久久中文字幕在线视频 | 婷婷亚洲最大 | 天天天天天天操 | 999视频网 | 国产精品福利小视频 | 九九欧美 | 91成人在线视频 | 国产一级视频在线 | 九九精品视频在线观看 | 日韩三区在线 | 四虎国产精品免费观看视频优播 | 九九九九热精品免费视频点播观看 | 99九九视频 | 在线 视频 亚洲 | 五月天综合网站 | 色综合久久久久久久久五月 | 亚洲精品午夜一区人人爽 | 日韩精品中文字幕在线观看 | 久久综合色婷婷 | 一级黄毛片 | 亚洲欧美视频网站 | 国产一级电影在线 | 日本精品在线 | 人人干人人模 | 999久久久免费视频 午夜国产在线观看 | 亚洲成人黄色在线观看 | 99久久久国产精品 | 一区二区三区中文字幕在线 | 亚洲视频免费在线观看 | 五月综合| 久久成年人 | 亚洲精品日韩一区二区电影 | 国产精品免费一区二区 | 99久久日韩精品免费热麻豆美女 | 天堂在线一区二区三区 | 一二三精品视频 | 成年人免费观看国产 | 日韩av在线资源 | 亚洲成人精品久久久 | 欧美不卡在线 | 99性视频| 日日夜夜人人天天 | 91干干干 | 天天干,天天射,天天操,天天摸 | 国产精品成人av久久 | av成人动漫在线观看 | 一级性生活片 | 欧美 日韩 成人 | 99精品美女| 日韩欧美精品一区二区 | 国产美女被啪进深处喷白浆视频 | 国产短视频在线播放 | 在线色视频小说 | 天天曰夜夜操 | 亚洲aaa毛片 | 国产在线观看免费 | 狠狠网亚洲精品 | 亚洲精品字幕在线观看 | 日韩视频在线不卡 | 成人动漫视频在线 | 国产99久久久精品 | 成人免费一级 | 99热在线观看 | 热久久精品在线 | 伊人久久国产 | 欧美视频在线二区 | 久久久久成人精品 | 欧美日韩在线播放一区 | 日本最新一区二区三区 | 色婷婷狠狠五月综合天色拍 | 中文字幕欧美激情 | av在线免费在线观看 | 久久久久久麻豆 | 久草综合在线观看 | 黄色片视频在线观看 | 久草com | 91九色在线观看 | 婷婷久久精品 | 成年人黄色大片在线 | 91看片淫黄大片在线播放 | 久久久久久久久久久网 | 亚洲理论电影 | 日韩a免费| 香蕉日日 | 欧美欧美 | 亚洲毛片在线观看. | 亚洲一级二级 | 欧美男男tv网站 | 日本精品一区二区在线观看 | 免费视频一区二区 | 国产91粉嫩白浆在线观看 | 美女激情影院 | 欧美日韩国产色综合一二三四 | 在线精品视频在线观看高清 | 国产精品丝袜久久久久久久不卡 | 91黄色免费看| 久久国语露脸国产精品电影 | av免费看网站 | 国产成人777777 | 成年人在线免费视频观看 | 伊人天天干 | 91亚色视频 | 国产高清一区二区 | 最新中文字幕在线观看视频 | 国产黄色在线看 | 精品免费一区 | 亚洲精品国产精品乱码不99热 | 999成人 | 午夜美女福利 | 久久久久久久久久久久久国产精品 | 国产日韩精品在线观看 | 欧美成人在线免费 | 亚洲国产精品一区二区久久,亚洲午夜 | 国产精品一区二区av影院萌芽 | 97国产电影 | 美女免费视频黄 | 欧美日韩一级久久久久久免费看 | 亚洲国产精品成人精品 | 国产福利在线免费 | 久久久久亚洲精品男人的天堂 | 国产精品久久久久久久7电影 | 一区二区三区中文字幕在线观看 | 成人免费在线观看av | 日韩丝袜视频 | 亚洲免费永久精品国产 | 久香蕉 | 亚洲精品午夜视频 | 国产精品久久久久久久午夜片 | 国产成人一区二区三区在线观看 | 日韩另类在线 | 韩国av免费看 | 久久久久久久久久久国产精品 | 天天射天天爽 | 韩国在线视频一区 | 色资源网在线观看 | 日韩一片| www.伊人色.com | 久久国产精品色婷婷 | free. 性欧美.com | 91女子私密保健养生少妇 | 91精品免费 | 亚洲狠狠操 | 精品亚洲成a人在线观看 | 波多野结衣综合网 | 国产亚洲欧美精品久久久久久 | 婷婷丁香六月天 | 亚洲精品国产精品99久久 | 精品国产激情 | 97av.com| a天堂在线看 | 国产精品一区二区久久 | 欧美性极品xxxx做受 | 天天操天天干天天操天天干 | 成人国产精品久久久 | 国产在线精品一区二区不卡了 | 丁香六月婷婷综合 | 狠狠躁日日躁狂躁夜夜躁 | 午夜精品久久久久久久99水蜜桃 | 97干com| 男女精品久久 | 国产激情小视频在线观看 | 国产成人三级三级三级97 | 丝袜av一区 | 91看片黄色 | 婷婷伊人网 | 国产精久久久久久久 | 黄色成品视频 | 国产在线观看你懂的 | 97在线精品视频 | 波多野结衣视频一区二区三区 | 国产一级一片免费播放放 | 在线精品视频免费播放 | 欧洲av不卡 | 欧美性直播| 香蕉视频亚洲 | 午夜影院先 | 99re久久精品国产 | 婷婷六月中文字幕 | 国产成人av在线 | 在线观看自拍 | 九九色综合 | 999久久久久 | 精品国产成人av在线免 | 免费网站色 | 五月天久久 | 97视频在线 | 国产精品乱码久久久久久1区2区 | 久久黄色成人 | 97色狠狠 | www.久久久com| 国产精品国产三级国产aⅴ无密码 | 97超碰在线资源 | 国产一级大片免费看 | 精品国产一区二区三区久久久久久 | 欧美一级片在线观看视频 | 久久久2o19精品 | 久草在在线| 在线成人小视频 | 高清视频一区二区三区 | 成人 国产 在线 | 国产成人一区二区精品非洲 | 欧美 日韩 国产 成人 在线 | 网址你懂的在线观看 | 五月婷婷综合久久 | 一区二区三区动漫 | 婷婷狠狠操 | 国产玖玖精品视频 | 免费视频你懂得 | 国产精品入口麻豆www | 成人影音在线 | 天堂在线视频中文网 | 在线观看免费黄色 | 天天射天 | 一区二区三区四区五区六区 | 色婷婷狠| 黄污视频大全 | 日韩精品视频网站 | 国产中文字幕网 | 91精品视频一区二区三区 | 韩国av电影网 | 国产精品一区欧美 | 色大片免费看 | 欧美日韩在线视频一区 | 久久999精品 | 91视频链接 | 成人在线观看你懂的 | 亚洲经典精品 | av片中文字幕 | 又黄又爽的免费高潮视频 | 免费福利在线播放 | 国产免费专区 | 亚洲精品美女在线观看 | 日韩精品五月天 | 欧美一区二区精品在线 | 久久av免费 | 国产精品手机在线观看 | 日韩在线国产精品 | 欧美一级高清片 | 国产精品久久久久一区二区三区共 | 亚洲人视频在线 | 91av视频免费在线观看 | 久久婷婷一区二区三区 | 精品产品国产在线不卡 | 99视频在线观看免费 | 婷婷在线网站 | 又爽又黄又刺激的视频 | 亚洲 欧美 综合 在线 精品 | 国产精品黄色影片导航在线观看 | 亚洲狠狠婷婷综合久久久 | 欧美了一区在线观看 | 九九热在线精品视频 | 手机在线黄色网址 | 国产专区精品 | 久久九九久久九九 | 中文字幕av在线播放 | 成人午夜电影久久影院 | 国产在线不卡精品 | 国产午夜在线 | 91黄色免费网站 | 久久精品国产亚洲 | 亚洲成人频道 | 九色免费视频 | 四虎精品成人免费网站 | 亚洲一区二区麻豆 | 综合色站导航 | 亚洲一区二区高潮无套美女 | 免费aa大片 | 久久视频在线 | 国产五月色婷婷六月丁香视频 | aaa日本高清在线播放免费观看 | 久操操| www欧美日韩 | 日韩免费在线看 | 在线91精品| 中文字幕日韩一区二区三区不卡 | 亚洲国产成人精品久久 | 久久国产a | 日本公妇在线观看高清 | 国产亚洲成av人片在线观看桃 | 中文字幕日本在线 | 日韩网站在线看片你懂的 | 日韩一二三区不卡 | 高清国产午夜精品久久久久久 | 国产偷国产偷亚洲清高 | 天天弄天天干 | 国产伦精品一区二区三区四区视频 | 久久国产精品一区二区三区四区 | 中文字幕av最新更新 | 伊人天堂av | 热久精品 | av在线影视 | 欧美激情精品久久久久久免费印度 | 亚洲va欧洲va国产va不卡 | 97成人免费视频 | 国产成人精品999在线观看 | 91精品国产入口 | 国产精品门事件 | 五月天综合网 | 国产电影黄色av | 三级小视频在线观看 | 欧美日韩免费一区 | 高清在线一区 | 久久精品国产免费 | 特级西西444www大精品视频免费看 | 好看的国产精品视频 | 成人午夜毛片 | 亚洲第一中文字幕 | 免费福利片 | 日本久久久亚洲精品 | 久久免费的精品国产v∧ | 欧美高清视频不卡网 | 天天色天天上天天操 | 五月婷婷深开心 | 精品国产一区二区三区蜜臀 | 欧美最新另类人妖 | 99在线免费视频 | 97成人资源站 | 国产麻豆精品传媒av国产下载 | 91视频在线 | 日韩在线中文字幕视频 | 久草.com | 视频在线日韩 | av九九九| 久久无码精品一区二区三区 | 99视频国产精品免费观看 | 午夜国产福利在线 | 中文在线免费一区三区 | 在线视频日韩欧美 | 精品视频 | 日日躁夜夜躁xxxxaaaa | 日韩精品免费在线 | 亚洲欧美视频在线观看 | 九九免费观看全部免费视频 | 99久久爱| 久久国产精品视频免费看 | 免费观看www7722午夜电影 | 欧美午夜精品久久久久久浪潮 | 国产精品一级在线 | 色综合久久久久综合体 | 成人免费一级片 | 国产精品原创av片国产免费 | 亚洲日韩中文字幕在线播放 | 亚洲国产天堂av | 久久99国产精品久久99 | 狠狠躁日日躁夜夜躁av | 国产高清av免费在线观看 | 人人澡人人爽 | 午夜电影中文字幕 | 亚洲三级网 | 狠狠色综合欧美激情 | 欧美日韩视频在线一区 | 欧美日韩三级在线观看 | 成人午夜影院在线观看 | 久久激情五月婷婷 | 久久精品欧美一区二区三区麻豆 | 久久免费高清 | 999毛片| 欧美性天天 | 日韩精品久久久久久久电影99爱 | 成人在线免费看视频 | 国产欧美日韩精品一区二区免费 | 国产精品专区h在线观看 | 右手影院亚洲欧美 | 国产中文字幕在线免费观看 | 国产麻豆精品95视频 | 日韩欧美在线免费观看 | 久久久久国产精品午夜一区 | 在线观看视频你懂 | 精品极品在线 | 日韩av不卡播放 | 操操操av | 国内丰满少妇猛烈精品播放 | 久久人人爽人人爽 | 国产一级二级视频 | 91福利视频免费观看 | 久久狠狠婷婷 | 8x成人在线 | 免费色网 | 久久久久久久久久久久影院 | 国产生活一级片 | 国产一级免费在线观看 | 国产视频91在线 | 国产精品久久久久久久久久 | 亚洲精品国产精品国自产观看 | 色搞搞| 日韩精品视频在线免费观看 | 日本三级中文字幕在线观看 | 又大又硬又黄又爽视频在线观看 | 国产1区2区| 亚洲国产欧美在线看片xxoo | 国产精品福利久久久 | 精品在线二区 | 国产精品久久久久亚洲影视 | 国产精品一区二区在线观看免费 | 亚洲高清不卡av | 97精品在线 | 亚洲欧美国产视频 | 国产精品久久久久一区二区三区共 | 综合网成人 | 国产一线二线三线在线观看 | 六月色丁香 | 九九色在线观看 | 日韩成人精品在线观看 | 亚洲人成人天堂h久久 | 在线观看黄av | 337p西西人体大胆瓣开下部 | 精品嫩模福利一区二区蜜臀 | 免费久久99精品国产 | 丁香亚洲| 99色在线视频 | 在线观看黄av | 欧美精品一区在线发布 | 亚洲精品乱码久久久久 | 中文视频在线看 | 亚洲成人av电影 | 黄色大片日本免费大片 | 国产精品一区二区久久精品爱微奶 | 久久久久久久久毛片 | 国产不卡av在线播放 | 在线观看黄色免费视频 | 日韩免费播放 | 日韩激情综合 | 久久国产色 | 日韩在线观看第一页 | 久草在线手机观看 | 6080yy午夜一二三区久久 | 精品国产一区二区三区四区在线观看 | 精品久久久久久久久久久久 | 中文字幕在线国产 | 欧美精品久久久久久久 | 欧美色黄 | 成年免费在线视频 | 亚洲欧洲精品一区二区 | 成人免费色 | 丁香花中文字幕 | 四虎影视国产精品免费久久 | 国产尤物一区二区三区 | 欧美另类美少妇69xxxx | 精品你懂的 | 成人精品久久 | 在线视频一区二区 | 国产一二区视频 | 国产九九在线 | 在线看黄网站 | 亚洲精品合集 | 国产午夜一区 | 久久久久国产精品午夜一区 | 狠狠伊人 | 六月婷色 | 黄在线| 中文字幕免费一区 | 99tvdz@gmail.com| 欧美一级欧美一级 | 久久99精品国产麻豆宅宅 | 又色又爽又黄 | 深夜免费小视频 | 天天射成人| 亚洲精品短视频 | 五月婷婷狠狠 | 国产人成在线观看 | 99免费在线播放99久久免费 | av电影中文字幕在线观看 | 夜夜躁狠狠躁日日躁 | 黄色大片日本 | 激情综合色图 | 久久久久久国产精品亚洲78 | 日本久久精品 | 久草视频在线资源站 | 欧美精品在线免费 | 亚洲 欧美 变态 国产 另类 | 天天操狠狠操网站 | 国产在线不卡 | 亚洲国产资源 | 伊人网站 | 久久视精品| 免费在线观看的av网站 | 国产成人精品久久久久蜜臀 | 久久久久久久久黄色 | 中文字幕在线观 | 96精品视频 | 韩国精品视频在线观看 | www.五月天婷婷 | 97视频资源 | 国产麻豆视频在线观看 | 国产亚洲婷婷 | 三级黄色理论片 | 国产中文字幕国产 | 在线看国产一区 | 在线香蕉视频 | 亚洲精品影视在线观看 | 久久精品一区 | 黄色av电影在线观看 | 欧美在线视频第一页 | 天天干天天看 | 亚洲 欧美日韩 国产 中文 | 国产亚洲精品电影 | 国产日韩在线观看一区 | 国产日本亚洲 | 日韩在线观看中文字幕 | 久久99久久99精品免视看婷婷 | 日韩在线观看视频中文字幕 | 激情五月激情综合网 | 黄色特级毛片 | 国产一区二区三区四区在线 | 国产精品综合在线 | 成年美女黄网站色大片免费看 | 九九热精品在线 | 视频一区在线播放 | 亚洲精品理论 | 亚洲麻豆精品 | 国产高清一 | 亚洲一级性 |