当大家都在发愁,为什么AMD、NVIDIA两家都在新的游戏显卡推出上磨磨蹭蹭,NVIDIA终于先走出了属于自己的第一步。带着图灵极具革命性的创新思想,全球第一款支持实时光线追踪的显卡RTX 2080 Ti诞生了,跳过了Votla架构,Turing架构横空出世,到底它有什么与众不同,居然实现了多代计算机图形学人的实时光线追踪梦想,下面我们将会以Turing图灵架构白皮书作为参考,给大家展开讲一讲那些“光追”的秘密。
如果以AMD新显卡推出周期来看,NVIDIA的发布节奏是非常好,新品也是接连不断,但这个仅限于Pascal架构之前了。因为Pascal架构这一代GPU产品组合真的非常多,覆盖高中低端,所以说NVIDIA显卡能取得今天的成就并不是说白来的,是有真材实料在里面。
在GTX 1070 Ti推出以后,Pascal架构应当说是走入了尾声,正当大家以为Volta游戏显卡要登场的时候,来自各方面的烟雾弹都来了,什么Ampere、Turing架构都来了,一时间真假难辨。最终确认新一代显卡为Turing图灵架构也不过是一个月前的今天——Quadro 8000专业卡的发布,GeForce游戏卡的发布是七天后的德国科隆游戏展上。那时候我们都错愕了,居然真的跳过了Volta架构,Turing架构横空出世。
现场发布了三款支持光线追踪的新架构显卡:RTX 2080 Ti、RTX 2080、RTX 2070,从名字上看,NVIDIA居然能够舍弃用了这么多年的GTX前缀,改成了RTX,你就知道NVIDIA是多么地引以为傲。
当然了,NVIDIA一直在鼓吹的消费升级,在RTX 20系列显卡中得到了具体体现,RTX 2080 Ti售价已经高达8199元,GTX 1080 Ti当初售价不过是5699元,涨幅43%,真的是可怕。
下面是我们针对RTX 2080 Ti、RTX 2080、RTX 2070三张“光追”显卡,对比上一代Pascal显卡的规格对比表。
首先Turing显卡最明显的变化就是,目前是一个核心对应一个型号,TU102是RTX 2080 Ti专属、TU104是RTX 2080专属,TU106是RTX 2070专属,而上一代GTX 2080、GTX 2070共用同一款GP104核心。
Turing显卡将会采用12nm FFN工艺打造,技术供应方来自台积电,据说12nm FFN最后的“N”代表着这是专门为NVIDIA优化的版本。根据TSMC此前公布的资料,它实际是基于12nm FFC工艺改进的,性能是后者的1.1倍,功耗只有后者的70%,核心面积则可以缩小20%。
尽管有了新制程的支持,Turing GPU核心面积也是水涨船高,原本想RTX 2070这个级别应该是用中端GPU,不过一看核心面积居然有445mm2,比上一代GTX 1080的314mm2大上不少,只逼GTX 1080 Ti的GP102大核心,可见NVIDIA在里面塞了多少晶体管!
冷静地分析一下,Turing核心面积暴涨原因其实并不是暴力堆砌CUDA单元结果,而是引入了全新的Tensor Core以及RT Core单元有极大关系。而它们的出现成就了Turing图灵显卡最大亮点——游戏也可AI、实时光线追踪不是梦!
按照NVIDIA公布的Turing架构亮点可以分为四大部分:全新的内核架构、Tensor Core 、RT Core 、更先进的着色技术,我们将会以这四个作为主线索,跟大家逐一聊聊。
全新的Turing内核架构
之前我们都说过三款新显卡都有不同的GPU核心,其实它们内部结构都是发生了很大变化。
RTX 2080 Ti TU102核心规模真的非常大,TU102核心一共分为6组GPC单元,每组GPC单元又拥有12个SM单元,一共是72个SM单元,但RTX 2080 Ti也只用到其中的68个而已,算下来68×64=4352个CUDA流处理器。同时按照RTX 2080 Ti已经公布的参数,可以计算得出,每个SM单元将会配备64个CUDA、8个Tensor Core 、1个RT Core,单SM单元配给64个CUDA的做法,倒像是从前GP100大核心喜欢做的事情,原因会在后面给出。
TU102
完整版的TU104核心依然是6组GPC单元,不过每组GPC改为8个SM单元,一共是6×8=48个,而RTX 2080的GPU核心是TU104-400,只用上了46组,还有预留有2组空缺的,46×64=2944个,规模要比RTX 2080 Ti小多了,真怨不得RTX 2080 Ti为什么贵那么多。
TU104
RTX 2070显卡它有点让人意外,使用的是TU106核心,你可以将其视作RTX 2080 Ti规格砍半,3组GPC单元,3×12=36组SM单元,经过计算,RTX 2070是满血版的TU104核心,36×64=2304个CUDA单元。
TU106
看完大方面的GPU架构改动以后,将重点放回到小小的SM单元上,看看里面的一些新变化。
Turing 图灵架构性亮点
Turing图灵架构采用全新的SM设计——Turing SM单元,与Pascal架构相比,每个CUDA Core性能提升50%,效果显著。
50%的性能提升主要是依靠两个比较关键的技术实现
Turing架构SM单元融合很多Volta架构的特性,比方说一个TPC里面包含了两个SM单元,而在Pascal架构当中只有一个。另一方面,Turing的SM单元内部运算单元有了全新的组份以及分配方式。
Pascal架构中的128个FP32运算单元,在Turing架构中变成了拥有64个FP32、64个INT32、8个Tensor Core 、1个RT Core,FP64单元彻底不见了,同时添加了独立的INT数据路径,类似于Volta GV100 GPU的独立线程调度,支持FP32和INT32操作的并发执行。
Turing架构SM单元还为共享缓存、L1缓存、纹理缓存引入了统一架构,可以让L1缓存更充分利用资源。Turing的L1缓存与共享缓存大小是灵活可变的,可以根据需要在64+32KB或者32+64KB之间变换,目的在于减少L1缓存延迟,并提供比Pascal GPU中使用的L1缓存更高的带宽。同时L2缓存容量大大地提升至6MB,是Pascal架构的两倍。
根据NVIDIA官方数据显示,与Pascal架构相比,Turing架构每个TPC带宽命中效果增加2倍。
当前游戏应用程序中一组着色器工作负载的结果
Turing Tensor Core
其实Turing里面真的有很多Volta的影子,比如Tensor Core首次出现在Votla架构中,而Turing架构对其进行了增强。还增加了新的INT8和INT4精度模式,FP16半精度也能够被完整支持。
Tensor意思就是张量,区别于我们常见的标量(0维)、矢量(1维)、矩阵(2维),张量拥有3维或者更高维,本质核心上就是一个数据容器,可以包含更多维度数据。而目前深度学习就是通过极大量数据运算计算出最终结果,通常会用到矩阵融合乘加(FMA)运算,而Tensor Core区别于ALU整数运算,天生就是为这种矩阵数学运算服务。
它可以将两个4×4 FP16矩阵相乘,然后将结果添加到4×4 FP16或FP32矩阵中,最终输出新的4×4 FP16或FP32矩阵。NVIDIA将Tensor Core进行的这种运算称为混合精度数学,因为输入矩阵的精度为半精度,但乘积可以达到完全精度。
每个Tensor Core可以使用FP16输入在每个时钟执行多达64个浮点融合乘加(FMA)运算,新的INT8精度模式的工作速率是此速率的两倍。Turing Tensor Core为矩阵运算提供了显着的加速,除了新的神经图形功能外,还用于深度学习训练和推理操作。
Tensor Core FP16、INT8、INT4算力,以RTX 2080 Ti为例
Pascal和Turing Tensor Core之间配置比较。
深度学习特性——NVIDIA Neural Graphics Acceleration(NGX)
Tensor Core开发之初是为了加速深度学习能力,用在游戏显卡上显然很浪费,为什么NVIDIA还要坚持塞入了到Turing游戏显卡中呢?
NVIDIA将张量单元引入到Turing架构当中,意味着可以在游戏中首次实现深度学习,主要是依靠NVIDIA NGX AI框架,可以在游戏中实现诸如深度学习超级采样DLSS、AI InPainting、AI Super Rez、AI Slow-Mo等功能。简直就是万物基于AI的真实写照!
由于有了Tensor Core,它可以加速实现一些过去非常繁琐功能,建立起属于GPU的DNN深度神经网络,用于加速处理游戏中的部分特性,实现游戏也能AI。
注意NGX的功能与NVIDIA驱动密不可分,很多功能都是依赖于NVIDIA GeForce Experience软件实现的,会自动匹配Turing显卡并且下载NGX Core软件包,并且提供对应服务,比方说深度学习超级采样DLSS、AI InPainting、AI Super Rez、AI Slow-Mo等功能。
深度学习超级采样DLSS:
现在很多游戏画面不是直接渲染得出的,多数都有后处理,也就是各种抗锯齿技术,举个NVIDIA的TAA例子,它是一种基于着色器的算法,它使用运动矢量组合两个帧来确定前一帧的采样位置,虽然性能开销差不多,但效果却不如其他AA技术。因此NVIDIA利用Tensor Core开发出了DLSS,实现在较低的输入样本数下更快地渲染,输出渲染画面与TAA质量相似。但由于Tensor Core的加速处理, RTX 2080 Ti的渲染能力要强得多,几乎是GTX 1080 Ti的2倍。
针对每一个游戏,会实现建立起对应的训练网络,收集数千个以64×超级采样生成参考画面,经过对像素点进行64次偏移着色合成输出后,理论上画面细节具有近乎完美的图像效果。同时还会生成正常的渲染图像,然后要求DLSS网络响应输出对应结果,观察与64×超级采样画面差异,调整网络权重,经过多次迭代以后,DLSS自行学习产生的结果将具有与64×超级采样画面相同质量的细节,还可以避免TAA产生的运动模糊等问题。
不过需要明确的是DLSS训练网络运行于NVIDIA的超级计算机上,而非你的显卡,只不过通过GFE下载了这个游戏DLSS网络权重参数,可以用非常低开销复现了超算的结果,这就是NVIDIA为什么要在Turing显卡上引入Tensor Core的原因。这同样意味着,每一个游戏都需要事先跑出自己的DLSS网络,然后由NVIDIA通过GFE软件分发给玩家,所以这也是为什么非Turing显卡不能使用DLSS的原因。
首批支持DLSS(大力水手)的游戏,共15款
AI InPainting:说白了就是为了补全图片中缺失的内容,或者是帮你去掉不想要的东西,堪称最强PS抠图!而NGX InPainting算法依赖于来自大量真实世界图像的训练来合成新内容,它同样是运行于超算得出的深度神经网络中。详见我们的新闻——《NVIDIA再出AI黑科技,完美去除图片噪点、水印》
AI Super Rez:它可以将原视频的分辨率清晰地放大2倍、4倍、8倍,图像更加锐利。
AI Slow-Mo:利用AI人工智能技术,可以将普通常见的30fps进行智能插帧计算,可以获得240/480fps的慢动作视频。这个对于视频内容创作者来说可是个巨大福利,在一些需要慢放的镜头不再需要专门高帧率摄像头机,只要通过AI运算就能获得让人觉得流畅慢动作视频。详见我们的新闻——《NVIDIA AI黑科技,30fps可插帧成480fps慢动作视频》
RT Cores
Turing尽管很多特性都是传承于没有游戏卡的Volta架构,但RT Core的加入,让Turing显卡实现计算机图形学的一大突破,Real-Time Ray Tracing实时光线追踪成为了可能。我们也在超能课堂——《RTX显卡支持的实时光线追踪是什么?》中详细地描述过实时光线追踪是怎么一回事,其效果就不说了,这绝对是Turing显卡的核心灵魂,也是架构的最大进步,以至于NVIDIA利用了非常大的篇幅来描述他们是怎么实现的。
不可否认光栅化在过去功劳,一直以较小的资源开销实现更逼真的光影场景效果,但事实上它是有不可解决的局限性,会在渲染出现违反物理现象的画面,但实时光线追踪是基于物理上的一种密集渲染方式来还原,不存在这一缺点。这就是为什么NVIDIA坚持让显卡加入RT Core实现更逼真的游戏场景。正如我们的观点,光栅化与实时光线追踪不是对立的,NVIDIA也认为两者结合是最好的,也就是混合渲染,光栅化用于普通、需要高效处理的场景中,而光线追踪用于最具视觉效果的地方,比方说水面反射、镜子反射、玻璃折射等。
其实不能实现全光线追踪渲染的原因在于,目前显卡性能还达不到要求,因为考虑到场景复杂程度、分辨率、最终效果,不能指望说每个像素都能投射出数百条光线进行渲染计算,算力完全跟不上,只能在次要景物上“偷工减料”,减少投射的光线数目,由于样本数目太少,可能会因为蒙特卡洛积分近似求解中样本数量不足,导致画面会有大量噪点。NVIDIA通过针对极低样本数量的光线追踪结果进行实时降噪的研究,在GameWorks SDK中一个光线追踪降噪模块,也就是Denoising算法。最终可以用比较低样本的光线追踪应用到实时渲染中,最终渲染质量可以媲美大样本下的光线追踪收敛图像。
其实在没有RT Core帮助下,Pascal架构显卡也能实现光线追踪,但效率奇低,主要是因为BVH遍历的过程需要通过着色器操作来执行,并且每个光线投射需要数千个指令来计算BVH中的边界交叉点,直到最终击中三角形。你想想一个像素点有100条光线,一条光线需要数以万计的指令来完成计算,就这处理速度完全达不到实时光线追踪需求。
但RT Core 可以,其实它有点像是Tensor Core,不过只是专门为光线追踪计算服务,实质上它是一条特异化的专用流水线,用于加速计算边界体积层次(BVH)遍历以及光线和三角求交(光线投射)。由于ASIC都拥有非常高效的特性,不像CUDA这种通用单元,效率当然有平方级的提升。
RT核心包括两个专用单元:第一个进行边界框计算,第二个进行射线三角交叉计算
高效的实时光线追踪实现主要是从Ray Triangle Intersection和BVH Traversal入手解决,Ray Triangle Intersection就是寻找光线和三角形的交点位置的过程;BVH Traversal通过这算法就可以大大减少计算每一条光线最近的交点所需要遍历的三角形的数量,在一次渲染中这个预处理只需要进行一次,就可以供所有光线使用。
因此一个SM单元中只需要配备一个RT Core即可,因为SM单元只是个引子,用于启动Ray probe,剩下的工作全都交由RT Core处理,会自动计算执行边界体积层次(BVH)遍历以及光线和三角求交,并且向SM单元返回结果,从而节省SM单元执行的数以千计的指令。同时SM单元可以自由地执行其他任务,比如是顶点生成、计算这色等。因此一个GPC单元中SM单元数目发生重大变化,有可能是与RT Core性能匹配相关,毕竟两者相辅相成,谁跑得太快或者太慢都是不行的。
最后RT Core还要配合GameWorks SDK的光线追踪降噪模块、RTX API等软件层面的协同工作,才能一张Turing显卡就能实现实时光线追踪。
最终RTX 2080 Ti每秒钟可以追踪10G条光线,78T的RTX-OPS;RTX 2080每秒追踪光线降低至8G条,RTX-OPS也降低至60T;RTX 2070每秒能追踪的光线只有6G条,45T RTX-OPS;而Pascal的游戏皇者GTX 1080 Ti只能追中1.1G条光线,RTX-OPS只有11.3T,RT Core性能是非常强劲的。
哦对了,NVIDIA定义的RTX-OPS性能是这样计算的, RTX-OPS= TENSOR * 20% + FP32 * 80% + RTOPS * 40% + INT32 * 28%
RTX光线追踪效果对比(记住了RTX不一定代表实时光线追踪,还可能是支持DLSS):
先进的渲染技术
Mesh Shading:由于现在游戏场景很复杂、规模也很宏大,如果用原本的方式生产三角形,会消耗太多的CPU draw call,而Mesh Shading引入了一种更灵活的模型,可以让开发人员能够规避CPU性能瓶颈并使用更高效的算法来生成三角形。
Variable Rate Shading (VRS):Turing架构引入了一种全新更加灵活的控制着色率的功能,称为VRS可变速率着色。使用VRS,现在可以在每个16× 16像素区上动态调整着色速率,有助于提升帧数。
Content Adaptive Shading、Motion Adaptive Shading、Foveated Rendering
Texture-Space Sharing(TSS):TSS技术中,其着色值将会被动态计算并作为纹理空间中的纹素存储起来,当像素被纹理映射,其中屏幕空间中的像素被映射到纹理空间,并且使用标准纹理查找操作对相应的纹素进行采样和过滤。通过这项技术,以完全独立的速率和独立解耦坐标系统对可见性和外观进行采样。使用TSS,开发人员可以重新使用在分离的着色空间中完成的着色计算来提高质量和性能。
Multi-View Rendering (MVR) :这是Pascal架构上的SMP功能扩展版本,MVR允许从多个视角进行高效的场景绘制,Turing硬件每次通过最多支持四个视角,API级别最多支持32个视角。
GDDR6
由于现在显示器分辨率不断提高,而且纹理贴图尺寸更大,渲染技术也越来越复杂,数据交互量非常大,显存带来以及容量大小在影响GPU性能中占比越来越大,为了解决这一瓶颈,NVIDIA首次采用了GDDR6显存。
我们在超能课堂——《NVIDIA RTX“光追”显卡的秘密——GDDR6显存》中提及过,GDDR6继承了GDDR5X中的16bit预取宽度,使用了改进版的QDR 4倍数据倍率技术,GDD6显存速度因此可以抛开GDDR5一大截,直接从12Gbps起跳,而NVIDIA本次在Turing显卡上全部采用14Gbps版本。其次GDDR6使用双读写通道问题,带来明显的性能提升。第三,而GDDR6标准下未来最高容量可以达到32Gb,换算过来单颗粒就是4GB,目前NVIDIA在Quadro专业卡用单颗粒2GB,在GeForce游戏卡上用单颗粒1GB;第四,GDDR6工作电压也同步GDDR5X下降到1.35V上,实现功耗、漏电率下降,从而降低产品的总功耗。
NVIidia提到另一个,由于目前GDDR6等效频率非常高,需要端到端的优化,优化PCB设计,减少信号串扰问题。目前使用了GDDR6显存的图灵显卡有着50%以上的带宽提升。
这倒是不假,GTX 1080 Ti 11GB 11Gbps的GDDR5X显存带宽才484GB/s,RTX 2070 8GB 14Gbps的GDDR6显存带宽就有484GB/s,RTX 2080 Ti就更厉害了,带宽都虐了HBM 2,难怪NVIDIA不愿意用HBM 2显存。产能不足就算了,成本优势也不高,速度还不快,GDDR6简直完胜。
第二代NVLink
NVIDIA过去为两张或者两张以上的显卡SLI连在一起\作单一输出功能设计了SLI桥,采用单个多输入/输出(MIO)接口技术,后期又升级为SLI HB桥(Pascal架构,双MIO接口)。
而在另一阶段,NVIDIA为专业显卡、计算卡设计了全新的NVLink,而2016年发布的Tesla P100是首款搭载NVLink的产品,单个GPU具有160GB/s的带宽,相当于PCIe 3.0 ×16带宽的5倍。去年GTC 2017上发布的TeslaV100搭载的NVLink 2.0更是将GPU带宽提升到了300G/s(六通道),都快是PCIe 3.0 ×16的10倍。
NV说RTX 2080/2080 Ti的NVLink是给你上更高的分辨率用的
这一次,NVLink 2.0将会下放到GeForce游戏上,但目前只有RTX 2080 Ti、RTX 2080才能够享受这一殊荣,毕竟顶级显卡性能足够强才有需要组建多卡系统,NVLink高带宽刚好适合使用。
但具体落实到RTX 2080 Ti、RTX 2080上又有区别了,因为NVLink是有双通道的,每个通道单向带宽25GB/s,而双向带宽50GB/s。而RTX 2080 Ti能用双通道,但RTX 2080只能单通道。值得注意,NVLink仅支持双路SLI,不支持三、四或者更多路SLI。
而根据我们从厂商了解到的消息,NVLink桥售价不菲,官方卖79美金,但第三方99美金是跑不了,RGB灯就更加酷炫了。
USB-C、VirtualLink
随着科技进步,I/O接口一直都在不断小型化,臃肿的接口都会面临淘汰的一天,VGA是这样、DVI也将会这样。新上位的是谁?那就是USB Type-C形态视频输出接口,毕竟接口尺寸小、正反可插、支持数据传输+充电多功能,集大成于一身。目前市面上已经开始出现使用USB Type-C接口的显示器,NVIDIA也选择增加对其的支持。
哦对了,USB Type-C只是接口形式,内部其实还是走DisplayPort 1.4协议,最高支持8K分辨率。
不过这个NVIDIA显卡上USB Type-C接口可不一般,它不仅仅充当视频输出接口,还能传输数据、充电!那就是之前由微软、英伟达、AMD、Oculus、Valve牵头制定的VirtualLink,可以走DisplayPort HBR3协议、USB 3.1 Gen2 (10Gbps)、最高27W供电。能够简化虚拟现实设备的调校准备,比方说HTC Vive本身就需要HDMI、USB 3.0、电源多种线缆,现在一根USB Type -C就搞定了。
超能网友教授 2018-09-16 19:44 | 加入黑名单
该评论年代久远,荒废失修,暂不可见。
支持(11) | 反对(0) | 举报 | 回复
47#
我匿名了 2018-09-16 12:38
支持(0) | 反对(0) | 举报 | 回复
46#
超能网友教授 2018-09-16 11:22 | 加入黑名单
该评论年代久远,荒废失修,暂不可见。
支持(0) | 反对(0) | 举报 | 回复
45#
游客 2018-09-16 10:46
支持(0) | 反对(0) | 举报 | 回复
44#
游客 2018-09-16 09:50
该评论年代久远,荒废失修,暂不可见。
已有1次举报支持(1) | 反对(0) | 举报 | 回复
43#
超能网友终极杀人王 2018-09-16 09:31 | 加入黑名单
该评论年代久远,荒废失修,暂不可见。
支持(0) | 反对(0) | 举报 | 回复
42#
超能网友终极杀人王 2018-09-16 09:06 | 加入黑名单
该评论年代久远,荒废失修,暂不可见。
已有1次举报支持(1) | 反对(0) | 举报 | 回复
41#
游客 2018-09-16 07:08
该评论年代久远,荒废失修,暂不可见。
支持(0) | 反对(0) | 举报 | 回复
40#
我匿名了 2018-09-16 00:28
支持(3) | 反对(0) | 举报 | 回复
39#
我匿名了 2018-09-15 22:24
支持(1) | 反对(1) | 举报 | 回复
38#
游客 2018-09-15 21:07
支持(0) | 反对(0) | 举报 | 回复
37#
游客 2018-09-15 19:09
支持(3) | 反对(3) | 举报 | 回复
35#
游客 2018-09-15 18:06
支持(0) | 反对(1) | 举报 | 回复
34#
超能网友一代宗师 2018-09-15 15:10 | 加入黑名单
该评论年代久远,荒废失修,暂不可见。
支持(1) | 反对(1) | 举报 | 回复
33#
我匿名了 2018-09-15 14:42
支持(3) | 反对(2) | 举报 | 回复
32#
超能网友一代宗师 2018-09-15 14:33 | 加入黑名单
支持(3) | 反对(1) | 举报 | 回复
31#
我匿名了 2018-09-15 14:29
支持(2) | 反对(1) | 举报 | 回复
30#
游客 2018-09-15 13:36
支持(0) | 反对(0) | 举报 | 回复
29#
游客 2018-09-15 12:50
支持(5) | 反对(9) | 举报 | 回复
28#
游客 2018-09-15 12:31
该评论年代久远,荒废失修,暂不可见。
支持(2) | 反对(0) | 举报 | 回复
27#
游客 2018-09-15 11:44
该评论年代久远,荒废失修,暂不可见。
支持(0) | 反对(0) | 举报 | 回复
26#
游客 2018-09-15 11:37
支持(2) | 反对(0) | 举报 | 回复
25#
我匿名了 2018-09-15 11:31
支持(2) | 反对(0) | 举报 | 回复
24#
我匿名了 2018-09-15 11:29
支持(0) | 反对(0) | 举报 | 回复
23#
游客 2018-09-15 10:54
支持(4) | 反对(5) | 举报 | 回复
22#
游客 2018-09-15 10:50
该评论年代久远,荒废失修,暂不可见。
支持(0) | 反对(0) | 举报 | 回复
21#
游客 2018-09-15 10:25
该评论年代久远,荒废失修,暂不可见。
支持(0) | 反对(0) | 举报 | 回复
20#
游客 2018-09-15 10:15
支持(2) | 反对(9) | 举报 | 回复
19#
超能网友教授 2018-09-15 09:57 | 加入黑名单
支持(4) | 反对(0) | 举报 | 回复
18#
游客 2018-09-15 09:45
该评论年代久远,荒废失修,暂不可见。
已有3次举报支持(1) | 反对(1) | 举报 | 回复
17#
加载更多评论