|
发表于 2010-2-8 00:01:55
|
显示全部楼层
回复 #7 refla 的帖子
感觉比较卡的WU,同时线程数大。这类任务在遇到流处理器规模庞大的显卡时,卡的感觉就会减轻,如果遇到8400GS这类显卡就完蛋了,性能急剧衰减(和流处理器数量呈非线性)。
实际上“卡”,是线程上下文切换的问题,因为让GPU在后台运算的同时跑前台图形渲染程序,肯定会不流畅,如果切换时间大于一定长度,你的眼睛就会发现。和CPU一样,GPU也可以利用上下文切换(Context Switching)来实现支持多任务(multi-taksing)操作。这个操作主要是由GigaThread线程调度器和SP单元配合实现的,当然应该离不开Shared memory,实际上是流水线效率的提升。
我个人理解是,上下文切换,就是通过线程调度器+各种临时资源的挂起能力来完成动态的线程分配,一旦某线程当前无法完成就把它挂起而不用等着,等他可以被完成了再送去其他单元进行处理。增强的上下文切换能力需要更大的Shared memory,AMD那边称为LDS(Local Data Share),更强的线程调度器,其他的我暂时想不到那么深。
再说到现在的N/A两家的产品,NV不断充实周边资源,使用更激进的架构,而AMD不断扩大流处理器规模,都是为了更好的隐藏延迟。GT200架构已经可以控制SMIT活用跳转来在实现线程在不同的sm之间进行跳跃。命令单元为multi-thread模式,能够执行Out-of-Order指令,而当处理warp命令流时则是In-Order,而根据NV架构设计师John Nickolls的介绍,实际warp中的线程也能够支持Out-of-Order。
这些观点疏漏不少,既然有人提到我也就努力说两句,不管对错全当学习了,期待有人来指教。
我开始做A饭,实际上是想通过学习,寻求A卡架构中优秀的成分 |
|