|
|
有几个问题想请教RacingPHT 和 思考:
至于thread数量,G80一共有8个TPC,每个TPC拥有两个multiprocessor,每个multiprocessor具备24个warp,每个warp拥有32个独立的thread....你可以自己算一下一共有多少个thread
可以算一下,一共有8 * 2 * 24 * 32个thread,但同时有128 个scalar process, 平均每个96个thread, 而
现代内存系统在1.35Ghz的处理器上的延迟大概是200-300个cycle
实做中shader的temp寄存器直接影响到thread的数目, 所以实际的thread数量远远达不到理论的水平。20个thread是一个实际我见到的数目。
可以解释一下为什么吗?
另 for 思考: 你引用David B.Kirk的这段话,难道你忘了这位老兄曾经给我们开的大玩笑吗? "G80 是non-unify-shader"
"但是我后来的观点“GPU不具备类似CPU那种类型的perfetch体系”,我认为依然是正确的"
我不知道什么是“CPU那种类型的perfetch体系“,能否给解释一下。但任何一种cache,遇到miss后都不会只fetch当前所需的数据,而是一整条cache-line,从而保证以后的若干request是hit.即如RacingPHT如说的texture fetch的例子。
So, 我认为无所谓"build for hit" or "build for miss", 在实作中既有尽量保证数据相关性以提高hit rate,又要有诸如multi-thread的方法来cover latency. |
|