POPPUR爱换

 找回密码
 注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

搜索
查看: 3289|回复: 26
打印 上一主题 下一主题

RV770内部暗藏机关……

[复制链接]
跳转到指定楼层
1#
发表于 2008-6-17 22:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
不知道还有人记得去年的RV770的消息么?3亿多晶体管的小核心可以实现R600的性能,然后走多核心并联。
当然现在的RV770根本就不是那么回事,可是慢着,RV770是作为多核心架构来设计的基本主导思想是明确的,而这思想的实现不是简单的交火。
RV770内部很可能有一个接口,类似于AMD CPU上的HyperTransport那种,也就是说RV770应该能实现芯片间的直接通讯,这是不是比交火什么的高级了不少?
芯片级互连大概意味着多核心之间可以直接交换数据协调运算,但是这是否意味着各自的内存中可以存储不同的数据呢?还是能实现内存互访甚至是共享?
AMD去年曾表示MCM是趋势,但是内存互访在效率上有问题,因为同样的数据移过来移过去很麻烦的。内存共享的话布线成本不知道会怎样的高?还有环形总线怎么解决?
如果区别共用数据和各自数据是不是需要一个超大的中间缓冲?
真够玄奥的,感觉R700绝不仅仅是RV770单PCB交火那么简单。也许R800能实现MCM。
恶人查理 该用户已被删除
2#
发表于 2008-6-17 22:50 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

3#
发表于 2008-6-17 22:53 | 只看该作者
这是技术人员的工作 消费只管性能与售价 咔咔咔
回复 支持 反对

使用道具 举报

4#
发表于 2008-6-17 22:54 | 只看该作者
NVIDIA的Quadro能实现multi-GPUI内存共享技术。

D3D或者WDDM目前在这方面还不行,可能是因为lock-buffer的原因。
回复 支持 反对

使用道具 举报

5#
发表于 2008-6-17 23:04 | 只看该作者
有一点不是很明白,内存共享的作用对于纯3d渲染来说比交火的好处到底在哪里?
是否就是可以提高2卡之间的数据交换速度,从而使1+1更接近于2?
但是目前1+1=1.8的情况难道仅仅是2卡之间的数据交换带宽瓶颈造成的吗?

还有,楼上说的nv已经实现的内存共享好像数据还是要通过pcie口吧
回复 支持 反对

使用道具 举报

6#
 楼主| 发表于 2008-6-17 23:05 | 只看该作者
原帖由 Edison 于 2008-6-17 22:54 发表
NVIDIA的Quadro能实现multi-GPUI内存共享技术。

D3D或者WDDM目前在这方面还不行,可能是因为lock-buffer的原因。


NV是如何实现的?
涉及到API的部分可以对API对应的部分修改么?
回复 支持 反对

使用道具 举报

7#
发表于 2008-6-17 23:07 | 只看该作者
原帖由 四极皇霸刀 于 2008-6-17 23:04 发表
有一点不是很明白,内存共享的作用对于纯3d渲染来说比交火的好处到底在哪里?
是否就是可以提高2卡之间的数据交换速度,从而使1+1更接近于2?
但是目前1+1=1.8的情况难道仅仅是2卡之间的数据交换带宽瓶颈造成的 ...


NVIDIA、AMD目前的LDA方案在D3D下都不能实现内存共享,导致如果程序使用的显卡内存超出本地内存时候,就会出现单卡下也会出现的memory capacity-wall,需要透过4GB/s的PCIE来和系统主内存作频繁的数据交换动作,导致GPU大部分时间在等内存存取而性能显著暴跌。

显卡内存本质上是系统内存上的一个映射copy。

NVIDIA的LOD算法可能会导致更多的内存碎片出现,这个问题在NVIDIA的硬件上更容易出现。
回复 支持 反对

使用道具 举报

8#
发表于 2008-6-17 23:08 | 只看该作者
原帖由 shu0202 于 2008-6-17 23:05 发表
NV是如何实现的?
涉及到API的部分可以对API对应的部分修改么?

不需要修改亚,对程序员透明。
回复 支持 反对

使用道具 举报

9#
 楼主| 发表于 2008-6-17 23:10 | 只看该作者
原帖由 四极皇霸刀 于 2008-6-17 23:04 发表
有一点不是很明白,内存共享的作用对于纯3d渲染来说比交火的好处到底在哪里?
是否就是可以提高2卡之间的数据交换速度,从而使1+1更接近于2?
但是目前1+1=1.8的情况难道仅仅是2卡之间的数据交换带宽瓶颈造成的 ...

首先是减轻成本和功耗的压力,其次GPU直练数据交换要灵活有效的多。只是现在内存共享会使内存访问速度变得很慢,数据处理的延迟太大,而这又不能像CPU那样靠巨大的二级缓存甚至三级缓存来弥补。
回复 支持 反对

使用道具 举报

10#
发表于 2008-6-17 23:12 | 只看该作者

回复 11# shu0202 的帖子

我想说三个字:吃螃蟹
回复 支持 反对

使用道具 举报

11#
发表于 2008-6-17 23:12 | 只看该作者
原帖由 Edison 于 2008-6-17 23:07 发表


NVIDIA、AMD目前的LDA方案在D3D下都不能实现内存共享,导致如果程序使用的显卡内存超出本地内存时候,就会出现单卡下也会出现的memory capacity-wall,需要透过4GB/s的PCIE来和系统主内存作频繁的数据交换动作, ...

这个意思是说,和系统内存共享?如果是双卡之间共享的话,似乎同意也会遇到内存溢出的时候啊,因为sli或者cf的时候,2个卡的内存数据是不重复的
回复 支持 反对

使用道具 举报

12#
发表于 2008-6-17 23:19 | 只看该作者
SLI/CF的时候,纹理内存是必定重复的,从成本/性能的角度看,就是一种浪费。
回复 支持 反对

使用道具 举报

13#
发表于 2008-6-17 23:35 | 只看该作者
是啊,学习了
回复 支持 反对

使用道具 举报

14#
 楼主| 发表于 2008-6-18 23:02 | 只看该作者
现在的多GPU互联技术从效率上看是没有问题的,但是不够聪明,面对五花八门的渲染程序缺乏应对的灵活性,必须依靠驱动来一个一个优化调整。这是因为GPU之间缺乏通讯所至。另外一方面每个GPU只能管理自己的内存,因而无论内存总数有多大,对各自为政的GPU来说可用的内存就是自己眼前的这些,这无疑是很大的浪费,并且在和单GPU的较量中存在一个不利的隐患。
如果GPU之间能直接通信呢?
首先任务分配会更智能化更灵活,驱动只需要告诉GPU渲染程序的种类,GPU便能够以最佳方式分配任务和使用恰当的模式运行。这样驱动的任务就减轻了,多GPU运行的效率也更高。
其次GPU之间可以交流各自内存的数据,并且透过驱动决定内存读取的方式:各自使用自己的内存还是共享内存。
我认为AMD必定会采用这样的方式,那就是每个GPU都能够通过自己的环形总线访问另一个GPU的环形总线,从而把所有内存部分或者全部看作一个整体。
当然这样做会使数据交换过程变得复杂造成延迟和运行效率下降。关键是效率降低的程度能否被容忍或者通过有效方法加以弥补。
回复 支持 反对

使用道具 举报

15#
发表于 2008-6-18 23:08 | 只看该作者
GPU资源共享对目前AMD、NVIDIA的interconnector来说都不是问题,主要的问题是API。
回复 支持 反对

使用道具 举报

16#
 楼主| 发表于 2008-6-18 23:13 | 只看该作者
为什么必须要透过API呢?无论多少个GPU只需要让D3D把它看作是整体不行么?
回复 支持 反对

使用道具 举报

17#
发表于 2008-6-18 23:15 | 只看该作者
因为OpenGL在readback上要比D3D好多了。
回复 支持 反对

使用道具 举报

18#
发表于 2008-6-18 23:16 | 只看该作者
让两块GPU如同单GPU那样使用显存,而不是目前的SLI/CF这样的方式,说到底还是带宽和延迟的问题,芯片内的带宽比SLI/CF使用的带宽大得多,延迟也小得多。想要做出那么高的带宽和那么低的延迟,需要付出很大的代价,也许还不如搞一个大的单芯来的稳当。
不知道TSMC又没有搞过MCM,如果没有搞过,把宝押到MCM上可不是稳妥地事。
回复 支持 反对

使用道具 举报

19#
 楼主| 发表于 2008-6-18 23:21 | 只看该作者
关键是环形总线之间的数据吞吐量能否跟上。通常解决数据延迟和数据传输不同步问题有那些好方法?
回复 支持 反对

使用道具 举报

20#
 楼主| 发表于 2008-6-18 23:25 | 只看该作者
原帖由 Edison 于 2008-6-18 23:15 发表
因为OpenGL在readback上要比D3D好多了。

SLi和交火都能在D3D下运行得很好,芯片级的互连应该不是什么问题吧?硬件级别的解决方案对API依赖很大么?
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-30 19:13

Powered by Discuz! X3.4

© 2001-2017 POPPUR.

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