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

歡迎訪問 生活随笔!

生活随笔

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

生活经验

如何将算子添加到Relay

發布時間:2023/11/28 生活经验 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何将算子添加到Relay 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

如何將算子添加到Relay
本文將介紹在Relay中注冊新TVM算子所需的步驟。將PR添加累積產品運算示例。PR本身建立在另一個PR的基礎上,該PR添加了一個累積和運算。
注冊新算子需要幾個步驟:
添加一個屬性節點,聲明編譯時已知的固定參數
為算子編寫一個類型關系,集成到Relay的類型系統中。
使用C++中的RELAY_REGISTER_OP宏,注冊編譯器的算子屬性、類型和其它提示
如何計算算子
向Relay算子注冊計算、調度
定義C++函數,為算子生成調用節點并注冊函數的Python API hook
將上述Python API hook包裝在一個更完備的接口中
為新Relay算子編寫測試

  1. 定義屬性節點
    屬性是在編譯時已知的固定參數。卷積算子的stride和伸縮,屬于卷積算子的屬性節點中的字段的適當示例。
    屬性應該在include/tvm/relay/attrs/文件夾的文件中定義。
    最終,希望創建一個算子,在python接口中可以清楚地看到該算子的接口:
    def cumprod(data, axis=None, dtype=None, exclusive=None):
    “”"Numpy style cumprod op. Return the cumulative inclusive product of the elements along
    a given axis.
    Parameters

    data : relay.Expr
    The input data to the operator.
    axis : int, optional
    Axis along which the cumulative product is computed. The default (None) is to compute
    the cumprod over the flattened array.
    dtype : string, optional
    Type of the returned array and of the accumulator in which the elements are multiplied.
    If dtype is not specified, it defaults to the dtype of data.
    exclusive : bool, optional
    If true will return exclusive product in which the first element is not
    included. In other terms, if true, the j-th output element would be
    the product of the first (j-1) elements. Otherwise, it would be the product of
    the first j elements. The product of zero elements will be 1.
    Returns

    result : relay.Expr
    The result has the same size as data, and the same shape as data if axis is not None.
    If axis is None, the result is a 1-d array.
    “”"
    cumsum()存在類似的接口。
    因此,在include/tvm/relay/attrs/transform.h中定義屬性時,選擇運算的軸、累積數據類型和獨占性,作為struct結構體的適當字段。
    /*! \brief Attributes used in cumsum and cumprod operator */
    struct ScanopAttrs : public tvm::AttrsNode {
    Integer axis;
    DataType dtype;
    Bool exclusive = Bool(false);
    TVM_DECLARE_ATTRS(ScanopAttrs, “relay.attrs.ScanopAttrs”) {
    TVM_ATTR_FIELD(axis).describe(“The axis to operate over”).set_default(NullValue());
    TVM_ATTR_FIELD(dtype).describe(“Output data type”).set_default(NullValue());
    TVM_ATTR_FIELD(exclusive)
    .describe(“The first element is not included”)
    .set_default(Bool(false));
    }
    };

  2. 編寫類型關系
    為了允許在注冊算子時具有靈活性,以及在Relay中表達類型時,具有更大的表達能力和粒度,使用輸入和輸出類型間的關系鍵入算子。這些關系表示為函數,這些函數接受輸入類型和輸出類型列表(這些類型中的任何一種都可能不完整),返回滿足該關系的輸入和輸出類型列表。這包括可在編譯時靜態確定的shape信息。本質上,算子的關系除了計算輸出類型,可以強制執行所有必要的類型規則(即通過檢查輸入類型)。
    累積積與和算子的類型關系可在src/relay/op/tensor/transform.cc中找到:
    TVM_REGISTER_NODE_TYPE(ScanopAttrs);
    bool ScanopRel(const Array& types, int num_inputs, const Attrs& attrs, const TypeReporter& reporter) {
    // types: [data, output]
    ICHECK_EQ(types.size(), 2) << “Expects two types, one for the input and another for the output”;
    const auto* data = types[0].as();
    if (data == nullptr) {
    ICHECK(types[0].as())
    << "Scanop: expect input type to be TensorType but get " << types[0];
    return false;
    }

    const auto* param = attrs.as();

    auto dtype = param->dtype;
    if (dtype.is_void()) {
    dtype = data->dtype;
    }

    if (param->axis.defined()) {
    reporter->Assign(types[1], TensorType(data->shape, dtype));
    } else {
    auto prod = data->shape[0];
    for (size_t i = 1; i < data->shape.size(); ++i) {
    prod = prod * data->shape[i];
    }
    reporter->Assign(types[1], TensorType({prod}, dtype));
    }

    return true;
    }

  3. 將Arity和屬性與運算關聯
    然后,注冊新運算的名稱,用調用接口進行注釋。C++中的RELAY_REGISTER_OP宏,允許開發人員指定Relay中的算子的以下信息:
    Arity(參數數量)
    位置參數的名稱和說明
    支持級別(1表示內部固有;數字越大表示積分或外部支持的算子越少)
    算子的類型關系
    優化運算時有用的注釋。
    添加到src/relay/op/tensor/transform.cc:
    RELAY_REGISTER_OP(“cumsum”)
    .describe(
    R"doc(Return the cumulative sum of the elements along a given axis.)doc" TVM_ADD_FILELINE)
    .set_num_inputs(1)
    .add_argument(“data”, “Tensor”, “The input tensor.”)
    .set_support_level(3)
    .add_type_rel(“Cumsum”, ScanopRel)
    .set_attr(“TOpPattern”, kOpaque);

RELAY_REGISTER_OP(“cumprod”)
.describe(
R"doc(Return the cumulative product of the elements along a given axis.)doc" TVM_ADD_FILELINE)
.set_num_inputs(1)
.add_argument(“data”, “Tensor”, “The input tensor.”)
.set_support_level(3)
.add_type_rel(“Cumprod”, ScanopRel)
.set_attr(“TOpPattern”, kOpaque);
在本例中,TOpPattern是對編譯器的一個關于算子所執行的計算模式的提示,這對于融合算子可能很有用。kOpaque告訴TVM不要費心嘗試融合這個算子。
4. 定義運算的計算
雖然現在已經為操作定義了接口,但仍然需要定義如何執行累計和與積的實際計算。
編寫此代碼超出了本問的范圍。現在,假設有一個經過良好測試的操作計算實現。有關如何執行此操作的更多詳細信息,建議查閱有關張量表達式、TVM算子清單(topi)的文件,查看python/TVM/topi/scan.py和python/TVM/topi/cuda/scan.py中的gpu版本中的示例累積和與產品實現。在累積和與積運算的情況下,直接在TIR中寫入內容,這是張量表達式和topi將降低到的表示形式。
5. 將計算和策略與Relay連接起來
實現了計算功能后,現在需要粘到Relay操作上。在TVM中,不僅要定義計算,還要定義操作的調度。策略是一種選擇要使用的計算和計劃的方法。例如,對于二維卷積,可能認識到正在進行深度卷積,因此分派到更高效的計算和調度。然而,在例子中,除了CPU和GPU實現間的調度外,沒有這樣的需求。在python/tvm/relay/op/strategy/generic.py和python/tvm/relay/op/strategy/cuda.py中,添加了以下策略:
def wrap_compute_scanop(topi_compute):
“”“Wrap scanop style topi compute”""

def _compute_scanop(attrs, inputs, _):return [topi_compute(inputs[0], attrs.axis, attrs.dtype, attrs.exclusive)]return _compute_scanop

@override_native_generic_func(“cumsum_strategy”)
def cumsum_strategy(attrs, inputs, out_type, target):
“”“cumsum generic strategy”""
strategy = _op.OpStrategy()
strategy.add_implementation(
wrap_compute_scanop(topi.cumsum),
wrap_topi_schedule(topi.generic.schedule_extern),
name=“cumsum.generic”,
)
return strategy

@override_native_generic_func(“cumprod_strategy”)
def cumprod_strategy(attrs, inputs, out_type, target):
“”“cumprod generic strategy”""
strategy = _op.OpStrategy()
strategy.add_implementation(
wrap_compute_scanop(topi.cumprod),
wrap_topi_schedule(topi.generic.schedule_extern),
name=“cumprod.generic”,
)
return strategy

@cumsum_strategy.register([“cuda”, “gpu”])
def cumsum_strategy_cuda(attrs, inputs, out_type, target):
“”“cumsum cuda strategy”""
strategy = _op.OpStrategy()
strategy.add_implementation(
wrap_compute_scanop(topi.cuda.cumsum),
wrap_topi_schedule(topi.cuda.schedule_scan),
name=“cumsum.cuda”,
)
return strategy

@cumprod_strategy.register([“cuda”, “gpu”])
def cumprod_strategy_cuda(attrs, inputs, out_type, target):
“”“cumprod cuda strategy”""
strategy = _op.OpStrategy()
strategy.add_implementation(
wrap_compute_scanop(topi.cuda.cumprod),
wrap_topi_schedule(topi.cuda.schedule_scan),
name=“cumprod.cuda”,
)
return strategy
在每個策略中,定義了編寫的計算和要在add_implementation()中使用的調度。最后,將該策略與python/tvm/relay/op/_transform.py中定義的Relay算子鏈接計算:

cumsum

@_reg.register_compute(“cumsum”)
def compute_cumsum(attrs, inputs, output_type):
“”“Compute definition of cumsum”""
return [topi.cumsum(inputs[0], attrs.axis, attrs.dtype, attrs.exclusive)]

_reg.register_strategy(“cumsum”, strategy.cumsum_strategy)
_reg.register_shape_func(“cumsum”, False, elemwise_shape_func)

cumprod

@_reg.register_compute(“cumprod”)
def compute_cumprod(attrs, inputs, output_type):
“”“Compute definition of cumprod”""
return [topi.cumprod(inputs[0], attrs.axis, attrs.dtype, attrs.exclusive)]

_reg.register_strategy(“cumprod”, strategy.cumprod_strategy)
_reg.register_shape_func(“cumprod”, False, elemwise_shape_func)
shape函數用于確定給定動態shape張量的輸出shape。在這種情況下,告訴TVM輸出shape將與輸入shape相同。
6. 創建Relay調用節點,開放Python hook
現在有一個工作操作,現在只需要通過Relay調用節點正確地調用。這一步只需要編寫一個函數,將參數作為Relay表達式傳遞給算子,將調用節點返回給算子(即,應該放置在Relay AST中的節點,在該節點中,算子將被調用)。
目前不支持調用屬性和類型參數(最后兩個字段),因此使用Op::Get從算子注冊表獲取算子信息,將參數傳遞給調用節點就足夠了,如下所示。在src/relay/op/tensor/transform.cc中:
Expr MakeCumsum(Expr data, Integer axis, DataType dtype, Bool exclusive) {
auto attrs = make_object();
attrs->dtype = dtype;
attrs->axis = axis;
attrs->exclusive = exclusive;
static const Op& op = Op::Get(“cumsum”);
return Call(op, {data}, Attrs(attrs), {});
}

TVM_REGISTER_GLOBAL(“relay.op._make.cumsum”).set_body_typed(MakeCumsum);

Expr MakeCumprod(Expr data, Integer axis, DataType dtype, Bool exclusive) {
auto attrs = make_object();
attrs->dtype = dtype;
attrs->axis = axis;
attrs->exclusive = exclusive;
static const Op& op = Op::Get(“cumprod”);
return Call(op, {data}, Attrs(attrs), {});
}
TVM_REGISTER_GLOBAL(“relay.op._make.cumsum”).set_body_typed(MakeCumprod);
其中TVM_REGISTER_GLOBAL通過relay.op._make.cumsum(…)和relay.op._make.cumsum(…),在Python中開放MakeCumsum和MakeCumprod函數。
7. 包括一個更完整的Python API Hook
通常,Realy中的約定,通過TVM_REGISTER_GLOBAL導出的函數,應該封裝在單獨的Python函數中,而不是直接在Python中調用。對于算子,在python/tvm/relay/op/transform.py中開放了這個更完整的接口。
def cumsum(data, axis=None, dtype=None, exclusive=None):
return _make.cumsum(data, axis, dtype, exclusive)

def cumprod(data, axis=None, dtype=None, exclusive=None):
return _make.cumprod(data, axis, dtype, exclusive)
這些Python包裝器也可能是向算子提供更簡單界面的好機會。例如,concat算子注冊為只使用一個算子,即一個具有要連接的張量的元組,但是Python包裝器將張量作為參數,在生成調用節點前,組合成一個元組:
def concat(*args):
“”"Concatenate the input tensors along the zero axis.

Parameters
----------
args: list of TensorReturns
-------
tensor: The concatenated tensor.
"""
tup = Tuple(list(args))
return _make.concat(tup)
  1. 單元測試!
    一些單元測試示例,可以在tests/python/relay/test_op_level3.py中找到,用于累積總和與乘積運算。
    梯度算子
    梯度算子對于編寫Relay中的可微程序非常重要。雖然Relay的autodiff算法,可以區分一流的語言結構,但算子是不透明的。由于Relay無法查看實現,因此必須提供明確的差異化規則。
    Python和C++都可以編寫梯度算子,但是把例子集中在Python上,因為更常用。
    在Python中添加梯度
    Python梯度算子的集合,可以在Python/tvm/relay/op/_tensor_grad.py中找到。將介紹兩個具有代表性的示例:sigmoid和multiply。
    @register_gradient(“sigmoid”)
    def sigmoid_grad(orig, grad):
    “”“Returns [grad * sigmoid(x) * (1 - sigmoid(x))].”""
    return [grad * orig * (ones_like(orig) - orig)]
    這里的輸入是原始算子orig和要累加的梯度。返回的是一個列表,第i個索引處的元素是算子,相對于算子第i個輸入的導數。通常,梯度將返回一個列表,包含的元素數量與基本算子的輸入數量相同。
    在進一步分析這個定義前,首先應該回顧一下sigmoid函數的導數:
    上面的定義看起來類似于數學定義,但有一個重要的補充,將在下面描述。
    術語orig*(類似于(orig)-orig)直接匹配導數,因為這里的orig是sigmoid函數,但不只是對如何計算這個函數的梯度感興趣。感興趣的是將這個梯度與其它梯度組合起來,這樣就可以在整個程序中累積梯度。這就是梯度術語的意義所在。在表達式gradorig(one_like(orig)-orig)中,乘以grad指定如何使用到目前為止的梯度合成導數。
    現在,考慮乘法,一個稍微有趣的例子:
    @register_gradient(“multiply”)
    def multiply_grad(orig, grad):
    “”“Returns [grad * y, grad * x]”""
    x, y = orig.args
    return [collapse_sum_like(grad * y, x),
    collapse_sum_like(grad * x, y)]
    在本例中,返回的列表中有兩個元素,因為multiply是一個二進制運算符。回想一下,如果
    偏導數是

有一個乘法所需的步驟,對于sigmoid不是必需的,因為乘法具有廣播語義。由于梯度的shape可能與輸入的shape不匹配,使用collapse\u sum\u來獲取梯度*項的內容,使shape與要區分的輸入的shape匹配。
在C++中添加梯度
在C++中添加一個梯度類似于在Python中添加一個,但是用于注冊的接口略有不同。
首先,確保包含src/relay/transforms/pattern_utils.h。提供了用于在中繼AST中創建節點的幫助器函數。然后,類似于Python示例的方式定義梯度:
tvm::Array MultiplyGrad(const Expr& orig_call, const Expr& output_grad) {
const Call& call = orig_call.Downcast();
return { CollapseSumLike(Multiply(output_grad, call.args[1]), call.args[0]),
CollapseSumLike(Multiply(output_grad, call.args[0]), call.args[1]) };
}
在C++中,不能使用Python中的操作符重載,需要進行降維,因此實現更加冗長。即使如此,也可以很容易地驗證這個定義,是否反映了Python中的早期示例。
現在,不需要使用Python裝飾器,需要在基算子的注冊末尾,添加一個對“FPrimalGradient”的set_attr調用,以便注冊梯度。
RELAY_REGISTER_OP(“multiply”)
// …
// Set other attributes
// …
.set_attr(“FPrimalGradient”, MultiplyGrad);

參考鏈接:
https://tvm.apache.org/docs/dev/how_to/relay_add_op.html

總結

以上是生活随笔為你收集整理的如何将算子添加到Relay的全部內容,希望文章能夠幫你解決所遇到的問題。

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

www.色午夜 | 美女视频网站久久 | 天天躁天天操 | 97干com| 中文字幕色网站 | 亚洲精品色视频 | av日韩国产| 午夜精品久久久久久久久久久 | 亚洲经典视频在线观看 | 日韩99热| 日韩大片在线播放 | www激情久久 | 日韩欧美精品一区二区三区经典 | 亚洲精品久久久久中文字幕二区 | 国产在线精品区 | 婷婷在线看 | www.日韩免费 | 黄色一级大片在线免费看产 | 久久视频在线观看免费 | 激情丁香5月| 天堂在线一区二区三区 | 日本护士三级少妇三级999 | www.黄色网.com| 九九影视理伦片 | 国产精品成人一区二区三区吃奶 | 欧美黄污视频 | 91在线观看高清 | 亚洲国内精品视频 | 欧美日韩国产网站 | 欧美孕妇视频 | 亚洲国产一区在线观看 | 在线免费观看视频 | 91国内在线视频 | 最近免费中文字幕mv在线视频3 | 日本精品视频免费观看 | 一区二区视频欧美 | 午夜av影院 | 国产精品999久久久 久产久精国产品 | 国产免费专区 | 国产黄色av影视 | 粉嫩一区二区三区粉嫩91 | 久久欧洲视频 | 久久精美视频 | 国模一区二区三区四区 | 日批视频在线观看免费 | 国内精品久久久久久久久久清纯 | av不卡在线看 | 蜜桃视频成人在线观看 | 成人污视频在线观看 | 亚洲三区在线 | 日日操日日干 | www五月 | 91试看| 精品国产aⅴ一区二区三区 在线直播av | 黄av免费| 婷婷国产一区二区三区 | www.五月婷 | 国产精品美女久久久网av | 欧美伦理一区二区三区 | 一级一片免费观看 | 手机在线看a | 在线国产能看的 | 丁香花在线观看免费完整版视频 | 97天堂| 久草视频在线免费 | 美女av免费| 69视频永久免费观看 | 水蜜桃亚洲一二三四在线 | 欧美一区免费观看 | av片在线看 | 亚洲精品在 | 日韩久久精品一区二区三区 | 伊人永久在线 | 欧美一区二视频在线免费观看 | 在线黄色国产 | 国产999精品久久久久久 | www.亚洲| 四虎永久视频 | 婷婷色狠狠 | 在线播放视频一区 | 日韩欧美在线综合网 | 狠狠干成人综合网 | 伊人日日干| 黄色av一区二区三区 | 国产精品久久一区二区三区, | 国产一级高清 | 色全色在线资源网 | 国产亚洲精品综合一区91 | 99r在线精品 | 精品国产片 | 91视频亚洲 | 久久这里只精品 | 一区二区三区免费在线观看视频 | 亚洲综合激情 | 91综合色 | 久久精品视频在线观看免费 | 97在线观看视频免费 | 亚洲精品国产精品久久99热 | www.狠狠操 | 天天插狠狠干 | 91精品久久久久 | 九九九九九国产 | 91视频免费网址 | 成人av av在线 | 亚洲综合色播 | 久久手机在线视频 | 亚洲免费视频在线观看 | 99精品国产99久久久久久97 | 久久久久色 | 亚洲国产小视频在线观看 | 日韩免费高清 | 国产精品九九九 | 一区二区三区av在线 | 日韩av伦理片 | 亚洲精品一区二区在线观看 | 91爱爱视频| 涩涩爱夜夜爱 | 超碰国产在线观看 | 久久黄色网址 | 欧美在线1| 日韩精品免费在线播放 | 六月丁香激情网 | 夜夜操综合网 | 热99在线视频 | 国产精品久久毛片 | 深爱激情综合网 | 国产小视频免费在线观看 | 日韩精品一区二区三区在线播放 | 久久免费精品国产 | 一区二区三区高清在线 | 在线观看中文字幕dvd播放 | 国产精品成人久久 | 久久成人毛片 | 久久久久久久久久影院 | 中文字幕中文字幕在线中文字幕三区 | 韩国av永久免费 | 日本丶国产丶欧美色综合 | 欧美天天综合 | 欧美福利视频一区 | 日本久久电影 | 成人a大片 | 91精品国产乱码在线观看 | 色婷婷狠狠五月综合天色拍 | 黄色软件视频大全免费下载 | 玖玖在线看 | 激情深爱 | 国产在线a免费观看 | 亚洲欧美精品一区二区 | 国产成人精品在线播放 | 91色九色 | 久久久官网 | 成人av在线直播 | 免费精品在线观看 | 91女神的呻吟细腰翘臀美女 | 一区三区视频 | 久久综合久久综合九色 | 成人免费观看电影 | 精品视频不卡 | 伊人午夜视频 | 粉嫩一区二区三区粉嫩91 | 中文永久免费观看 | 久久久午夜精品福利内容 | 97福利在线 | 天堂va欧美va亚洲va老司机 | 国产在线视频导航 | 国产一区二区在线视频观看 | 国产一级视频 | 蜜臀av夜夜澡人人爽人人桃色 | 久久免费视频1 | 亚洲无吗视频在线 | 超碰在线人人艹 | 天天艹天天爽 | 91av网站在线观看 | 成人性生交视频 | 亚洲国产中文字幕在线观看 | 欧美成年人在线视频 | 中文成人字幕 | 六月婷婷久香在线视频 | 国产原创av片 | 99视频精品视频高清免费 | 深爱开心激情网 | 一区二区高清在线 | 91资源在线免费观看 | 日本中文字幕在线观看 | 日韩在线观看视频一区二区三区 | 99精品乱码国产在线观看 | 亚洲人xxx | 国产精品久久伊人 | 欧美性生活免费看 | 中文av影院| 丁香婷婷综合激情五月色 | 99爱视频在线观看 | 激情五月色播五月 | 国产福利一区二区三区在线观看 | 99在线视频播放 | a级国产毛片 | 久久婷综合 | 久久午夜视频 | 爱色av.com| 国产麻豆果冻传媒在线观看 | 国产午夜精品一区二区三区欧美 | 九九九电影免费看 | 国产精品美女免费视频 | 麻豆视频免费入口 | 国产精品成 | 国内视频在线观看 | 久久这里有 | 91色一区二区三区 | 国产精品成人免费精品自在线观看 | 久久精品五月 | 在线播放国产一区二区三区 | 国产欧美在线一区二区三区 | 久久综合偷偷噜噜噜色 | 精品国产乱码久久久久久三级人 | 蜜臀aⅴ国产精品久久久国产 | 精品国模一区二区三区 | 色综合婷婷 | 中国一级片视频 | 久久伦理电影网 | 免费男女羞羞的视频网站中文字幕 | 波多野结衣电影一区二区三区 | 欧美乱码精品一区二区 | 亚洲欧美偷拍另类 | 69久久99精品久久久久婷婷 | 亚洲欧美日韩精品久久奇米一区 | 麻豆视频国产 | 成人免费网视频 | 六月丁香在线观看 | 日日操夜夜操狠狠操 | 99久久久国产精品美女 | 成人免费视频播放 | 国产免费一区二区三区网站免费 | 黄色1级大片 | 丝袜少妇在线 | 国内成人综合 | 奇米四色影狠狠爱7777 | 免费黄色小网站 | 亚洲一区视频免费观看 | 99久久精品国产欧美主题曲 | 一区中文字幕在线观看 | 99精品欧美一区二区蜜桃免费 | 国产精品手机视频 | 日操操| 亚洲欧美怡红院 | 欧美日韩xxx | 在线看的毛片 | 国产高清视频在线播放 | 丁香花中文字幕 | 亚洲电影久久久 | 日韩在线中文字幕视频 | 亚洲午夜久久久久 | aaa日本高清在线播放免费观看 | 成人av在线观 | 欧美精品xxx | 911精品美国片911久久久 | 国产黑丝一区二区三区 | 99精品在线看 | 亚洲一区二区三区毛片 | 免费看日韩片 | 国产九九热视频 | 97视频免费观看 | 欧美在线资源 | 国产麻豆精品一区 | 精品一区二区在线免费观看 | 一区三区在线欧 | 久草精品网 | 国产精品欧美久久久久无广告 | 免费看亚洲毛片 | 中文字幕久久久精品 | 成人全视频免费观看在线看 | 免费成人在线网站 | 91爱爱中文字幕 | 日韩欧美网址 | 亚洲va欧美va人人爽 | 亚洲激情精品 | 日本丰满少妇免费一区 | 天堂中文在线视频 | 最近中文字幕第一页 | 久草视频在线观 | 天天操天天谢 | 色欲综合视频天天天 | 黄色软件大全网站 | 免费观看成人 | 激情网站五月天 | 夜色成人网 | 国产精品99久久久久久小说 | 亚洲精品自拍视频在线观看 | 91成人免费看片 | 中文字幕国内精品 | 久久久九九 | 亚洲另类人人澡 | 国产免费不卡av | 超碰人人舔 | 欧美日韩亚洲在线 | 久久久99精品免费观看乱色 | 正在播放国产一区 | 亚洲精品免费在线播放 | 国产精品爽爽爽 | 日韩精品一区二区免费视频 | 最新中文字幕在线播放 | 99精品在线播放 | a在线免费观看视频 | 99精品欧美一区二区三区黑人哦 | 国产精品一区二区久久久久 | 亚洲传媒在线 | 在线亚洲成人 | 人人射网站| 成人影视免费看 | 一区二区三区四区精品视频 | 91成人精品一区在线播放 | 欧美精品久久久久久久久久 | 成人在线超碰 | 97电影手机版 | 欧美黄在线 | 一级一片免费视频 | 国产91对白在线 | 狠狠色丁香久久婷婷综合五月 | 日本中出在线观看 | 日韩欧美国产免费播放 | 天天草视频 | 国产亚洲久久 | 日韩欧美大片免费观看 | 亚洲黄色一级大片 | av永久网址 | 国产一区二区综合 | 国产成人黄色网址 | 色www.| 一级精品视频在线观看宜春院 | 国产精品 视频 | 精品福利视频在线 | 一区二区三区中文字幕在线观看 | 91黄色在线视频 | 园产精品久久久久久久7电影 | 97精品在线| 久久这里精品视频 | 97精产国品一二三产区在线 | 九草在线视频 | 天堂va在线高清一区 | 欧美一二三专区 | 精品亚洲va在线va天堂资源站 | 一区二区观看 | 精品久久一区二区 | 视频一区在线播放 | 日本激情中文字幕 | 日本性高潮视频 | 久久免费在线视频 | 国产大陆亚洲精品国产 | 日韩av黄| 成人av资源 | 国产精品久久久久久一区二区三区 | 伊人狠狠色 | 91精品麻豆| 亚洲精品视频网站在线观看 | 精品久久久久久久久久久久久 | 丰满少妇对白在线偷拍 | 在线观看91久久久久久 | 99久久这里只有精品 | 久久丁香网 | 久久国产精品久久久久 | 最近中文国产在线视频 | www天天干 | 日韩电影一区二区在线 | 四虎国产精品永久在线国在线 | 免费国产在线视频 | 欧美精品久久久久久久久免 | 中文字幕 在线看 | 一区二区三区中文字幕在线观看 | 国产成人黄色在线 | 欧美在线视频精品 | 人人爽人人av | 91av播放 | 97热在线观看 | 国产黄免费在线观看 | 十八岁以下禁止观看的1000个网站 | 国产麻豆剧果冻传媒视频播放量 | 超碰在线91 | 久热香蕉视频 | av中文字幕在线看 | 久久人人爽爽人人爽人人片av | 黄色1级大片 | 精品亚洲男同gayvideo网站 | 国产一线天在线观看 | 蜜桃视频成人在线观看 | 久久精品看片 | 国产成人不卡 | 久久久国产精品久久久 | 国产一级二级视频 | 免费看v片网站 | 国产精品大片在线观看 | 久久久国产精品网站 | 日本大尺码专区mv | 精品一区欧美 | 最近中文字幕免费大全 | 日本久久成人中文字幕电影 | 欧美激情va永久在线播放 | 国产精品尤物 | 国产精品黄色 | 激情网站| 激情欧美xxxx | 91污在线观看| 色婷婷成人网 | 911国产在线观看 | 成人免费视频视频在线观看 免费 | 欧美成人xxx | 欧美91视频 | 欧美午夜精品久久久久久孕妇 | 色婷婷综合在线 | 欧洲精品在线视频 | 国产日产精品一区二区三区四区的观看方式 | 91色国产 | 国产黄色精品 | 亚洲天堂首页 | 国产成人福利片 | 欧美日韩中文在线视频 | 国产黄色一级片 | 欧美日韩高清一区二区 国产亚洲免费看 | 中文字幕亚洲精品在线观看 | 亚洲成人av电影 | 九九九视频精品 | 久久久久在线 | 欧美日韩在线观看一区二区三区 | 日韩激情视频在线 | 成人福利在线观看 | 成人在线播放av | 在线观看爱爱视频 | 五月天色站 | 激情综合网五月 | 网址你懂的在线观看 | 日本性生活免费看 | 97精品国产97久久久久久久久久久久 | 干亚洲少妇 | 丝袜+亚洲+另类+欧美+变态 | 99色精品视频 | 国产精品中文字幕在线 | 欧美小视频在线 | 亚洲春色成人 | 久99久视频 | 99c视频高清免费观看 | 国产精品一区二区 91 | 欧美日韩国产色综合一二三四 | 亚洲精品字幕在线 | 久久看视频 | 嫩草伊人久久精品少妇av | 91在线免费观看国产 | 九九热av| 亚洲成人av影片 | 美女视频网 | 夜色资源站wwwcom | 国产精品一区免费在线观看 | 久久超碰网 | 午夜视频在线观看一区二区 | a级成人毛片 | 狠狠操天天射 | 欧美一二区视频 | 五月天天色 | 欧美国产日韩在线观看 | 欧美日韩一区二区在线观看 | 国产剧情一区在线 | 国产成人精品国内自产拍免费看 | 国产直播av | 日韩美av在线 | 丁香5月婷婷 | 国产亚洲婷婷免费 | 在线视频18在线视频4k | 丁香综合 | 四虎国产精 | 亚洲激情 在线 | 精品国产自在精品国产精野外直播 | 91久久国产自产拍夜夜嗨 | 51久久成人国产精品麻豆 | 韩国三级一区 | 日韩在线短视频 | 日本最新一区二区三区 | 日韩精品不卡在线 | 亚洲一区精品人人爽人人躁 | 中文字幕精品三级久久久 | 在线观看日韩精品视频 | 国产成人精品久久二区二区 | 一区二区三区四区精品视频 | 中文字幕美女免费在线 | 中文字幕在 | 久久久91精品国产一区二区精品 | 久久久久久久99精品免费观看 | 久久久久国产精品一区 | 久久久av免费 | www黄色com| 国产 在线 高清 精品 | 五月天九九 | 国产极品尤物在线 | 久久伊人热 | 又长又大又黑又粗欧美 | 亚洲成人av在线播放 | 日本精品视频网站 | 免费观看黄色av | 伊人网综合在线观看 | 99精品视频精品精品视频 | 久久久久女教师免费一区 | 久久色在线播放 | 久草视频99| 欧美一级片在线 | 美女免费视频一区 | 久草在线久 | 日本精品视频网站 | 久久午夜电影院 | 亚洲最新在线视频 | 美女视频永久黄网站免费观看国产 | 国产一级a毛片视频爆浆 | 精品在线免费观看 | 丁香午夜婷婷 | 六月天综合网 | 亚洲经典在线 | 色视频在线观看 | 久久国产视频网 | 91在线视频免费观看 | 欧美a在线免费观看 | 婷婷激情网站 | 国产在线观看污片 | 久久精品视频国产 | 国产成人精品999 | 亚洲欧美成aⅴ人在线观看 四虎在线观看 | 日韩二区在线播放 | 天天插狠狠干 | 天天操天天操天天操天天 | 久久精品99国产精品亚洲最刺激 | 欧美激情精品久久久久久 | 午夜精品一区二区三区在线视频 | 久久66热这里只有精品 | 最近中文字幕大全 | 亚洲黄色大片 | 中文字幕在线播放日韩 | 97在线观看免费 | 国产精品9区 | 久草视频免费在线观看 | 色噜噜日韩精品欧美一区二区 | 国产精品高清免费在线观看 | 中文字幕av免费观看 | 天天综合网 天天 | 狠狠色噜噜狠狠狠狠 | 久青草国产在线 | 狠狠色狠狠色综合日日92 | www.五月天| 成人av网站在线播放 | a在线视频v视频 | 成人午夜在线观看 | 色综合色综合色综合 | 国产在线精品区 | 青春草免费视频 | 久久久久久久久综合 | 91精品一区二区三区久久久久久 | 国产高清在线观看 | 国产视频亚洲 | 国产手机视频精品 | 久久免费精品视频 | 亚洲精品1234区 | 中文字幕亚洲国产 | 97在线视频免费观看 | 亚洲女同ⅹxx女同tv | 色综合久久综合网 | 一区二区三区在线电影 | 亚洲电影图片小说 | av网站免费线看精品 | 国产破处在线播放 | 人人模人人爽 | 天天操天天干天天摸 | 国产精品视频免费观看 | 国产精品区二区三区日本 | 国产美女在线精品免费观看 | 国产高清久久久久 | 中文字幕资源网 | 天天操天天摸天天射 | 久久精品亚洲精品国产欧美 | 久久久久久久久久久国产精品 | 手机av电影在线 | 亚洲精品免费在线 | 日本精品久久久久 | 久久久久区| 国产一区免费在线观看 | 中文字幕免费久久 | 国产午夜精品久久久久久久久久 | 五月天六月婷 | 在线不卡中文字幕播放 | 91精品1区 | 亚洲网站在线 | 日韩精品在线免费播放 | 亚洲人人av | av在线a| 三级动态视频在线观看 | 久久久精品国产一区二区电影四季 | 激情中文在线 | 波多野结衣日韩 | 国产精品精品国产婷婷这里av | 在线亚洲播放 | 欧美福利片在线观看 | 日韩一区正在播放 | 一本一本久久a久久精品综合小说 | 国产黄a三级三级 | 久久久久久久久久国产精品 | 毛片基地黄久久久久久天堂 | 亚洲高清在线精品 | 亚洲成年人免费网站 | 成人av在线电影 | 成年人免费看片 | 96超碰在线| 999色视频| 久草免费在线观看视频 | 91最新网址在线观看 | 免费看精品久久片 | 一区二区久久 | 91色视频 | 99精品国产一区二区 | 久久久麻豆精品一区二区 | 中文字幕在线专区 | 亚洲精品国产精品国自 | 人人操日日干 | 亚洲国产资源 | 在线观看免费高清视频大全追剧 | 国产一区二区三区四区大秀 | 久久久久久免费毛片精品 | 最新在线你懂的 | 91精品中文字幕 | 欧美91av| 婷婷激情av| 久久精品一二三区 | 97操操| 亚洲va在线va天堂va偷拍 | 国产精成人品免费观看 | 视频成人永久免费视频 | 国产日产精品久久久久快鸭 | 午夜在线免费观看视频 | 色av男人的天堂免费在线 | 欧美日韩国产在线精品 | av导航福利 | 349k.cc看片app | 九九免费观看全部免费视频 | 久久蜜臀一区二区三区av | 国产美女在线观看 | 色就是色综合 | 午夜精品视频免费在线观看 | 狠狠做深爱婷婷综合一区 | 成 人 a v天堂 | 亚洲区二区 | 午夜婷婷在线观看 | 午夜国产成人 | 欧美在线视频一区二区三区 | 国产精品免费观看在线 | 亚洲国产资源 | 中文字幕在线看 | 久草在线观| 中文字幕二区在线观看 | 成人av一区二区兰花在线播放 | 久久黄页 | 麻豆免费在线视频 | 久久久久久黄色 | 91色亚洲| av解说在线观看 | 九九色网 | 国产精品一区二区三区四 | 精品久久久久久久 | 97在线成人 | 美女免费电影 | 综合色中色 | 丝袜美腿亚洲 | 黄视频色网站 | 超碰公开在线 | av在线电影播放 | 久久久久免费精品视频 | 91亚洲永久精品 | 午夜久久电影网 | 天天操偷偷干 | 97人人模人人爽人人喊中文字 | 久久久久久久久久久久99 | 中文字幕一区av | 日日夜夜狠狠操 | 99精品热视频只有精品10 | 黄色av网站在线免费观看 | 在线看片成人 | 在线观看日本高清mv视频 | 久久久久电影 | 91精品久| 久草免费在线观看视频 | 黄色大全免费网站 | 国产区在线看 | 国产精品va在线 | 亚洲欧美日本国产 | 91视频高清免费 | 久久国内免费视频 | 久久精品永久免费 | 中文字幕亚洲在线观看 | 81国产精品久久久久久久久久 | 一区二区三区不卡在线 | 国产午夜不卡 | 亚洲影院天堂 | 中文字幕日韩国产 | 超碰在线日韩 | av网址aaa | 久草在线视频精品 | 亚洲深爱激情 | 日韩色中色| 亚洲第一香蕉视频 | 91精品视频导航 | 欧美日韩在线电影 | 中文字字幕在线 | 欧美疯狂性受xxxxx另类 | 国产精品久久久免费看 | 国产欧美精品在线观看 | 亚洲免费av在线播放 | 国产精品破处视频 | 久草在线中文视频 | 久久精品视频3 | 欧美一区日韩精品 | 日韩在线资源 | 色黄视频免费观看 | 国内毛片毛片 | 国产一区在线观看免费 | 欧美精品久久久久久久免费 | 九九视频这里只有精品 | 成人精品国产免费网站 | 五月婷婷丁香在线观看 | 婷婷激情欧美 | 97综合视频| 日韩一区二区三区免费电影 | 国产精品九九久久久久久久 | 九九久久久久久久久激情 | 亚洲男男gaygayxxxgv | 国产精品18久久久久久久久久久久 | 成年人免费在线观看 | 91成人看片 | 91人人在线 | 97av视频| 91av中文| 天天草天天插 | 99久久精品免费看国产麻豆 | 国产91精品久久久久久 | 久久电影色 | 天堂av在线免费观看 | 综合网中文字幕 | 免费男女羞羞的视频网站中文字幕 | 91成人在线免费观看 | 夜夜躁狠狠燥 | 日韩精品不卡 | 91精品国产成人 | 欧美精品三级 | 国产精品国产三级在线专区 | 日日夜夜天天综合 | 高清在线一区 | 美女免费视频一区二区 | 天天综合日日夜夜 | 91精品国产91久久久久久三级 | av资源网在线播放 | 综合久久久久久久 | 日韩欧美有码在线 | 亚洲香蕉在线观看 | 99se视频在线观看 | 区一区二在线 | 456免费视频| 亚洲成人精品影院 | 成人观看| 97成人资源 | 黄色成人免费电影 | 超薄丝袜一二三区 | 99久久日韩精品免费热麻豆美女 | 激情婷婷六月 | 超碰国产在线播放 | 国产精品免费在线视频 | 操高跟美女 | 日韩欧美99 | 日韩精品中文字幕久久臀 | 高清视频一区二区三区 | 一区二区三区在线视频观看58 | 国产黄色观看 | 黄色网址a | 国产在线视频在线观看 | 国产在线a视频 | 久草电影免费在线观看 | 久艹在线播放 | 免费网站在线 | 一级a毛片高清视频 | 中文字幕超清在线免费 | 伊人色综合网 | 国产精品麻豆视频 | 91插插视频 | 五月天综合激情 | 免费在线观看午夜视频 | 91大神在线看| 1区2区3区在线观看 三级动图 | 欧美日韩国产区 | 国产精品久久久久久久午夜 | 夜夜澡人模人人添人人看 | 2023国产精品自产拍在线观看 | 欧美久久久久久久 | 日韩一级电影在线 | 欧美一级免费黄色片 | 五月天狠狠操 | 日韩羞羞| 国产无遮挡猛进猛出免费软件 | 国产一级高清 | 狠狠色丁香婷婷综合久久片 | 国产最新在线观看 | 国产精品一区二区三区免费视频 | 99视频久久 | 国产精品久久久久久久久婷婷 | 婷婷色综合色 | 天天操狠狠操夜夜操 | 国产字幕av | 亚洲成a人片在线观看网站口工 | 精品9999| 精品久久久久久久久久 | 久久九九免费视频 | 精品日韩视频 | 午夜精品99久久免费 | 又爽又黄又刺激的视频 | 免费成人在线电影 | 五月色丁香 | 麻豆视频免费入口 | 国产精品视频免费在线观看 | 日本丰满少妇免费一区 | 中文字幕成人av | 五月综合色婷婷 | 天天摸天天弄 | 狠狠操操操 | 尤物九九久久国产精品的分类 | 免费黄色a网站 | 久久久亚洲精华液 | 久久久久久激情 | 国产麻豆果冻传媒在线观看 | 波多野结衣精品 | 久久99精品国产麻豆宅宅 | 亚洲视频精选 | 日日干网址 | 丁香色婷婷 | 日韩免费不卡av | 成人午夜黄色影院 | 国产中文字幕视频在线 | 国产中文欧美日韩在线 | 久久精品在线免费观看 | www.夜色321.com | 久久久久久久久久久电影 | 中文字幕黄色网址 | 久草在线播放视频 | 中文免费观看 | 欧美91av | 久久免费电影网 | 久草电影在线观看 | 韩日成人av | 欧美 高跟鞋交 xxxxhd | 成人黄色在线 | 99热99 | 成年人在线视频观看 | 91手机电视 | 夜夜干夜夜 | 五月亚洲综合 | 六月丁香色婷婷 | 中国一 片免费观看 | 亚洲综合最新在线 | 久久久视屏 | 欧美日bb | 91系列在线| 欧美日韩久 | 国语自产偷拍精品视频偷 | 在线视频在线观看 | 国产福利一区二区三区在线观看 | 干亚洲少妇| 九九免费观看全部免费视频 | 日韩一区二区三区不卡 | 超碰在线观看99 | 中文字幕人成人 | 成人sm另类专区 | 欧美日韩aa | 国产区精品区 | 99视频精品 | 午夜丁香视频在线观看 | 日韩精品欧美专区 | 人人爱人人爽 | 精品国产99国产精品 | 狠狠狠色丁香婷婷综合久久五月 | 香蕉视频亚洲 | 国产中文视 | 亚洲伦理一区 | 免费av电影网站 | 国产五码一区 | 国产在线精品区 | 五月激情五月激情 | 在线免费黄色av | 天天草天天草 | 黄色影院在线免费观看 | 丁香久久 | 午夜影院一级 | 91成人看片 | 九色91av| 在线视频18在线视频4k | 亚洲四虎在线 | av中文字幕在线看 | 综合久久综合久久 | 欧美天堂久久 | 精品女同一区二区三区在线观看 | 国产精品69久久久久 | 欧美日一级片 | 超碰在线公开免费 | 国产成人一区三区 | 国产一级免费电影 | 天天色天天爱天天射综合 | 91精品国产三级a在线观看 | 在线观看免费福利 | 久久综合久久88 | 一区二区三区三区在线 | 91久久奴性调教 | 精品不卡av | 西西4444www大胆艺术 | 四月婷婷在线观看 | 日韩电影在线看 | 亚洲精品综合在线 | 黄色影院在线播放 | 五月婷婷丁香激情 | 免费看成人 | 成人蜜桃网 | 中文字幕av最新更新 | 婷婷精品在线视频 | 国产在线视频一区二区三区 | 国产精品视频地址 | 国产精品美女久久久免费 | 九九久久国产 | 精品欧美乱码久久久久久 | 日本爱爱免费 | 国产一区二区免费在线观看 | 国产美女视频黄a视频免费 久久综合九色欧美综合狠狠 | 人人插人人搞 | 在线观看的黄色 | 福利精品在线 | 久久久免费观看视频 | 97在线精品视频 | 婷婷午夜天 | 国产中文自拍 | 免费视频a | 日韩日韩日韩日韩 | 日韩字幕在线观看 | 国产尤物在线观看 | 97在线播放视频 | 婷婷中文字幕综合 | 亚洲国产精品99久久久久久久久 | 亚洲高清色综合 | 欧美性色黄大片在线观看 | 婷婷在线不卡 | 中文字幕国产在线 | 丁香久久久 | 久久综合久久鬼 | 婷婷九月丁香 | 色天天| 亚洲1级片 | 久久午夜免费视频 | 国产精品永久久久久久久www | 婷婷成人亚洲综合国产xv88 | 九九九免费视频 | 91精品国产电影 | 免费国产视频 | 黄色av大片 | 亚洲a资源 | 日韩激情网 | 成人黄色片在线播放 | 日韩天天综合 | 在线免费国产视频 | 日韩四虎 | 一区二区三区免费在线观看视频 | 国产一区免费看 | 久久国产欧美日韩精品 | 五月激情丁香图片 | 菠萝菠萝蜜在线播放 | 最近中文字幕视频网 | 九九九九九九精品任你躁 | 久久成人国产精品免费软件 | 天天操比 | 99re久久资源最新地址 | 玖玖精品在线 | 西西人体4444www高清视频 | 热99在线| 久久久91精品国产一区二区精品 | 国产黄色av | 欧美性生活免费看 | 欧美视屏一区二区 | 久久精品电影网 | 在线观看激情av | 91在线免费视频观看 | 久久新| 看片的网址 | 亚洲免费av在线播放 | 亚洲精品中文在线观看 | 国产专区精品 | 亚洲精品一区二区精华 | 美女福利视频 | 色悠悠久久综合 | 亚洲永久精品国产 | www.黄色片网站 | 天天色天天艹 | 狠狠色丁香婷婷综合视频 | 日韩中文在线电影 | 免费观看不卡av | 成人影视免费 | 国产成人精品久久亚洲高清不卡 | 国产日韩中文字幕在线 |