作者jk21234 (BL2400PT真不错)
看板PC_Shopping
标题Re: [情报] NVIDIA显卡爆发式飞跃揭秘:悄然上平铺式
时间Tue Aug 2 22:36:11 2016
※ 引述《KotoriCute (Lovelive!)》之铭言:
: http://news.mydrivers.com/1/493/493738.htm
我去查了原文 , 他是说Maxwell采用的是Tile-Based Immediate Rendering
不过既然讲到Tile Based Rendering,
就可以顺便提一下历史上的PowerVR
PowerVR 1 = Matrox M3D
PowerVR 2 -> Sega Dreamcast,Naomi
PowerVR 3 = Kyro (PC独立显卡)
然後就从NEC手中被英国公司Imagination收购,
这家公司又刚好在ARM对面.最後PowerVR和ARM
也联手也分别打下Mobile市场
PowerVR虽然是最早以Tile Based Rendering命名技术的
不过他的做法因为後来又出现其他种Tile Based Rendering,
所以比较精确指称的话,他可以称为Tile Based Deffered Rendering
相对的後来其他家不太一样,也叫自己为Tile Based Rendering的做法就有差
所以本文後面除非回到历史名词,不然会以TBDR代称PowerVR的技术
TBIR代称其他家的TBR.
那TBDR最重要的是Deferred Rendering,意思是说,画面上通常会有很多个物件
没有画以前会有重叠的可能,传统做法是一个相关的物件一起画,但可能A画好,
B又把他盖掉,等於浪费掉了(overdraw)
所以能早点知道B在A前面,就直接先画B,再画A没被盖到的部分,
这样最节省频宽.PowerVR会切成小Tile再排序A和B谁在前面,
确保一定先画前面
http://img.tomshardware.com/us/2001/04/25/a_speedy_tiler/tbr_texturing.gif
NV30和Radeon 200以後的GPU,基本上也有作TBR的情况,只是不以
Deferred Rendering的方式,而是EarlyZ/HyperZ,提早在pipeline前端
切掉超过范围的东西.......算了 早点进入主题
现代GPU普遍的使用Tile Based Rendering,但他可能是基於其他理由.
根据实验,Intel 的Haswell GPU的绘图顺序如此图
http://i.imgur.com/y5gJL63.png
这个是把Pixel绘图的顺序,变成B+G+R的颜色.
也就是Pixel 1就是(0,0,1),Pixel 255就是(0,0,255),
Pixel 65535就是(0,255,255)
可以看出 他绘图的顺序是8x8个pixel为一个小单元,然後小单元之间
像是贪食蛇这样连接,而不是单纯以X,Y轴为顺序
这样是做甚麽?
我们把情况简化,假设萤幕总解析度是4x4
如果最传统的图学,资料顺序是
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
当我们照这个顺序的时候,有很多机会 你要去查邻近的Pixel是甚麽颜色
7如果查旁边6/8两个 还算连续,3/11就跟你不连续了
如果你是1080P的画面 已经在几百kB外的资料了
但记忆体传递可以是连续的,一次很多,那如果能传进来的时候,
同时把你四周的点都准备好 那可能会比较省时间
从2x2来看
1 2
3 4 好像随便排都很近
把这想法先扩大一倍看看
1 2 5 6
3 4 7 8
9 10 13 14
11 12 15 16
至少我保证只要一次传4个pixel,有一半的机会你的邻居也好了
如果不这样做就是
1 2 3 4 当你要查6的时候,要等下次
5 6 7 8
9 10 11 12
13 14 15 16
类似的实行法不只上面那个,我举的这种叫做Z-ORDER CURVE
wiki上有图示会比较清楚
https://en.wikipedia.org/wiki/Z-order_curve
还有比较复杂的比如Hilbert Curve
https://en.wikipedia.org/wiki/Hilbert_curve
那麽 综合而言,TBIR(如果不考虑舍弃overdraw的三角面)
是打算达成甚麽效果呢?
1.先将要画图的画面,切成N*N的pixel的方块 一次进入显示卡的
Pipeline或者同一单位的Shader群绘制
为什麽?因为缩减了范围,Data Locality相对提高
针对贴图的Cache命中率就会高很多
2.不同Tile的顺序是以Z-order Curve或者Hilbert Curve等顺序完成
这可以得到两个效果
A.由记忆体连续送进来的东西比较有机会是你会用到的
反之也可以说是 你和你的邻居可以被打包成一次传送
B.你要重新查询隔壁的东西 他很有机会还在Cache中没被挤出去
不用再读取一次
3.(顺便的) 贴图的储存顺序也会照同一个方式储存
如果说要用这种方式储存
那记忆体位置跟X,Y轴的对应关系就变得很复杂了
所以所有相关的电路都会因此多花费电晶体但省掉记忆体频宽
事实上GPU的进步中这是很常见的事情 用更多的电晶体
换更少的记忆体频宽消耗量,记忆体频宽才是有限资源.
如果要说有无采用TBIR,我认为目前的AMD/nVidia/Intel/ARM GPU都是
并不是nVidia专属,当然这个东西也不影响画出来的效果,不属於任何
投机的范围
(ARM有一个专利 因为TBR有Tile,可以数出已经画了画面上的百分之多少,
如果已经超额完成任务 可以把GPU的记忆体存取暂停让给CPU使用.
另外Samsung和nVidia也有申请TBR的相关专利....)
==
补充:PowerVR败退自PC原因是因为自身的TBDR,虽然省了记忆体频宽
但需要较多的记忆体量 成本优势有限 加上TBDR会在透明色/多重贴图/
Vertex Shader的情况有较多劣势....
但成为Mobile GPU无可跨越的霸主也可算是在TBDR.
因为Mobile GPU实在是无法浪费多少电给你在记忆体频宽上
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 42.73.169.150
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/PC_Shopping/M.1470148575.A.925.html
1F:推 vobor : 快推 不然别人以为我… 08/02 22:38
2F:推 howhow72 : 看得懂 08/02 22:39
3F:推 Cubelia : 看不懂,推 08/02 22:42
4F:推 KotoriCute : 推了 还是看不懂 08/02 22:43
5F:推 batschris : 推JK大 08/02 22:43
6F:推 LinYiJen : 不知道推了会不会变聪明 08/02 22:44
7F:推 warshipchiu : 先推惹 虽然不懂QQ 08/02 22:45
8F:推 jackal998 : 那为什麽资料没有办法只传送所需要的呢..? 08/02 22:48
SDRAM的特性就是一次传多一点比较有效率
还有另外一个东西叫做Cache,Cache基本上一块比较大 保留比较多资料,
那做同样容量的Cache的空间会小很多
两个加起来....资料一次准备多一点卡好...
但太多了又不是你立刻会用到的也浪费
所以就要彻底利用他 宁愿多花电晶体做事情
也要能全部利用完最好
9F:推 azumanga : 看得懂,推一个。 08/02 22:51
※ 编辑: jk21234 (42.73.169.150), 08/02/2016 23:01:17
10F:推 verdandy : 讲解的很直白,我这个非本科系的都看得懂 推 08/02 23:09
11F:推 damnedfish : 我只看得懂结论 08/02 23:13
12F:推 apley : 这次我看懂了 (大哭) Q_Q 08/02 23:18
13F:推 loach98 : 推 08/02 23:22
14F:推 greenpeace21: 难怪Dreamcast的游戏不太用透明色和多重贴图 08/02 23:25
15F:推 b155073 : 推 JK大! 08/02 23:26
16F:推 tony24334 : 你显卡系? 08/02 23:34
17F:→ jk21234 : 我'常'把有显卡业务的公司在里面做到业务倒XD 08/02 23:36
18F:推 chibon1992 : 明年老黄若用上GG的info封装会更对AMD赶尽杀绝? 08/02 23:38
19F:→ jk21234 : 明年或者下一次微架构更新的状况怎样不明 08/02 23:42
20F:推 obov : 那东西又不是瞄准显卡的 08/02 23:50
21F:推 silver00 : 推 08/03 00:00
22F:→ wbenjin : 先推 免得被发现看不懂 08/03 00:08
23F:推 peatle : 嗯嗯,跟我想得差不多 08/03 00:36
24F:推 opass168 : 当年有在杂志上看过Kyro II显卡的新闻 然後就没了 08/03 00:48
25F:→ jk21234 : kyro有123三代 但都属powervr3 08/03 01:09
26F:→ jk21234 : kyro3有es没上市 08/03 01:10
27F:推 ctes940008 : 看不懂 08/03 02:05
28F:推 asdg62558 : 看得懂+1 08/03 02:29
29F:推 wahaha99 : 好专业 推 08/03 02:34
30F:→ cowbaying : tile base从以前到现在 软硬体都有实作过 08/03 04:01
31F:推 ex876 : 所以要买1080, 看懂了 谢谢 08/03 07:49
32F:推 wert213 : 看不懂,先推 08/03 09:00
33F:推 ZroeX : 游戏业的表示:懂了 08/03 09:12
34F:→ MrDisgrace : 看不懂必推 08/03 11:13
35F:推 zxc445567 : 恭请教主开示 08/03 11:47
36F:推 john0312 : 专业推 08/03 12:19
37F:推 mz92zk05 : 推 不然别人……… 08/04 07:58