回复 29# 的帖子
好像是专业卡才支持这个realview革命,统一渲染架构 ---- 到底哪儿不同?
US其实暗示了一个Stream Processor就 可以完成从顶点到像素的输出工作。这就说明数据流需要进行反馈,才能完成顶点,几何,像素阶段的不同操作。而以前的显卡至少都会有一个顶点单元,一个像素单元,所以数据流可以保持单向的流动。可见US 实际上是提供了一个通用的计算模型。由于以前的VS是无法写显存的。D10提出了一个流输出 Stream Output 的概念。就是将VS和GS这些光栅化以前的操作的结果直接输出到显存。用于PS阶段的最后处理。 插句话,笔记本的集成或者一般的独立显卡就不要想很流畅的做3D了, AUTOCAD 的 2D 还是可以的所以要性能的话还是要上台式机
光栅化时代终结者? 实时光线追踪前景展望
德国Saarland大学搞的。太牛了这个。。http://www.beareyes.com.cn/2/lib/200801/24/20080124385_1.htm
插播基础知识 --多线程--
这是俺比较感兴趣的课题了。。。多线程大家一定都不陌生。pthread库,搞linux的一定都接触过吧。win32下面的线程api也很丰富。这些都应用程序方面的多线程。多线程的应用程序即使在单cpu上也可以跑。这是因为操作系统本身在处理时间中断的时候或在其他从内核空间到用户空间的转换时刻。会进行线程调度,使每个线程都能得到运行。既然单cpu能够跑多线程,那我为什么需要多cpu的机器呢。或者说,多cpu的机器如何加速多线程程序的执行呢?
当今的cpu大部分都是超标量设计的,就是说一个周期可以发射多条指令。这叫做指令级并行。但这有个限制,就是并行的指令必须是同一个线程的。也就是说cpu完全不知道线程的存在,完全听从软件调配。
很自然的问题,那么我们如何实现线程级的并行呢?这就需要cpu自己内部实现线程的调度。调度的时机一般是在一个线程等待内存访问而无法继续执行的的时候。
还有一个必须的条件,就是每个线程都需要有自己独立硬件资源。独立的资源越多。硬件调度的开销就越小。因为所有共享的资源必须在调出时保存,调入时恢复。这跟操作系统调度进程的原理是一样的。还记得P4的Hypethread技术么,就是一种on-chip的MuliThreading 技术。非常cool。而现在的双核都是直接把两个独立的核心封装在一起。除了cache之外所有资源都是独立的。这种情况下,硬件调度就很简单,或许完全不需要。。据说intel下一代的cpu nehalem中。Hypethread 又要回归了。赞啊。。
GPU都是以On-chip的方式实现线程级并行的。所以对于GPU来说高效的硬件调度非常重要。因为GPU内部会同时执行几百上千个线程。Nvida 甚至认为,以后GPU的性能不由管线规模决定,而由能同时调度的硬件线程数决定。G80的gigathread技术,就将这一点发挥到了极致。 太专业了,慢慢看看$送花$