POPPUR爱换

 找回密码
 注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

搜索
楼主: Edison
打印 上一主题 下一主题

AMD 下一代 GPU 架构 Evergreen 讨论专贴

 关闭 [复制链接]
61#
发表于 2009-6-16 20:47 | 只看该作者
大侠太过谦虚,我继续求教~

首先,关于大侠说的“设想我们实现某种效果,需要取得相邻的像素值”。问题是,这种图形算法会广泛应用么?这可就意味着Fragment之间有Dependency,从而意味着需要在Fragment之间作Synchronization?这个不是要尽量避免么?Fragment之间能Decoupling,不正是Rastrization乃至Raytracing的最大优势么?即便对于Jpeg这种压缩来说也不过是8*8个Pixel作为一个区域,这些区域之间是Decoupling的。

不可避免的TBR还是有很多限制,还需要改进,这种技术未来恐怕很难胜任越来越灵活的Graphics Pipeline。我想,未来的Graphics Pipeline是可以同时支持TBR和IMR的,这就看编程的人是怎么写了,Code决定了一切。

LRB是一个很好的尝试。也是一次大胆的尝试。这几天我又看了LRB的 Irregular Z-buffer,这东西一上,现有这些Fixed-Point Ras.都得报废了……只能把光栅化推倒可编程单元去做…。怪不得Intel死活不上一个Ras.按理说这东西绝对不占用Transistor Budget~~不过LRB依旧没有解决Memory Wall引发的功耗问题,这需要未来有更大改进。
回复 支持 反对

使用道具 举报

RacingPHT 该用户已被删除
62#
发表于 2009-6-17 11:34 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

RacingPHT 该用户已被删除
63#
发表于 2009-6-17 11:47 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

64#
发表于 2009-6-19 21:09 | 只看该作者
本帖最后由 ic.expert 于 2009-6-20 13:22 编辑

第一编没看懂,又看了两遍,看明白点了,大侠水平很高,发言很精彩。最近事情比较多,没来及看大牛留言。实在不好意思:〉

我说说自己对TBR的理解。我是搞Arch的,还是从Arch的角度说吧。
1。从Arch上看,我们要问使用TBR代替IMR的好处是什么?回答:有可能节约一些BW。
2。那么节约的哪里的BW?回答:首先,由于tile-size Framebuffer  on-chip,所以节约一些Framebuffer 的BW,其次,由于TBR通过Deferred Rendering进行Reject Invisible Fragment,从而节约了一些Texel Load的BW。

由此,我们可以看出,只有当屏幕上Primitive之间发生遮挡关系时候,TBR才会大显神通。对于Postprossing这种纯粹的Image-based Rendering应用来说,并不能体现TBR的优势。

而,对于Pass之间存在RAW(Read after Write) Dependency的这种应用来说,TBR也不可能在一个Pass就把事情干完,也会分很多个pass。实际上,这种分pass的行为可以理解为,每个Pass的开始或是结束都是Pixel之间同步操作所需要的一个Barrier。(我之前想说的那个“相关”,是在一个Pass内所有Fragment之间相关:〉)所以,对于楼上大牛的例子来说,TBR处理流程和IMR是一样操作的,IMR有几个Pass,TBR业同样有。对于BW来说,TBR上除了Vertex在Traingle Setup和Rasterization之间会暂存到Video Memory以外,也不会有其他任何额外的BW。这些Vetex数量很少和深度复杂度引起的Texel Load浪费来说还是稍很多的。

所以,我感觉TBR还是有一定优势的。尤其在深度复杂度很高的情况下。不过碰到Pass之间有RAW(Read after Write) Dependency这种相关性的话,那也是像IMR一样要乖乖的Multipass的。



最后关于“如果gpu被设计成resolve的时候必须idle”,我也不是很理解,是说Graphics Pipeline Context Switch实时性么?DX11对Graphics Pipeline Context Switch的实时要求是很严格的。

不过我可以肯定地,TBR上,Shader和ROP也是可以Pipe起来的,这相当于一种异步流水线。对于ROP来说,我们需要两个TIle-buffer,以便通过乒乓操作来隐藏延迟。
回复 支持 反对

使用道具 举报

65#
发表于 2009-6-20 13:18 | 只看该作者
还有一点,比如 www.cs.utexas.edu/~johnsong/publications/irregular_z-buffer.pdf  这种机制。

只能用TBR处理才会更加高效:〉不然在IMR模式下,光是替换Rasterization所需要的Sampling Pattern就需要花上不少的代价。这也是LRB进行可编程光栅化的优势之一。
回复 支持 反对

使用道具 举报

RacingPHT 该用户已被删除
66#
发表于 2009-6-20 16:25 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

RacingPHT 该用户已被删除
67#
发表于 2009-6-20 16:28 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

68#
发表于 2009-6-20 17:17 | 只看该作者
本帖最后由 ic.expert 于 2009-6-20 17:44 编辑

回复楼上大牛的发言。

就我了解得情况,乒乓机制在TBR里面还是比较普遍的。比如PVR,在他们的GPU内部有3个Depth-buffer呢,并且因为Tile之间是没有耦和关系的,所以从Local Memory到Video Memory传输tile的时候,GPU也可以运行Shader。


还有,IZB难道不能减小Shadow map的复杂度么~~ 不然程序员要被累死了~~其实Computer Shader还是比较适合实现IZB的,不过性能要好好调,但是至少Shadow map的尺寸有保证了。

希望GPU还是能够更加Smart一些,而这种Smart是需要更加有效的(保扩更灵活和更快以及更小的功耗)体系结构来支撑的,毕竟就算是通用图形处理器,也不是通用处理器。
回复 支持 反对

使用道具 举报

RacingPHT 该用户已被删除
69#
发表于 2009-6-20 20:59 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

70#
发表于 2009-6-20 21:38 | 只看该作者
果然是大牛,没办法糊弄。对,PVR的确是为了加速OIT而设了3个Zbuffer :〉而且和乒乓没有关系,比起Z3,PVR的这个放案更像是一种“基于硬件的深度剥离”……

其实我想说的是乒乓,就是一个TIle size的frameBuffer用来跑PS,另一个TIle size的frameBuffer用来和Video Memory交换数据,而交换数据的那个tile是已经完成全部PS的Tile。我现在的GPU Arch就是这样,用两个Tile的Local memory做乒乓,从而避免等待。

恩,反正为了实现一个Shadow map,IZB这种方案对GPU体系结构的影响还是很大的~~所以我才比较感兴趣。不过现在GI的趋势很明显,以后要有时间看看GI了,现在OGL和D3D这种20年前的流水线看得脑子都木了…。还有我想请教一下,大牛对于DX11 TS的看法。我没什么概念,只是感觉TS的细分还是不够高,如果能做到Reyes那种级别就好了……。
回复 支持 反对

使用道具 举报

RacingPHT 该用户已被删除
71#
发表于 2009-6-20 23:44 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

72#
发表于 2009-6-20 23:57 | 只看该作者
恩,有效地Tile SIZE会降低一倍,但是没有办法~~~ 层次化存储机制就是要用片上的Size来规约访存时间。

Reyes的确是在Vertex级别上来做Shading的。楼上大牛说的很精彩,4*4和现在D3D这种Quad级别的lod计算是一对够很完美的搭档~~ 估计DX11可能会成为一个比较经典的Graphics Pipeline……
回复 支持 反对

使用道具 举报

73#
 楼主| 发表于 2009-7-2 22:56 | 只看该作者
在 AMD 的 Stream GUI 里(http://developer.amd.com/gpu_assets/Stream_Computing_User_Guide.pdf),关于 LDS 的使用有如下的描述。

Local Data Store (LDS)
The LDS is a write-private, read-public model: a thread can write only to its own memory space but can read from the memory space of any thread in the same group. This model is for the ATI Radeon HD4870. The constraints of the current LDS model are:

1. All read/writes are 128 bits and 4 dword aligned.
2. Writes are statically specified at compile time.
3. Reads are dynamically specified at runtime.
4. There is an inverse relation between group size and LDS size.
5. The largest group size is 1024 threads, with an LDS size of 4.
6. The largest LDS size per thread is 64 dwords, with a group size <= 64.
7. The absolute addressing mode forces all wavefronts to write to the memory allocated to the first 64 thread IDs. Thus, all threads with the same ID modulus 64 write to the same location.
8. Data can only be shared within threads in a group.
9. Memory accesses outside of the thread group result in undefined behavior.


The LDS also has a useful keyword call feature: _neighborExch on reads, which performs a 4x4 transpose within a four-thread neighborhood. This means all threads that have tID % 4 == 0 get x values from the 4 threads, tID%4==1 get y values, etc. Figure C.2 illustrates this.



Shared Registers

Shared registers are a method of sharing data at a lower level than the LDS. The LDS shares data at the group level, but shared registers share data at the wavefront level. The shared registers are unique to the index of a wavefront and share data between wavefronts; this enables vertical sharing between all the wavefronts that run on a SIMD. This feature allows sharing between groups; however, one constraint is that shared registers only guarantee atomicity during the same instruction.


这里提到的 group 似乎就是相当于 CUDA 里的 thread block 了。
回复 支持 反对

使用道具 举报

74#
发表于 2009-7-2 23:42 | 只看该作者
对啊,怎么了?
回复 支持 反对

使用道具 举报

Christ2002 该用户已被删除
75#
发表于 2009-7-3 15:26 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

76#
 楼主| 发表于 2009-7-12 11:19 | 只看该作者
集成电路的进步本身就是增加晶体管数量来提高性能,任何所谓的架构效率提升就是增加更多更多的晶体管。
回复 支持 反对

使用道具 举报

77#
发表于 2009-7-15 22:31 | 只看该作者
ATI的显目如果不在功耗上改进点,光凭频率和显存回头会出现P4那样的悲剧
我是鸟,随便说说
回复 支持 反对

使用道具 举报

piepie628 该用户已被删除
78#
发表于 2009-7-16 10:44 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

79#
发表于 2009-7-16 11:25 | 只看该作者
增加晶体管/shader是必然的,也是最直接提升性能的方式之一
回复 支持 反对

使用道具 举报

80#
发表于 2009-7-18 00:07 | 只看该作者
rv830 800 sp
rv870 1600sp
R800 3200sp
据说ati曾经设想
rv830 1000 sp
rv870 2000sp
R800 4000sp
但由于某公司的巨雷工艺 只得作罢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

广告投放或合作|网站地图|处罚通告|

GMT+8, 2025-8-28 20:38

Powered by Discuz! X3.4

© 2001-2017 POPPUR.

快速回复 返回顶部 返回列表