POPPUR爱换

 找回密码
 注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

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

NVIDIA Fermi GF100 及 GF1XX 架构讨论

[复制链接]
41#
 楼主| 发表于 2009-10-21 14:02 | 只看该作者
游戏性能的改变幅度其实非常依赖于具体游戏以及具体的设置,不能以单个游戏而论,更何况目前没有更多的图形架构上的细节释出,所以这个问题目前是不会有可信的答案提供。
回复 支持 反对

使用道具 举报

42#
发表于 2009-10-22 13:30 | 只看该作者
你说的x86是泛指一般的high performance CPU吧。 主要就是那些有speculation和OOO的能力的. 支持X86 ISA的处理器只是其中的一部分. 我的意思是说,GPU运行单个thread的性能本来就是一般的, GPU本来就是靠并行计算来提供throughtput的,所以烂代码其实无所谓. 从你说的吃烂代码的角度看,如果衡量throughput, GPU的multi-threading不比CPU的speculation的效果差。举个简单的例子,程序A不考虑memory locality和data reuse, CPU可以prefetch, 可以speculate load, 可以OOO load, 可以上大cache, 来解决long memory latency的问题. GPU里面则可以通过multi-threading, 一旦有个thread读内存了,就切换到另外一个thread, 等memory的数读回来了,再切换回原先那个thread. 只要有足够多的threads来hide latency, 这个memory latency 根本不是问题,即使没有CPU那些tricks, GPU的throughput也照样很高. 再比如,一个烂程序有很多不必要的branches, CPU里面通过BTB和branch predictor可以把branch miss penalty降得很低。GPU虽然没有这些设计,可是GPU有很多threads, 一个thread遇到branch instruction的时候,这个thread的instruction fetch就被停掉。 如果在CPU里面这么做,pipeline就会出现bubble导致性能下降. 但是GPU有很多threads, 总是能把pipeline填满,所以这根本不是问题.

总而言之,在GPU上面单个thread的性能的确是惨不忍睹,但是如果你的CUDA程序写得好,把一个问题通过大量的并行的threads来解决,这个单个thread的性能根本不是问题.

"IMHO放到CPU上面也适用."

如果您说的CPU是x86的话, 我认为是不适用的. x86做的这么多事情, 就是为了用来吃烂代码的. 同样烂的代码放到Power, CELL之类的架构上, 一般都会变得非常糟糕, 到CUDA上则是只能说惨不忍 ...
RacingPHT 发表于 2009-10-3 15:33
回复 支持 反对

使用道具 举报

43#
发表于 2009-10-22 13:36 | 只看该作者
本帖最后由 lik 于 2009-10-22 14:41 编辑

修改: 我一开始没仔细理解你的串行部分的意思. Sorry. 你说的是那些无法并行的部分. 那部分应该是在host (也就是CPU)上执行. CUDA是一个co-procssor architecture, 不是只有GPU. GPU只负责执行CUDA kernel, 就是能并行的那部分. Host负责执行不能并行的部分. Jensen Huang在GTC的keynote上不是举了那个例子: 一个系统只有5个CPU cores或者只有500 个GPU cores都是不理想的, 而co-processor architecture比如1个CPU core+450 GPU cores才是相对更好的. 这一个CPU就是用来执行你说的那些无法并行的部分.

当然这里一来和CPU的通信就成为一个比较耗时的瓶颈.

我原来的意思就是那些CUDA kernel的single thread performance并不是很重要. Sorry for the confusion.

IPC性能估计还不如Pentium Pro. But, who cares?

其实这句话是很有问题的.
即便有无穷多个运算单元可以将并行的时间减少为0, 一个程序总有一些部分是无法并行的. 这部分决定了一个程序的最高速度.
在CUDA ...
RacingPHT 发表于 2009-10-4 21:51
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

46#
发表于 2009-10-22 14:33 | 只看该作者
嗯, 我指的是warp, 用thread在这里是不够妥当. 可能过去做CPU的SMT说thread说习惯了. 我说的情况是指一个warp里面所有的threads的branch的结果是一样的, 比如都taken或者都not taken, 那么SIMD的行为还是继续保持. 而在branch  resolve之前GPU可以运行其他的warps. 所以pipeline没有bubble. 你说的是一个SIMD warp里面的threads有不同的branch结果, 那的确是对GPU来说最糟糕的情况. 这时候SIMD变成MIMD, GPU退化成简单CPU了. 不过这种情况不多见 (AFAIK).

lik: 你说的关于thread和branch在GPU上的pipeline bubble我认为是错误的。
GPU遇到branch的时候的bubble比对CPU影响要大得多。因为SIMD的内在执行机制。

Anyway, 我个人不是一个CUDA的高手,我没有什么办法把我的 ...
RacingPHT 发表于 2009-10-22 14:09
回复 支持 反对

使用道具 举报

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

使用道具 举报

48#
发表于 2009-10-22 14:45 | 只看该作者
本帖最后由 lik 于 2009-10-22 14:47 编辑

你说得对, CUDA就是一个host+协处理器的architecture. 所谓通用计算不是说GPU一切通吃, 而是说GPU可以做除了graphics rendering之外的运算. 80%的算术在GPU上, 20%在host CPU上. BTW 我刚修改了刚才的一个贴子, 澄清了我刚才没说对的地方.

如果都是算算矩阵乘法,做做视频转码的Motion estimation, 当然不会有太多的Warp被打碎的情况.这也是GPU的拿手好戏了.

但是,作为"通用计算",又怎么可能是这种情况呢.最典型的,80%算术,20%flow control.
...
RacingPHT 发表于 2009-10-22 14:39
回复 支持 反对

使用道具 举报

49#
 楼主| 发表于 2009-10-22 15:16 | 只看该作者
如果是这样的话,reg file的copy的通信量岂不是很大。
RacingPHT 发表于 2009-10-22 14:05


同一时间依然还是存取同样数量的 register,它这里的 register file 肯定是可以做到 n 个(最多 8 个 IP 指向不同的 kernel 位置?) kernel 共用,所以看上去就像是同一个 kernel 不同 thread 一样。
回复 支持 反对

使用道具 举报

50#
发表于 2009-10-26 04:27 | 只看该作者
进来学习了,
回复 支持 反对

使用道具 举报

51#
 楼主| 发表于 2009-10-28 01:04 | 只看该作者
http://www.hpctech.com/2009/1028/332.html

2017 年他们玩的是....





大家不要忘记留意最底下的"摩尔定律"那段文字。

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

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

使用道具 举报

53#
 楼主| 发表于 2009-10-28 11:09 | 只看该作者
回复 支持 反对

使用道具 举报

54#
发表于 2009-10-30 00:45 | 只看该作者
如果是增加流处理数量呢??
回复 支持 反对

使用道具 举报

55#
发表于 2009-10-30 14:13 | 只看该作者
增加流处理器数量的话,恐怕不是很容易

NV每一个流处理器配套的东西都一大堆
回复 支持 反对

使用道具 举报

56#
发表于 2009-11-1 13:35 | 只看该作者
只希望这次能快点衍生出中低端产品
回复 支持 反对

使用道具 举报

57#
发表于 2009-11-8 21:49 | 只看该作者
也不知道什么时候能出来?
回复 支持 反对

使用道具 举报

58#
发表于 2009-11-9 03:44 | 只看该作者
從往例堆斷的話,這回Fermi中低階衍生的時間點可能和GT200轉GT21x的時間一樣會拖得久一點也說不定。
實話是中階性能競爭用的產品最需要的,或許只是GT200 class + GDDR5;
但是高階總是得要有個DX11才好宣傳....
而且multi-thread應用一開始,沒有concurrent kernel execution能力的GT200以前產品都會相對吃虧。

以結論來說還是要看DX11遊戲推行的速度;至於生產性部份,個人是不會太看壞Fermi推出中階產品的困難度。Fermi"本身"要大量生產很麻煩沒錯,但是它畢竟一開始就已經比GT200的die size要來得小。
回复 支持 反对

使用道具 举报

59#
发表于 2009-11-9 08:59 | 只看该作者
比GT200还小?

有点不敢相信
回复 支持 反对

使用道具 举报

60#
发表于 2009-11-9 11:50 | 只看该作者
比GT200还小?

有点不敢相信
66666 发表于 2009-11-9 08:59


GT200是至今为止最大的 576mm2
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-26 13:38

Powered by Discuz! X3.4

© 2001-2017 POPPUR.

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