国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

在OneFlow實現(xiàn)數(shù)據(jù)類型自動提升

共 6287字,需瀏覽 13分鐘

 ·

2021-10-09 20:59

問題引入

我們先簡單看下在pytorch下的這幾段代碼,讀者可以猜下最后輸出的類型是什么:

x_tensor?=?torch.ones((3,?),?dtype=torch.int8)
y1_tensor?=?torch.tensor(1,?dtype=torch.float64)
out1?=?torch.mul(x_tensor,?y1_tensor)

y2_tensor?=?torch.tensor(1,?dtype=torch.int64)
out2?=?torch.mul(x_tensor,?y2_tensor)

out3?=?torch.mul(x_tensor,?1.0)

out4?=?torch.mul(x_tensor,?2^63-1(the?max?value?of?int64))

接下來揭曉答案:

out1.dtype:?torch.float64
out2.dtype:?torch.int8
out3.dtype:?torch.float32
out4.dtype:?torch.int8

可以觀察到同樣是multiply運算,有些結果的數(shù)據(jù)類型被提升到更高的一級,有些并沒有被提升,還維持著int8類型。這其實是一種類型提升系統(tǒng),系統(tǒng)內會自定義一些類型提升的規(guī)則,根據(jù)輸入的數(shù)據(jù)類型來推導最終結果的數(shù)據(jù)類型。

Python Array API標準

參考鏈接:https://data-apis.org/array-api/latest/API_specification/type_promotion.html

在這里我們可以了解到Python Array的類型提升規(guī)則

類型提升

從上圖可以看到:

  • 不同數(shù)據(jù)類型的提升遵循這個連接的規(guī)則
  • 虛線表示python標量在溢出的時候未定義
  • bool int float之間沒有連線,表示這種混合類型的提升未定義

關于第一條,我們可以看int8uint8,兩者最終指向了int16,表示兩者運算后最終類型提升到了int16

而根據(jù)這一個規(guī)則,我們可以列出一個類型提升表格(這個表格很重要,后續(xù)看Pytorch源碼也會用到)

unsigned int系列和signed int系列為例,列出的表格為:

更多類型提升規(guī)則表格可參考前面提到的鏈接

橫坐標和縱坐標分別代表輸入的數(shù)據(jù)類型,表格的值代表類型提升后的數(shù)據(jù)類型,其中:

  • i1 : 8-bit signed integer (i.e., int8 )
  • i2 : 16-bit signed integer (i.e., int16 )
  • i4 : 32-bit signed integer (i.e., int32 )
  • i8 : 64-bit signed integer (i.e., int64 )

同理于unsigned int

Python Array 和 Scalar 的類型提升

上述這些都是array與array之間運算的類型提升規(guī)則,而array與scalar(就是單獨一個int,float數(shù)值)的類型提升規(guī)則則不一樣。

  • 如果兩者同屬于一個數(shù)據(jù)類型系列(比如都是int系列,包含int8, int32, int64),則最終數(shù)據(jù)類型遵循數(shù)組的數(shù)據(jù)類型
  • 如果兩者同不屬于一個數(shù)據(jù)類型系列(比如一個是int32,一個是float),則進行類型提升

我們可以看下簡單的兩個例子:

x_tensor?=?torch.ones((3,?),?dtype=torch.int16)
out1?=?x_tensor?+?2?#?out.dtype?=?torch.int16
out2?=?x_tensor?+?2.0?#?out.dtype?=?torch.float32

需要注意的是,Array與Scalar的行為會和Array與0d Array的行為保持一致。

我們可以再測試前面兩個例子,不同之處是我們將scalar改成一個0d Array

x_tensor?=?torch.ones((3,?),?dtype=torch.int16)
y1_tensor?=?torch.tensor(2)
y2_tensor?=?torch.tensor(2.0)

out1?=?x_tensor?+?y1_tensor?#?out.dtype?=?torch.int16
out2?=?x_tensor?+?y2_tensor?#?out.dtype?=?torch.float32

關于與Scalar運算的行為,Pytorch是和Python Array API標準一致的,但是Numpy則不同,他會根據(jù)scalar的數(shù)據(jù)范圍做一個合理的類型提升

import?numpy?as?np

x?=?np.ones((3,?3),?dtype=np.int32)
out?=?x?+?(2**31-1)?#?dtype:?np.int32
out?=?x?+?(2**31)?#?dtype:?np.int64

我個人更傾向于在類型提升中,Scalar是單獨一種行為,而Scalar Tensor和Tensor的行為一致

其他情況

除了前面提到的規(guī)則,Pytorch還存在以下兩種情況:

  1. 要求兩個輸入的數(shù)據(jù)類型完全一致,如torch.dot
RuntimeError:?dot?:?expected?both?vectors?to?have?same?dtype,?but?found?Short?and?Float
  1. 輸入存在一個最低數(shù)據(jù)類型,比如torch.sum,傳任意int系列數(shù)據(jù)類型,最終輸出結果均為torch.int64

以上就簡單介紹了Pytorch的類型提升規(guī)則,還想要更多的例子可以參考官方文檔:https://pytorch.org/docs/master/tensor_attributes.html#torch.torch.dtype

Pytorch是怎么做類型提升的?

實際運算的Kernel,輸入和輸出的數(shù)據(jù)類型都是相同的模板參數(shù),不存在特化一個輸入為int32,輸出為float32或其他類型的函數(shù)。

因此Pytorch內部會先推斷出一個合理的dtype,然后插入一個to這個op,將輸入tensor進行類型提升,再進入到Kernel進行實際的運算。下面我們會根據(jù)Pytorch的源碼進行講解:

涉及到的代碼:https://github.com/pytorch/pytorch/blob/master/c10/core/ScalarType.h

https://github.com/pytorch/pytorch/blob/master/aten/src/ATen/native/Activation.cpp

https://github.com/pytorch/pytorch/blob/master/aten/src/ATen/TensorIterator.cpp

https://github.com/pytorch/pytorch/blob/master/aten/src/ATen/native/TypeProperties.cpp

ScalarType.h

在這個頭文件里定義了相關的數(shù)據(jù)類型,并且定義了一個類型提升的二維矩陣,這樣我們就可以輸入兩個數(shù)據(jù)類型,根據(jù)索引拿到提升后的數(shù)據(jù)類型。

類型提升矩陣

Activation.cpp

https://github.com/pytorch/pytorch/blob/master/aten/src/ATen/native/Activation.cpp#L24 我們以其中一個激活函數(shù)threshold為例子

TORCH_META_FUNC(threshold)(const?Tensor&?self,?const?Scalar&?threshold,?const?Scalar&?value)?{
??const?Tensor&?result?=?maybe_get_output();
??build(TensorIteratorConfig()
????...
????.promote_inputs_to_common_dtype(true)
}

這里調用了一個build函數(shù),函數(shù)接受一個TensorIteratorConfig,這個Config類是用于配制各種屬性,可以看到這里調用promote_inputs_to_common_dtype并設為true。

TensorIterator.cpp

build函數(shù)定義在:

https://github.com/pytorch/pytorch/blob/master/aten/src/ATen/TensorIterator.cpp#L1321

在1340行,build函數(shù)內部調用了compute_type函數(shù)

...
compute_types(config);
...

而該函數(shù)在260行開始,進行一系列類型推導

其中TensorIterator是一個容器類(Numpy里也有一個類似的容器NpyIter),用于存儲輸出,輸入tensor,里面用了多個for循環(huán)來推導得到一個common_dtype

并在最后進行條件判斷:promote_inputs_to_common_dtype_為true,當前Tensor不是輸出Tensor,且輸入的dtype不等于推導得到的common_dtype,則做一個類型提升:

??????//?Promotes?inputs?by?creating?temporaries?of?the?correct?dtype
??????if?(config.promote_inputs_to_common_dtype_?&&?!op.is_output?&&?op.current_dtype?!=?common_dtype_)?{
????????op.original_tensor?=?op.tensor;
????????op.tensor?=?c10::MaybeOwned::owned(op.tensor->to(common_dtype_));
????????op.current_dtype?=?common_dtype_;
????????op.target_dtype?=?common_dtype_;
??????}

OneFlow的做法

相關PR:https://github.com/Oneflow-Inc/oneflow/pull/6380

OneFlow則將類型提升的邏輯放在c++中functional前端部分,類似的我們設計了一個TensorProcessor類,接口設計如下:

class?TensorProcessor?final?{
?public:
??TensorProcessor()
??????:?common_dtype_(DType::InvalidDataType()),?promote_inputs_to_common_dtype_(false){};
??TensorProcessor&?AddInputs(const?TensorTuple&?init_list);
??TensorProcessor&?AddInputs(const?TensorTuple&?init_list,?Symbol?tensor_lowest_dtype);

??Maybe<void>?Apply();
??TensorProcessor&?PromoteInputsToCommonDtype(bool?is_promote);
??Maybe?GetInputs()?{?return?tensor_tuple_;?};

?private:
??TensorTuple?tensor_tuple_;
??Symbol?common_dtype_;
??std::vector>?inputs_lowest_dtype_vec_;

??bool?promote_inputs_to_common_dtype_;
};

以二元操作Functor基類為例,在實際調用的時候,我們可以這樣:

class?BinaryFunctor{
?public:
??Maybe?operator()(const?std::shared_ptr&?x,
???????????????????????????const?std::shared_ptr&?y)
?const?
{
????TensorProcessor?tensor_processor;
????JUST(tensor_processor.PromoteInputsToCommonDtype(true).AddInputs({x,?y}).Apply());
????TensorTuple?input_tuple?=?JUST(tensor_processor.GetInputs());
????return?OpInterpUtil::Dispatch(*op_,?input_tuple);
??...
??}
??...
};?
  • PromoteInputsToCommonDtype 用于設置相關屬性
  • AddInputs函數(shù)將需要參與類型提升的Tensor添加到容器中
  • Apply函數(shù)執(zhí)行實際的類型提升等邏輯

tensor_processor.cpp還有其他幾個函數(shù),這里簡單介紹下功能:

  • CheckHasDifferentInputDType 遍歷輸入Tensor,檢查輸入Tensor是否有不同的dtype
  • ComputeCommonDType 根據(jù)輸入dtype推導一個合理的提升過的dtype
  • CastToSameType 給輸入Tensor插入一個Cast操作
Maybe<void>?CastToSameType(TensorTuple&?tensor_tuple,?const?Symbol&?common_dtype)?{
??for?(auto&?tensor_ptr?:?tensor_tuple)?{
????if?(tensor_ptr->dtype()?!=?common_dtype)?{
??????tensor_ptr?=?JUST(functional::Cast(tensor_ptr,?common_dtype));
????}
??}
??return?Maybe<void>::Ok();
}

Apply函數(shù)邏輯如下:

Maybe<void>?TensorProcessor::Apply()?{
??if?(promote_inputs_to_common_dtype_)?{
????bool?has_different_input_dtype?=?CheckHasDifferentInputDType(tensor_tuple_);
????if?(has_different_input_dtype)?{
??????common_dtype_?=?ComputeCommonDType(tensor_tuple_);
??????JUST(CastToSameType(tensor_tuple_,?common_dtype_));
????}
??}?else?{
????for?(int?i?=?0;?i???????//?Cast?all?the?inputs?to?it's?attribute?`lowest_dtype`?if?the?input?tensor?dtype?is?lower
??????//?than?attribute?`lowest_dtype`.
??????Symbol?base_dtype?=?inputs_lowest_dtype_vec_.at(i);
??????if?(base_dtype->data_type()
??????????&&?DType::priority_order[base_dtype->data_type()]
?????????????????>?DType::priority_order[tensor_tuple_.at(i)->dtype()->data_type()])?{
????????tensor_tuple_.at(i)?=?JUST(one::functional::Cast(tensor_tuple_.at(i),?base_dtype));
??????}
????}
??}
??return?Maybe<void>::Ok();
}

if內執(zhí)行的是類型提升,而else內邏輯則是對應前面提到的其他情況中的第二條,將Tensor類型提升到設定好的一個最低數(shù)據(jù)類型。還是sum算子,我們設定最低數(shù)據(jù)類型為int64是這么做的:

class?ReduceSumFunctor{
public:?
??Maybe?operator()(const?std::shared_ptr&?x,?const?std::vector<int32_t>&?axis,
???????????????????????????const?bool&?keepdims)
?const?
{
????...
????TensorProcessor?tensor_processor;
????JUST(tensor_processor.AddInputs({x},?/*lowest_dtype=*/DType::Int64()).Apply());
????TensorTuple?input_tuple?=?JUST(tensor_processor.GetInputs());
??}
??...
};?

總結

類型提升是一個我們不經(jīng)意間會使用的一個操作,如果沒有正確處理輸出的數(shù)據(jù)類型,則可能導致結果溢出,出現(xiàn)錯誤的結果。看似很簡單,但實際調研+推敲細節(jié)也搞了兩三周,最后感謝同事在我完成這個功能的期間提供的許多幫助!


點擊下方原文鏈接直達OneFlow倉庫,歡迎關注。

瀏覽 52
點贊
評論
收藏
分享

手機掃一掃分享

分享
舉報
評論
圖片
表情
推薦
點贊
評論
收藏
分享

手機掃一掃分享

分享
舉報

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 天天爽日日澡AAAA片| 操逼免费视频网站| 欧美A片免费观看| 操你啦无码日韩| 99久久久99久久91熟女| a视频在线免费观看| 亚洲青青草| 国产精品93333333| 成人亚洲AV| 亚洲中文字幕2019| 亚洲成人不卡| 91视频网站免费观看| AV电影一区| 六月综合激情| 久久精品视频播放| 韩国一区二区三区在线观看| 青草午夜| 美日韩一区二区| 成人网肏逼视频| 五月丁香六月激情| 四虎精品一区二区三区| 亚洲午夜福利在线观看| EEUSS| 成人色色网| 国产精品黄色视频| 国产精品18禁| 国产精品免费观看视频| 18禁网站禁片免费观看| 草B视频| 天堂网在线观看| h片在线免费观看视频| 欧美日韩一区二区三区四区| 天天狠狠操| 99久久国产热无码精品免费| 人操人碰| 人人操人人操人人操人人操| 在线观看av资源| 一本道精品在线| 国产在线精品自拍| 人人摸人人操人人爱| www.91超碰在线| 日本www视频| 草碰在线视频| 欧美成人精品一级| 肉色超薄丝袜脚交一区二区| 亚洲综合成人在线| 天天日综合网| 色97| 福利在线看| 无码国产99精品久久久久网站| 婷婷五月亚洲精品AAA片在| 日韩欧美a片| 欧美日韩一级黄片| 国产成人三级片在线观看| 影音先锋婷婷| 欧美一区二区三区成人| 国产福利在线导航| 狼友在线播放| 在线观看AV网站| 色婷久久| 国产成人777777精品综合| www.re99| 国产一在线| 波多野结衣无码在线视频| 久久久久久久久久久国产| 成人毛片18女人毛片真水| 日本操B视频| av东方在线| 六月丁香婷| AV小说在线观看| 国产综合网站| 91午夜视频| 中文字幕黄色电影| 爆操91| 国产成人精品一区二区三区在线| 青青草原网| 人人色人人摸| 亚洲天堂在线观看视频| 91最新在线播放| 欧美老女人操逼群| 操美女嫩逼| 444444在线观看免费高清电视剧木瓜一 | 亚洲一区| 影音先锋无码AV| 大香蕉伊人影视| a在线| 亚洲五月天色| 中文字幕中文| 日韩一级片免费看| 91在线成人| 色综合综合色| 亚洲国产精品久久| 精品AV| 97毛片| 搞黄免费视频视频| 天天插天天| 成人免费一级视频| 亚洲天堂中文| 欧美一级A片在线观看| 国产老女人操逼| 国产黄色性爱视频| 欧美成人黄色| 豆花成人视频| 亚洲成人免费视频| 韩国中文字幕HD久久| 日韩一级性爱| 亚洲播播在线视频| 荫蒂添的高潮免费视频| 69精品在线| 麻豆传媒电影| 99热香蕉| 看毛片的网站| 国产性爱精品影片免费看| 体内射精免费视频| 草逼网视频| 影音先锋中文字幕av| 精品一区国产| 中文字幕五月久久| 九九九精品视频| 久久久久久久国产| 人人干人人操人人爽| 夜夜夜夜骑| 日本在线观看www| 亚洲天堂无码AV| 俺去俺来WWW色官方| 无码插逼| 一本色道久久加勒比精品| 玖玖视频| 韩日高清无码| 操逼视频在线免费看| 91久久电影| 一区二区水蜜桃| 特黄aaaaaaaa真人毛片| 亚洲日韩中文字幕在线观看| 熊猫视频91| 麻豆性交| 97成人在线视频| 久久另类TS人妖一区二区| xxx日韩| 无码h| 大鸡巴午夜爽视频电影| 东京亚洲无码| 激情五月婷婷综合| 亚洲操操| 97人人妻| 一本一道久久a久久精品综合| 欧美成人福利视频| 黄色一级片在线| 91碰碰| 欧美福利| 天天干夜夜操| av操操操| 亚洲免费看黄| caopor在线| 无码免费在线视频| 激情AV在线观看| 色久影院| 久久综合操| 被黑人猛躁10次高潮视频| www.97色色| 成人av黄色三级片在线观看| 日韩无码黄色电影| 亚洲第一中文字幕| 色先锋av| 三级av在线| 天堂资源地址在线| 熟女人妻在线视频| 无码日韩人妻精品久久蜜桃| 91狠狠色丁香婷婷综合久久| 一区二区高清无码| 熟女人妻一区二区三区免费看| 中文字幕+乱码+中文乱码视频在线观看 | 国产天堂网| 中文字幕三区| 日韩一区二区免费看| 国内视频一区| 亚洲美女一区| 成人免费三级片| 性做久久久久久| 97人妻精品一区二区三区软件 | 动漫日逼| 成人伊人电影| 蜜桃视频网站18| 九九九国产| 一区二线视频| 日韩精品成人专区无码| 国产婬片一级A片AAA毛片AⅤ| 午夜影院操| 欧美久久性爱视频| 国产精品久久久999| 亚洲欧美日韩国产| 内射自拍| 青青操日日干| 成人毛片100免费观看| 日韩成人影片| 国产熟女乱伦视频| 91网站18| 老太色HD色老太HD.| 亚洲成人不卡| 欧美日韩中文字幕视频| 精品一区无码| 伊人网视频在线观看| 黄色一级生活片| 精品字幕| 中文字幕AV在线免费观看| 免费福利在线视频| 国产精品久免费的黄网站| 京熱大亂交无碼大亂交| 成人精品免费视频| 澳门簧片| 吹潮喷水高潮HD| 性久久久久久久| 日韩精品一区二区三区免费观看高清 | 中文字幕乱码中文字乱码影响大吗| av中文在线| 欧美日韩a片| 午夜骚影| 亚洲av电影在线观看| 西西午夜视频| 亚洲.欧美.丝袜.中文.综合| 欧美午夜福利视频| 中文字幕线观看| 精品人妻一区二区三区阅读全文 | 久久久亚洲AV无码精品色午夜| 自拍欧美亚洲| 丁香五月影院| AV在线不卡中文| 国产精品久久久久久久久借妻 | 亚洲在线a| 国产黄色三级| 影音先锋人妻资源| 亚洲综合色网站| 农村乱子伦毛片国产乱| 91白浆肆意四溢456| 欧美日韩一区在线观看| 日韩无码A片| 淫荡97| 校园春色av| 日本精品国产| 亚洲一二期视频| 欧美操逼在线| 五月激情丁香| 东方AV免费在线观看| 操逼操逼视频| 秋霞午夜福利| 最新中文字幕AV| 毛片三级片| 激情婷婷| 黄色在线观看国产| 久久e热| 亚洲精品成人av| 天天干天天射天天爽| 亚洲毛片在线观看| 亚洲欧美久久久久久久久久久久| 欧美一级在线免费观看| 奇米色色| 国产精品中文字幕在线观看| 日本三级中文字幕| 久久亚洲日韩天天做日日做综合亚洲 | 国产精品99久久久久久成人| 亚洲无码在线播放| 欧美综合自拍| 黄页网站免费在线观看| 亚洲影院第一页| 天天操天天操天天操天天操| 一区二区三区四区无码| 欧美午夜性爱视频| 怡春院av| 国产欧美综合一区| 免费在线观看黄视频| 亚洲成人中文字幕| 免费无码婬片AAAA片在线蜜芽 | 99综合| 秋霞午夜福利影院| www.一区二区三区| 翔田千里无码视频| 91抽插| 无码精品一区| 成人A∨| 五月天婷婷在线观看| 亚洲美穴| 黄色片视频在线观看| 国产91一区在线精品| 西西444| 日韩毛片视频| 国产一级二级片| 免费AV大全| 91一区二区在线播放精品| 92久久| 亚洲AV五月天在线| 国产精品高清无码| 黄色成人视频在线观看| 国产精品1区2区3区| 欧美黄片免费观看| 亚洲免费观看高清完整| 丰满人妻一区二区三区不卡二| 亚洲V在线观看| 91av免费在线观看| 欧美色色色| 熟妇熟女一区二区三区| 久热免费视频| 老太老熟女城中层露脸60| 91偷拍视频| 亚洲天堂在线免费观看视频| 蜜桃久久av一区| 豆花视频成人网站入口免费观看 | 91国产爽黄在线| 91传媒在线免费观看| 超碰天天操| 久久丁香五月婷婷五月天激情视频| 日韩在线观看中文字幕| 亚洲免费三级片| www在线视频| 肏屄视频免费观看| 欧美亚洲综合在线观看| 91高清在线| 动图综合亚洲综合欧美男男| 可以免费看的黄色视频| 免费看黄色大片| gogogo视频在线观看黑人| 小明成人免费视频| 麻豆回家视频区一区二| 久久无码在线观看| 91在线视频播放| 天天操比| 九色PORNY国产成人蝌蚪| 91网站在线播放| 麻豆成人91精品二区三区| 99视频在线精品| 可以免费观看的av| 免费一级A片在线播放| 91丨国产丨熟女熟女| 蜜臀久久99精品久久久晴天影视| 黄片免费视频在线观看| 欧美手机在线| 国产中文字幕第一页| 亚洲天堂免费观看| 国产精品一区一区三区| 人妻精品一区二区| 草av| 国产精品18禁| 国产三级黄色片| aaa久久| 亚洲中文字幕播放| 性欧美69| 韩日高清无码| 丝袜乱伦| 国产婷婷内射| 国产一级AV国产免费| 久久狠狠干| 中文字幕不卡一区| 1024手机在线观看| 欧美午夜精品成人片在线播放| 91久久久裸身美女| 日韩熟女视频| 性猛交╳XXX乱大交| 欧美XXX黑人XYX性爽| 久久双飞| www四虎com| 亚洲色婷婷久久精品AV蜜桃| 日本综合久久| 操国产美女| 熟妇人妻中文AV| 午夜一级| 精品在线免费视频| av影音先锋在线| 黄片入口| 色色激情网| 成人免费在线视频| 日本一本在线| 五月丁香欧美性爱| 18岁成人毛片| AA片免费看| 2018天天干天天操| 性爱A级视频| 国产精品秘麻豆果冻传媒潘甜甜丶 | 久9久9| 亚洲日韩激情| 成年人免费网站| 图片区视频区小说区| 91欧美精品成人综合在线观看 | 久久日韩视频| 亚洲加勒比在线| 日韩AV手机在线观看| 香蕉伊人在线| 婷婷五月天丁香在线| 中文字幕成人电影| 欧美成人视频网| 亚洲草逼视频| 亚欧洲精品在线视频免费观看| 久久久久久久久久久亚洲| 国产三级电影在线观看| 蜜桃影院| 国产黄色免费看| 大地影视中文第三页最新在线观看| 操一炮在线视频| 久操成人| 日本成人黄色| 99视频内射三四| 新中文字幕| 日本特级黄色毛片| 日韩毛片在线播放| 亚洲一区图片| 一区二区无码在线| 婷婷五月天成人| 精品一区二区三区蜜桃臀www| 欧美性猛交XXXX乱大交| 亚洲日韩在线a成| 黄色毛片在线观看| 免费看操逼逼| 浮力影院久久| 福利在线播放| 偷拍视频图片综合网| 欧美大香蕉视频| 一级a一级a爰片免费| 日韩五月婷婷| 国产成人精品在线| 亚洲在线a| 亚洲第一网无码性色| 五月婷婷色综合| 日本乱轮视频| 四川BBBB擦BBBB| 色婷婷国产精品综合在线观看| 国产精选在线| 欧美一级婬片A片免费软件| 亚洲国产另类无码| 日本一级按摩片免费观看| 韩国精品在线| 色综合99久久久无码国产精品| 国产熟女视频| 亚洲人成小说| 男人操女人网站| 国产无码片| 黄色免费在线网站| 免费无码| 熟妇槡BBBB槡BBBB| 国产精彩无码视频| 天天天天天天天天干| www.亚洲成人| 西西4444大胆无码视频| 国产精品无码永久免费A片| 亚洲一区二区三区在线| 中文字幕第23页| 日韩欧美在线中文| 图片区小说区区亚洲五月| 中文字幕+乱码+中文乱码视频在线观看 | 欧美成人18| 2025国产成人精品一区| 日逼| 招土一级黄色片| 一区二区三区无码免费| 江苏妇搡BBBB搡BBBB-百度| 久久精品大屁股| 四季AV综合网站| 精品91在线视频| 91爱爱| 波多野结衣视频在线| 亚洲一级二级三级片| 日本一本视频| 一级女婬片A片AAAA片| 毛片网站免费| 久久久久久黄片| 亚洲国产成人精品女人| 无码一区二区三区在线观看| 免费观看黄片视频| 亚洲AV官方网站| 日本黄在线观看| 国产成人午夜高潮毛片| 九九九九AV| 毛片内射| 亚洲日韩AV无码| 躁BBB躁BBB躁BBBBBB日视频| 欧美黄色小说| 日韩无码黄片| 国产欧美岛国| 欧美男人天堂网| 六月激情| 91av免费| 无码一区二区黑人猛烈视频网站 | yw尤物视频| 免费观看黄色成人网站| 国产成人在线免费观看| 麻豆三级片在线观看| av免费观看网址| 天堂素人约啪| 黄色视频视频| 国产成人免费视频在线| 九色蝌蚪9l视频蝌蚪9l视频成人熟妇| 日韩aaa| 播五月婷婷| 午夜福利播放| 国产日韩欧美成人| 日韩中文字幕无码| 亚洲无码视频免费在线观看| A天堂视频| AV无码人妻| 国产无套进入免费| 国产亚洲精品久久久久动| 久久国产热视频| 久久久伊人网| 日本韩国叼嘿片| 影音先锋二区| 亚洲女人视频| 在线久操| 佐山爱人妻无码蜜桃| 黄色片视频网站| 亚洲日本高清| 极品少妇久久久| 国产精品一区二区黑人巨大| 久操| 成人网站免费在线观看| 久久久成人网站| 色五月电影| 日本无码久久嗯啊流水| 日日碰狠狠添| 九九热精| 吹潮喷水高潮HD| 五月丁香中文| 国产精品HongKong麻豆| www.狠狠| 一区二区三区视频在线| 久一久久| 日本精品视频在线| 黃色A片一級二級三級免費久久久 亚洲AV无码第一区二区三区蜜桃 亚洲综合免费观看高清完整版在线 | 国产成人h| 五月婷婷开心| 五月丁香六月激情| 亚洲中文网| AA毛片| 成人不卡在线| 91成人免费在线观看| 最新97色黄色精品高清网站| 中文字幕1区| 中文字幕天天干| 国产在线高清| 欧美一级片免费观看| 精品国产乱码久久久久夜深人妻| 操人妻视频| 日本十八禁网站| 极品美鮑20p| 亚洲秘无码一区二区三区电影 | 日韩AV毛| 国产日韩欧美| AV在线无码| 日本爱爱免费| 日韩免费小视频| 国产成人片在线观看| 自拍毛片| 日欧美美女逼| 国产精品一区二区视频| 五月婷中文字幕| 蜜臀久久久| 操美女久久| 欧美老女人逼| 中文大香蕉视频| 97人人干| 伊人久久大香| 成人在线h| 免费观看一区二区三区| 作爱网站| 国产av小电影| 五月婷婷俺也去| 99性视频| 黄片av| 精品无码秘人妻一区二区三区| 人妻天天干| 亚洲AV播放| 欧美成在线视频| 免费观看一级黄片| 欧美成人性色欲影院| 淫秽视频免费看| 欧美色图第一页| 你懂的在线观看| 午夜电影福利| 人人妻人人玩人人澡人人爽| 日韩欧美一区二区在线观看 | 91三级电影| 狼人色综合| 亚洲中文无码AV在线| 在线观看无码AV| 成人先锋AV| 在线观看免费黄片| 日本黄色视频在线| 少妇搡BBBB搡BBB搡造水爽| 国产免费看片| 欧美日韩黄色片| 综合亚洲视频| 欧美不卡一区二区| 777米奇视频| 亚洲一区二区三区免费视频| 亚欧成人在线视频| 新亚洲天堂男子Av-| 嫩草视频在线观看| 国产成人一区二区三区| 激情五月丁香五月| 少妇白洁在线观看| 精品一区二区三区在线观看| 三级成人在线| 91精品国产成人做爰观看奶头 | 国产三级网站| 欧美性爱中文字幕| 久热精品在线观看| 91豆花成人网站| jjzz国产| 九色PORN视频成人蝌蚪自拍| 色欲影音| 欧美性区| 青娱乐成人电影| 精品国产AV无码一区二区三区| av操操操| 国产女人18毛片水真多18| 亚洲高清无码免费在线观看| 中文字幕乱码免费综合久久| 成人视频网站18| 欧美色图88| 无码视频免费在线观看| 自拍偷拍国产| 精品91海角乱| 五月婷丁香| 北京熟妇槡BBBB槡BBBB| 欧美成人性爱网站| 精品视频91| 亚欧三级| 久久国产高清| av在线免费观看网址| 欧美一级欧美三级在线观看| 日韩三级网| 91porn在线观看| 日本黄色视频网| 九九九九九精品| 国产我不卡| 黄色片成人| 成人在线黄片| 欧美色视| 亚洲精品成人网站| 亚洲无码一级视频| 国产69视频在线观看| 日韩熟妇人妻中文字幕| 日韩3级片| 大香蕉综合闲人| 欧美老妇BBBBBBBBB| 在线免费亚洲| 在线免费黄色网址| 成人免费无码激情AV片| 久久久久久黄片| 91香蕉视频在线看| 久久久久久免费一级A片| 黄色一级片在线看| 久久草视频在线播放| 天天干狠狠| 黄页免费无码| av啊啊| 91丨精品丨国产丨丝袜| 91精品国产乱码久久| 黑人精品XXX一区一二区| 蜜桃黄色视频| 双腿张开被9个男人调教| 大香蕉大香蕉免费网| 4388亚洲最大| 免费在线观看AV片| 久精久久| V天堂| 日韩AV乱伦| 小明看台湾成人永久免费视频网站| 丝袜一区二区三区| 欧美浮力影院| 欧洲成人午夜精品无码区久久| 狼人香蕉网| 日日日操| 中文字幕五月久久| 草在线视频| 少妇搡BBBB搡BBB搡视频一级| 黃色一级A一片人与| 亚洲精品蜜桃| 操碰97| 波多野结衣性爱视频| 欧美色综合| 香蕉婷婷亚洲丁香| 亚洲精品成人av| 黄色九九| 北条麻妃无码视频在线| 黄色成人大片| 免费看黄色AV| 日本天堂在线视频| 中文在线一区| 国产永久精品| 免费视频一区二区三区四区| a视频免费在线观看| 一级A爱爱| 777777视频| 国产aa| 高清色色女网站| 成人精品A片免费网站| 午夜伦理福利| 美女福利导航| 二区三区视频| 人人人人人人人人操| 国产视频黄| 超碰女人| 牛牛影视av| 日韩精品五区| 蜜柚AV| 操逼逼视频| 翔田千里被躁120分钟| 日韩无码91| 久久蜜桃成人| 色狠久| 午夜天堂精品久久久| 欧美成人性爱图片| 亚洲高清无码在线视频| 青娱乐网| 无码成人片| 大乳奶一级婬片A片| 久久99精品国产麻豆婷婷洗澡| 日韩av在线不卡| 91麻豆电影| 欧美日韩字幕| 亚洲中文字墓| 国产91精品探花一区二区| 亚洲三级片视频| 国产综合视频| 色玉米地熟妇| 国产国产国产在线无码视频 | 玖玖资源在线| 91青青草| 热无码av| 无套内射在线播放| 婷婷色中文网| 欧美色视频一区二区三区在线观看| 色婷婷一区二区三区久久午夜 | 一区二区三区四区无码| 欧美成人aaa| 日逼老女人| 欧美操逼电影| 国产午夜精品一区二区| 91精品婷婷国产综合久久| 91狠狠综合久久久久久| 中文字幕三级片| 四虎2025在线51| 中文字幕精品一区久久久久| www.豆花社区成人| 久久综合操| 成人av中文字幕| 成人视频一区二区三区| 操操操操操操| 国产一级特黄aaa大片| 国产一区二区三区四区五区六区七区 | 九九99电影| 亚洲无码午夜| 欧美久久一区| 大荫蒂视频另类XX| 激情久久久| 伊人网成人| 黄色3A片在线观看| 亚洲黄色视频在线免费观看| 极品少妇久久久| 哪里能看毛片| 操逼视频免费在线观看| 高清无码免费在线观看| 老太奶性BBwBBw侧所| 国产精品香蕉国产| 777中文字幕| 丁香五月欧美激情| 婷婷五月激情网| 国产精品18在线| 蜜桃黄色视频| 青青草公开视频| 免费在线观看a片| 丰满欧美熟妇免费视频| yOujiZZ欧美精品| 美日韩一级| 性久久久久久久久久| 热的无码| 天天撸在线视频| gogogo高清在线观看免费直播中国| 天天日综合网| 中文字幕成人网站| 无码人妻精品一区二区三区蜜臀百度| 激情AV在线| 久久久久久精品国产三级| 久久久精品少妇| 最近最经典中文MV字幕| 国内自拍av| 自拍偷拍综合| 999成人电影| 日韩av无码电影| 日韩黄色免费电影| AV资源站| 久久久久久久| 国产av影音| 天天爽天天爽夜夜爽毛片| 尹人成人| 麻豆乱伦| 精品视频中文字幕| 波多野结衣在线观看一区二区| 日韩欧美国产精品| www国产亚洲精品久久网站| 在线一级A片| 免费国产黄色视频网站| 婷婷99狠狠躁天天| 日本精品二区| 无码三级在线免费观看| 日韩一区二区三区四区久久久精品有吗| 日韩激情一区| 操碰人人| 黄色大片AV在线| 日韩69视频| 久激情内射婷内射蜜桃欧美一级| 日本少妇高潮| 超碰自拍私拍二区三区区| 国产精品啪啪啪啪| 亚洲国产精品二二三三区| 俺来也AV| 亚洲啪啪网站| 国产精品国产三级囯产普通话2 | 国产AA片| 日韩成人影片| 亚洲不卡免费视频| 国产网友自拍| 国产成人一级片| 国产AV影院| 国内精品人妻无码久久久影院蜜桃| 国产人妻精品一二三区| 99在线精品视频免费观看软件| 婷婷亚洲精| 亚洲熟妇在线观看一区二区| 亚洲免费一级| 婷婷日韩| 国产人妻人伦精品1国产丝袜| 亚欧洲精品在线视频| 中文字幕亚洲综合| 国产嫩草久久久一二三久久免费观看 | 最近最经典中文MV字幕| 极品AV| 国产精品视频一区二区三| 91久久人澡人妻人人澡人人爽| 男女视频91| 亚洲最大成人网站| 欧美成人五月天| 熟女人妻在线观看| 天天干天天看| 国产精品无码永久免费A片| 成人网中文字幕| 水蜜桃视频免费观看| 在线观看黄片| 人人妻人人躁人人DVD| 欧美一级黄| 在线观看中文字幕| 中文√在线天堂8| 久久亚洲综合| 人人插人人| 视频國产在线| 激情五月婷婷五月| 国产乱国产乱300精品| 黄页免费无码| 91网在线观看| 一区二区三区四区日韩| 黄片毛片| 免费看黄片视频| AA片免费看| 国产精选在线| 欧美黄色网视频| 亚洲性爱片| 健身房被教练3p喷水了| 午夜乱伦| 天天干天天干| 国产海角视频| 免费一级片| 福利一区二区| 三级无码视频| 伊人激情网| 高潮视频在线观看| 久久国产精品99久久人人澡 | 吴梦梦《女教师时间暂停》| 狠狠操婷婷| 你懂的在线观看视频| a亚洲天堂| 污网站18禁| 肏屄在线视频| 西西西444www无码视频| 丁香婷婷六月| 嫩草视频在线观看| 国产无码做爱视频| 日韩欧美一| 亚洲AVA| 亚洲天堂影音先锋| 亚洲小视频在线观看| www.seses| 男人的天堂社区| 欧美操逼网| 91亚洲国产精品| 成人网站一区| 特一级黄色电影| 91福利网站| 91热视频| 中国毛片视频| 国产精品三级在线观看| 亚洲国产精品成人va在线观看| 黄片大全在线免费观看| 青娱乐成人|