POPPUR爱换

 找回密码
 注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

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

R800和GF100的缓存层次结构对比

[复制链接]
41#
发表于 2010-4-9 20:35 | 只看该作者
是该有个人们的教材,不过假设有大多数人也丝毫不去关心这类东西
回复 支持 反对

使用道具 举报

42#
发表于 2010-4-9 20:44 | 只看该作者
说一千道一万,费米的功耗天生就是个杯具~
回复 支持 反对

使用道具 举报

43#
发表于 2010-4-9 21:14 | 只看该作者
我根本就不明白这是什么。。难道就是肥米很耗电很热的原因吗?
回复 支持 反对

使用道具 举报

44#
发表于 2010-4-9 21:23 | 只看该作者
路过帮顶
回复 支持 反对

使用道具 举报

45#
发表于 2010-4-9 22:11 | 只看该作者
fermi做为微构架肯定是很猛的,但是做为产品的gtx480/470就不是了。

gpu领域的换代速度是1年到18个月。amd的rv870比fermi的实际产品早了8个多月,也就是说,过几天才正式上市的480/470做为旗舰,在性能没有巨大优势的情况下,大概4个月内就要面对amd的nextgen产品。

如果tsmc的32nm没有取消,nV恐怕会付出极大的代价。现在各种消息说amd会用40nm制程推出一个半代构架。保守估计,图形领域赢过nV没有问题。如果按流言所说前端大改,后端不变,gpgpu这个遮羞布还能不能保住也是个问题。而即使amd不发布任何新产品,rv870系列在成本上也具备优势,用到tsmc的28nm ready问题也不大(但是将无法扩大市场占有率)。

而fermi,在这么巨大的规模下扩张会很困难。缩减规模,在单位晶体管性能上面一样没有优势。在28nm之前nv几乎毫无办法。
回复 支持 反对

使用道具 举报

46#
发表于 2010-4-9 22:37 | 只看该作者
所谓缓存……不是摆那里就能用的……
回复 支持 反对

使用道具 举报

47#
发表于 2010-4-9 23:00 | 只看该作者
rv870的simd core的gds无法于主存产生映射关系,也就是说其容量只能受硬件限制,固定在64k
而femi的gpc可通过L1,L2与主存产生映射,实现rv870的gds,且容量等于主存。
---------------------
一个可能的操作,例如要在所有运算单元内共享某些数据,rv870要通过读主存,写gds操作,而femi只需在主存指定某段数据是共享数据即可。femi这种结构具有线性内存地址的特点,而rv870由于gds跟主存的区别是做不到这一点的
-----------------------
rv870的gds更似是一种为了实现某些标准而硬加上去的一块赘肉,可以遇见ati未来的设计会参考femi,用主存来实现gds,这样可以提高效率(当然配合read/write cache)

---------------------
当所有cache都是read/write的时候:
我有一个问题,无论femi还是rv870都有所谓的local data share,这个是用来干什么的,为什么不用主存配合L1 cache来模拟(也就是说lds的大小只受主存大小影响,但性能受L1 cache大小影响),这样可以更容易地管理及访问主存,无须顾及硬件结构。如果单单是为了顾及效率,我认为没有必要存在local data share,lds如果用主存配合L1 cache来模拟,虽然可能会出现像cpu那样访问不同大小的数据有级数差别的延时,但这正是性能划分的手段,例如L1 cache有16k 32k这样的划分。

以上愚见
回复 支持 反对

使用道具 举报

48#
发表于 2010-4-9 23:35 | 只看该作者
通用计算规模化?
回复 支持 反对

使用道具 举报

49#
发表于 2010-4-9 23:47 | 只看该作者
local data share 还是有必要的,毕竟 L1 cache 的实现成本要比 scratchpad memory 高,而且显式的片上近程存储在性能上的帮助非常大。

其实和 L1 cache 相比,L2 cache 的 R/W 实现对 Fermi 的意义要大得多。
回复 支持 反对

使用道具 举报

50#
发表于 2010-4-9 23:53 | 只看该作者
注意箭头,那才是本质区别
Asuka 发表于 2010-4-8 15:14

无非是没有L2写cache, 从图上看R800的local memory之类还占优呢
要挑战CPU这两个都差得远
回复 支持 反对

使用道具 举报

51#
发表于 2010-4-9 23:54 | 只看该作者
回复  Asuka

这么看就直观了
Register (Read/Write)

Rv870 256KB x2 ,GF100 128KBx4x4

LDS+GD ...
纳尼? 发表于 2010-4-9 21:03

rv870部分算错了,没看见simd0...19么
双核轮害人啊
回复 支持 反对

使用道具 举报

52#
发表于 2010-4-10 10:50 | 只看该作者
是直观了
GF100的先进性远超RV870毋庸置疑
Heifield 发表于 2010-4-9 22:47


貌似先进的代价很大。
回复 支持 反对

使用道具 举报

53#
发表于 2010-4-10 12:26 | 只看该作者
只是希望FERMI的512SP完整版能快点出
回复 支持 反对

使用道具 举报

54#
 楼主| 发表于 2010-4-10 15:57 | 只看该作者
也就是说AMD在执行计算(非图形)任务时是没有cache的? 如果export memory buffer只是用来合并写操作,那么它什么时候flush到DRAM中? 这个时候他会不会invalidate constant cache 中的值。如果不得话,constant cache中的值就和DRAM中的值不一致了,如何解决?
vrml 发表于 2010-4-9 16:06


constant会和DRAM保持一致,AMD没有说是怎么同步的

但是根据AMD官方的资料,Compute unit和global memory之间是没有cache的.......... 中间那段黄色的global mem cache本身就在DRAM里面....

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

55#
 楼主| 发表于 2010-4-10 16:23 | 只看该作者
看这图的话,除了缓存的大小,如果AMD把Memoryexportbuffer和GDS整合进L2实现R/W,那又能和Fermi玩了。。。 ...
纳尼? 发表于 2010-4-9 21:12



对于现在的GPU而言,片上存储器大小不是主要因素。存储器层次结构才是最重要的部分

RV870的问题在于它的存储结构依然属于比较传统的GPU形式,它的L1和L2对于程序而言是不透明的,也不能写,存取对象只能是tex。且所有片上存储器的Load、Store操作地址没有统一

严格来说,RV870的缓存不能称为缓存,叫做高速片上内存更合适,它并没有真正意义上的“层级cache”,这种架构很难适应复杂计算

GF100在GPU上首次引入了一个真正的缓存架构,L1/L2可以为任意客户端请求进行读写,内容可以是纹理,也可以是数据,PTX 2.0统一了所有片上L/S的地址,提供了真正的缓存控制指令,对应用程序透明。应该说,这是第一个能够比较顺利执行各种各样计算的GPU



顺便说一句,RV870的GPR相比GF100,仍然是比较不足的,因为5D SIMD和1D Sclar之间理论GPR需求本身就差5倍,RV870至少要保持GPR容量与SP数量呈正比,面对GF100才不至于吃亏,而从上面的数据来看,RV870是做不到这一点的。
另外,在极端情况下,即使GF100的GPR溢出,依然有L1 Cache可以补(GF100的L1延迟是非常非常短的),而RV870在GPR溢出后性能会比较悲惨。
回复 支持 反对

使用道具 举报

56#
 楼主| 发表于 2010-4-10 16:24 | 只看该作者
本帖最后由 Asuka 于 2010-4-10 16:26 编辑
无非是没有L2写cache, 从图上看R800的local memory之类还占优呢
要挑战CPU这两个都差得远
ifu 发表于 2010-4-9 23:53



RV870没有严格意义上的cache,这是它与GF100最本质上的差别

另外,从每FLOPS计算能力所分配到的片上存储器容量、带宽角度来衡量,RV870实在非常可怜
回复 支持 反对

使用道具 举报

57#
发表于 2010-4-10 17:17 | 只看该作者
fermi 的 l1 cache 在一致性的实现上也不是完全的,有可能出现 loosy 的问题。
回复 支持 反对

使用道具 举报

58#
发表于 2010-4-10 17:42 | 只看该作者
GDS 是用来实现 thread group(这是 dc 的术语,等同 opencl 里的 work group、cuda 里的 thread block)之间的同步加速,size 只有 64KB,目前为止,我所知道的只有 CAL 能使用这个东西。
回复 支持 反对

使用道具 举报

59#
发表于 2010-4-10 18:02 | 只看该作者
gf100的图,L2跟内存是连在一起的,中间的MC是怎样的?gpc要通过L2去访问gobal memory?
回复 支持 反对

使用道具 举报

60#
 楼主| 发表于 2010-4-10 18:23 | 只看该作者
学习了,另外请教Rv870的GDS是其什么作用的?从结构上看就想fermi上的L1,只不过没有与L2互联,这个为Mem ...
纳尼? 发表于 2010-4-10 17:24



简单的说,线程块间的数据共享

注意:严格的说,LDS、GDS、Shared memory都不属于cache,它们应该被叫做片上高速内存
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-14 00:11

Powered by Discuz! X3.4

© 2001-2017 POPPUR.

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