POPPUR爱换

标题: 显卡核心频率和显存频率、显存大小之间的关系! [打印本页]

作者: hjlali    时间: 2010-12-29 18:49
标题: 显卡核心频率和显存频率、显存大小之间的关系!
也可以说成是:“核心带宽”(暂且这么说吧)和显存带宽的关系,显卡本身存在瓶颈吗? 我们知道,CPU和内存之间存在一个前端总线带宽和内存带宽的关系,选购的时候只要让前端总线带宽和内存带宽匹配就好。
那么,请问GPU和显存之间又存在什么关系呢?
以这个显卡来举例:http://detail.zol.com.cn/169/168180/param.shtml
显卡参数:核心频率688MHz,显存频率1736MHz,显存位宽512bit
由显卡的数据可知,显存的带宽约是108.5GB/s≈1736MHz×512bit÷8bit/Byte。那么请问,每秒钟108.5GB的数据由谁(哪个部件)负责执行处理?是GPU吗?只有688MHz核心频率的GPU带宽有108.5GB/s吗?
GPU的“核心带宽”如何计算,是核心带宽=核心频率×核心位宽吗?

GPU-Z和EVEREST都看不到核心位宽,请问哪个软件可以看得到核心位宽?
一般厂家只表明显卡的显存带宽有多大,但却没有指出GPU是否能够处理这么大的带宽数据。。。那么一味吹嘘这个显存的速度快,其意义到底有多大?值得商榷。

假设GPU的速度跟不上显存的速度时,请问CPU是否也会协助GPU去处理一部分数据呢?
多大的显存带宽配多大的GPU比较合适,显卡的这些技术参数到底是个什么关系呢?请硬件高手和电脑大侠指点一下,谢谢!



作者: hjlali    时间: 2010-12-29 18:50
这里高手多,沙发暂时自己坐下,期待高人回答。。。一直没弄清楚的问题。
作者: Edison    时间: 2010-12-30 14:16
1 个 flop 的带宽至少是 1 个 word,在单精度下 1 个 word 等于 8 byte,因此一个 32-bit flop 所需要的带宽是 32-bit per cycle 或者说 8byte per cycle。

以 GTX 580 为例,单精度性能是 1.544 TFLOPS,那么它所需要的内存带宽理论上就是 1.544T/s * 8byte per cycle = 12.352 Tbytes/s,相当于它显存带宽的 67 倍左右。

不过在实际的架构实现时,架构师已经考虑了带宽墙的问题,首先是每个 SM 都有 32k 个 32-bit 寄存器,每个 SM 的寄存器堆带宽(一定程度上也取决于 load / store unit 数量)基本上就能满足各个 SM 的近程带宽需求,然后是 shared memory,这部分带宽也是类似于寄存器堆,再往下就是 L2 R/W cache,然后才是显卡本地内存,当然再往下还有 PCIE、系统主内存、硬盘等。

这样的层次化存储设计其实在多年前就是这样,楼主所说的内核不能吃光内存带宽问题在现实中其实是完全相反的情况,但是处理器架构师使用了各种技巧来缓减了内存带宽的需求。

作者: hjlali    时间: 2010-12-31 15:46
谢谢楼上的,你太专业了,能否简单易懂点哈。
作者: panjanstoneborg    时间: 2010-12-31 20:43
本帖最后由 panjanstoneborg 于 2010-12-31 20:44 编辑

简单说来就是gpu要的带宽越高越好呗,但是引入了层次化的存储器结构,可以减少这种需求(定性的看)
凡事都是性能和价格的折衷嘛

作者: hjlali    时间: 2011-1-4 09:49
谢谢楼上,希望能有更全面的解释。
作者: ddpeng    时间: 2011-1-6 21:03
hjlali 发表于 2011-1-4 09:49
谢谢楼上,希望能有更全面的解释。

大概解释一下Edison的话
实际上GPU核心需要的理论带宽远大于显卡板载的显存所能提供的带宽。但是为了让现在的显卡核心满足现状,也就是能在现在能提供的显存带宽下合理工作,设计者们在显卡核心内放置了一些缓存,比如32K的缓存,768K的缓存等等。这些缓存离核心比板载的显存更近,带宽也更高,暂时能够满足核心对数据的需求。于是就给带宽比较低的外部存储区域提供了缓冲时间和空间。

就好像路网建设,高速路连接的肯定不是路网末梢,而是各种主干道,主干道连接次级道路,次级道路连接社区道路,社区道路连接的才是各种各样的最终行驶停放空间,车速也一样,高速路的最快,主干道的次之,以此类推(此处不考虑那些不遵守交通规则,在乡间小路上开200Kmph的驾驶狂人)。如果所有的车都走在高速路上,那就变成停车场了,大量的车还是在周边路网中行驶的,只有特别情况特别需求的才会行驶在高速路上。

嗯,高速路相当于GPU核心的缓存,而周边道路相当于次级缓存,包括显存、内存、磁盘、磁带、光盘等等。

并且还有一些更聪明的人会设计一些编码来对这些管道中的数据进行压缩,也就相对的扩充了各级存储带宽。

作者: ziege0445    时间: 2011-1-10 22:35
LS的解释有点意思,学习了
作者: eDRAM    时间: 2011-1-15 19:26
本帖最后由 eDRAM 于 2011-1-15 19:26 编辑
Edison 发表于 2010-12-30 14:16
1 个 flop 的带宽至少是 1 个 word,在单精度下 1 个 word 等于 8 byte,因此一个 32-bit flop 所需要的带宽 ...


1T的单精度计算量就需要1TB/S的带宽,我原来还以为显卡对带宽的需求主要是看TMU的数量和频率,现在总算明白了。
作者: panjanstoneborg    时间: 2011-1-15 20:54
Texel fetch也要费带宽的吧,所以才有缓存。不过fetch过来也是计算哈
作者: jista    时间: 2011-1-15 21:56
学习了  ,谢谢两位
作者: gzeasy2006    时间: 2011-1-16 20:41
目前的GPU想要大带宽的话只有选择RAMBUS的TBI内存子系统了,最高带宽可以达到1TB/s
作者: Edison    时间: 2011-1-16 23:18
rambus 难以采购,不太可能会引入。
作者: R620    时间: 2011-1-22 15:41
Edison 发表于 2011-1-16 23:18
rambus 难以采购,不太可能会引入。

主要是RAMBUS不开放显存控制器的IP
作者: Edison    时间: 2011-1-22 15:50
R620 发表于 2011-1-22 15:41
主要是RAMBUS不开放显存控制器的IP

“开放”呀,只是要授权费而已。

作者: G81    时间: 2011-1-23 09:55
Edison 发表于 2011-1-22 15:50
“开放”呀,只是要授权费而已。

这个NV可以考虑的呀,授权费要多少?
作者: gzeasy2006    时间: 2011-1-23 17:44
Edison 发表于 2011-1-16 23:18
rambus 难以采购,不太可能会引入。

可以指定厂家生产啊~~~就是成本会高一些。
作者: eDRAM    时间: 2011-1-24 12:23
panjanstoneborg 发表于 2011-1-15 20:54
Texel fetch也要费带宽的吧,所以才有缓存。不过fetch过来也是计算哈

任何形式的缓存都是为了解决延迟滴~~对带宽墙的问题应该帮助不大

作者: panjanstoneborg    时间: 2011-1-24 19:56
eDRAM 发表于 2011-1-24 12:23
任何形式的缓存都是为了解决延迟滴~~对带宽墙的问题应该帮助不大

原来是这样,学到了,谢谢大大
作者: R620    时间: 2011-1-27 17:45
GDDR5的延迟太高了,这个就要看NV怎么消化掉
作者: R620    时间: 2011-1-27 19:10
想问一下,GPU的纹理填充率会受限于显存带宽吗?
作者: Edison    时间: 2011-1-30 16:41
R620 发表于 2011-1-27 19:10
想问一下,GPU的纹理填充率会受限于显存带宽吗?

像素填充率会受限于内存带宽,纹理填充率影响相对少一些。

作者: R620    时间: 2011-1-31 22:52
Edison 发表于 2011-1-30 16:41
像素填充率会受限于内存带宽,纹理填充率影响相对少一些。

这么奇怪啊?我还以为纹理填充率会受限于显存带宽,因为TMU单元会比较消耗显存带宽,像素填充率因为要用到流处理器的关系所以不会受限于显存带宽,看来老观念要改了
作者: devco1982    时间: 2011-2-23 13:48
3楼解释很专业,7楼解释很易懂,GZ确有高人。
作者: 32nm    时间: 2011-3-22 19:43
Edison 发表于 2011-1-30 16:41
像素填充率会受限于内存带宽,纹理填充率影响相对少一些。

不是说HSR之类的技术可以减少对显存带宽的占用吗?
作者: xianhe10816    时间: 2011-3-25 15:11
希望能有更全面的解释。
作者: Edison    时间: 2011-3-25 16:41
32nm 发表于 2011-3-22 19:43
不是说HSR之类的技术可以减少对显存带宽的占用吗?

减少不等于不需要占用。
作者: amdiyer    时间: 2011-4-3 20:42
Edison 发表于 2011-3-25 16:41
减少不等于不需要占用。

能给解释下究竟有哪些东西放在本地显存里,之后哪些东西会放到TC 或HM的主内存里?

作者: Edison    时间: 2011-4-3 21:18
amdiyer 发表于 2011-4-3 20:42
能给解释下究竟有哪些东西放在本地显存里,之后哪些东西会放到TC 或HM的主内存里?

需要写的 color buffer、z-buffer、rt 都会放在显存里,溢出就会放在系统内存里。

TC 本质上就是显存。

作者: amdiyer    时间: 2011-4-3 21:32
Edison 发表于 2011-4-3 21:18
需要写的 color buffer、z-buffer、rt 都会放在显存里,溢出就会放在系统内存里。

TC 本质上就是显存。 ...

TC出来的本质上即是显存,那驱动是否会左右数据存放的位置呢。比如将小幅影响运算速度的数据优先置于TC中。
作者: Edison    时间: 2011-4-3 23:40
我想 GPU 会按照一些简单的存储器局部性原则来放置最近被使用的数据在 TC 里。
作者: fn109    时间: 2011-4-6 16:23
提示: 作者被禁止或删除 内容自动屏蔽
作者: kike-2001    时间: 2011-4-7 20:29
提示: 作者被禁止或删除 内容自动屏蔽
作者: jickson007    时间: 2011-12-3 21:45
百度了N久 终于看到了我想知道的问题答案 我和楼主有相同的疑问  蓝精灵管理员N人也  可以讲解下 显卡的相关工作流程  最好是图解的那种 我一直在想显存带宽这么的大 其他东西不是会成为瓶颈吗 原来它自己还是瓶颈 我还想知道 就是在比如玩尘埃3这种游戏的时候 通过显卡传输到显示屏的数据流量大概是多少每秒 这个量应该不会很大吧 显存现在普遍也才2G啊




欢迎光临 POPPUR爱换 (https://we.poppur.com/) Powered by Discuz! X3.4