开贴讨论显卡技术- Let´s talk about GPU
第一次发原创。3D技术也不是很了解,只是从玩家角度讨论。大家多指正。D9之前的A和N卡基本上没有太大区别。大家都是比拼规模和频率。频率好理解。就是越快越好。规模就是拼的像素和顶点流水线。。一般像素流水线比较重要。那时候的高端一般16条像素流水线。有一点要说明的是。每个像素流水线由几组PSU(像素着色器)+TMU(纹理映射单元)+ROP(光栅化引擎)组成。早期的比例是1:1:1
D9后期A家出了PSU对TMU3比1的黄金比例架构。以至于某些新游戏中,A卡8条像素流水线可以发挥24条流水线的作用。造成中端可以直接藐视N卡高端。。:P
2007年是显卡技术突飞猛进的一年。D10取消了像素和顶点流水线的概念,提出了统一渲染架构,即Unified Shader。A家和N家都是使用流处理器(SP)来实现统一渲染架构的。
D10标准的发布是N家和A家和设计理念的分水岭。主要在于每个SP的ALU设计。N家的卡开始走1D的标量化的路线。而A卡依然延续4D/5D的矢量架构。造成的结果就是A卡的规模成倍与N卡的规模。而N卡却凭借较高的shader频率依然取得性能上的优势。现在看来A卡的处境就是空有一身武艺,无法得到发挥。矢量架构需要驱动,游戏多方面的优化才能发挥效能,否则就只能发挥1/5之一的效能。现在的38系列的号称有320个流处理单元。每个SP有5个。但无法发挥的话就只有64个能起作用,相当于N卡的64个SP。而G80却有稳定128个SP全速运行。再加上变态的shader频率。所以极端情况下会比A卡快两倍以上。
近期将发布的下一代A卡中端RV770据说将SP提高到了800个。这样的话即使最坏情况亦能藐视G80了,CHH测试结果是3dmark06成绩20000左右,接近或超过了现在的双芯3870x2。不知道n家的Gt200是怎样规模,有空再研究了。。
补充一点
D9老显卡也是4D的。这样看来。G80相当于128/4= 32管的规模。38系列是硬生生的64管。。。不过现在看来N卡的设计是有前瞻性的。GPU空前强大的今天,电影画面一般的3D游戏也许不远了
IGN最近采访了Crytek的开发人员,他们为IGN的编辑作了CryEngine 2新特性的技术演示。Crytek的Harald Seeley介绍说,CryEngine 2和上代相比在各方面都有大幅提升,原生持DirectX 10 and Vista, 重写了多线程相关的代码以支持最新的多核处理器,在上代基础实现了加强后的物理系统,增加了全新的动画系统用以无缝结合实时和预先合成的动画,更新大量C ++代码和LUA脚本代码。但最重要还是全新的,接近真实照片质量的实时渲染器,它将提供全动态的HDR光照,柔和阴影,次表面散射,环境光吸收等特性,而所有这些特性将实时生成。视频 http://www.jz-life.com/watch?v=mct3FQwooOG
[ 本帖最后由 thinkpod 于 2008-4-26 20:57 编辑 ] ;) $送花$ 好显卡还得好U和好内存带动才行啊 GPU 还有一个广阔的前景就是进行高速并行的通用计算。 用在游戏就是可以进行物理计算,将CPU进一步解放出来。A家N家和intel 现在都在积极尝试。不久的将来,也许3d游戏的画面将要发展到极致。而物理引擎渐渐成为热点。在游戏中,你可以击碎你看到的一切,想想一下一座高楼在你面前土崩瓦解的效果。。。也许到那个时候,俺已经对游戏失去兴趣了。。 原帖由 crazymoon 于 2008-4-26 21:07 发表 http://www.dolc.de/forum/images/common/back.gif
好显卡还得好U和好内存带动才行啊
个人觉得 3dmark2006 三项指标基本一致就ok了
图形两项都能超过5000的。至少要弄个Q6600超3G 9800GX2
Q66003.8G
3DMARK06
203×××分
[ 本帖最后由 crazymoon 于 2008-4-26 21:33 编辑 ] A卡看来是不打算追求单卡王座了。转而提供性价比高产品。而且N卡平台化也成问题。好像以前有过intel不让自家cpu在N家芯片组超频的问题。N家单卡在强,架不过A家卡多啊。哈哈。A卡以前移动平台赚得盆满钵满,对DIY市场太不重视了,大家买卡基本上都是直接奔N家去的。可惜N家没有pp的ruby代言啊
————以下纯属猜想——————
06 2w分,RV770出来拿9800GX2 一半的价格轻松达成啊。。不过马上要出3dmark vantage了。众显卡又要开始被虐了。。。
[ 本帖最后由 thinkpod 于 2008-4-26 22:03 编辑 ] 这样的帖子有意思,我支持你$握手$
发几个游戏的新特效。COD4 全部支持。太强悍了
:P值得玩味的TMU
先看看G80的TMU架构[ 本帖最后由 thinkpod 于 2008-4-27 21:50 编辑 ] 再看看 3800系列的
[ 本帖最后由 thinkpod 于 2008-4-27 21:53 编辑 ] 从D10开始 N家显卡也开始搞 SP大于TMU的架构了。不过比较保守。G80采用的是2比1的架构。即128个SP对应64个TMU。但是每个TA数量只有TF的一半,32个。这一点在G92上得到了改善。G92中SP缩减到112个,而TA和TF都是56个。因此G92的纹理处理能力达到了G80的两倍。一定程度上弥补了SP的不足。 反观ATI,在搞了1比3尝到甜头之后,将SP比TMU的比率进一步加大到4比1,这样3800系列就仅仅只有64/4=16个TMU。造成纹理填充率十分低下。一定程度上制约了38系列的性能。RV770依然会延续4比1的架构,但是TMU至少会提升到32个。如果真的是800SPU那么就是800/5/4=40个TMU。
Shader 引爆显卡的威力(1)!!兼谈3D基础知识。讲错了的话专业人士多指正啊。。
3D程序当中大量的运算都是通过类似矩阵的方式完成的比如 定义一个T作为一个变换矩阵T*(x,y,z)=(x1,y1,z1) 就可以将三维空间的点(x, y, z)映射到 (x1, y1, z1),在这里,T就可以看作一个shader. 早期的人类很自然想到用一个C语言的程序来完成T,这就是用CPU模拟3D原理。不过如果你跑过3dmark06的CPU test就知道这个方法有多慢了。在GPU中,Shader是执行计算的单位,T在这里就被GPU以硬件方式实现了。当然还是有一定灵活性,人类依然可以使用sharder语言对shader 进行编程。 Shader以前有顶点和像素(好像还有几何)之分,现在D10取消了硬件上的区别。shader既可以用来渲染像素,也可计算顶点。完全由软件于运行时决定。这里值得一提的是像素着色器。 支持你继续为大家科普显卡技术:)
搬凳子来慢慢看$ok$
Shader 引爆显卡的威力(2) 像素着色器
回LS, 不敢说科普。俺也不是搞3D,就是综合网上的一些资料,在加上自己的理解在这瞎掰:D像素着色器的作用是用来计算一个像素的颜色。大家想想一个一个点的颜色由几个方面决定?RGB(100,100,100)是个普通的灰色点,但如果光线很强,那就可能呈现白色。如果被阴影笼罩,那就可能变成黑色。所以,可以想到颜色受环境的光线影响很大,不可能呈现本来的颜色。这些计算都要通过像素着色器来完成。D9。D10很多很酷的特效都依赖像素着色器来完成。可以说顶点的计算相对简单。以前俺有个能开管的6800,发现开不开顶点流水线,对性能影响都不是很大。而像素计算就很有讲究了。
一般来说像素计算分为算术计算,和纹理计算。算术计算由算术计算单元完成。纹理计算由纹理计算单元完成。一般来说这个比例为3比1或者2比1比较够。4比1证明有点太激进了。不过俺喜欢。。;)
顺便提提啥叫纹理计算。打个比方,如果没有纹理的话,3d的物体就只能呈现单纯的颜色。纹理或者说贴图。就是将一个二维的图贴到3D的物体表面上。这个纹理由CPU提供,并放在显存中。GPU通过一个2维的纹理坐标来定位一个像素的纹理。很显然,对于频繁的纹理操作,我们需要很大的显存带宽。并且,我们需要缓存纹理数据。
[ 本帖最后由 thinkpod 于 2008-4-29 19:13 编辑 ] 本来下了孤岛危机给新PC的,没想到在本本上玩玩还真TMMD流畅,后悔买PC了~~~~ 原帖由 kaka~~ 于 2008-4-29 20:04 发表 http://www.dolc.de/forum/images/common/back.gif
本来下了孤岛危机给新PC的,没想到在本本上玩玩还真TMMD流畅,后悔买PC了~~~~
啥本本啊。这么牛$高$ 原帖由 thinkpod 于 2008-4-29 20:21 发表 http://www.dolc.de/forum/images/common/back.gif
啥本本啊。这么牛$高$
我也想知道啥本这么厉害,我的 88GT 都玩不过来,呵呵$汗$
Shader 引爆显卡的威力(3) 从实例理解像素着色器
首先先来总结一下像素着色器作用就是得到一个像素的颜色!我们不妨来吧像素着色器当成一个黑盒,只关心它的输入输出。刚才说了一大堆的纹理。这就用上了,我们需要一个2D的纹理坐标值。某些情况下我们还需要一个输入颜色值。这个颜色值是由顶点着色器传过来的。输出就很简单了。就是一个颜色值。如果一个顶点着色器输出了两个颜色和三个纹理坐标,那么Direct3D将会按每个像素计算两个颜色和三个纹理坐标并且把它们把它们输入到像素着色器。
某个D3D 的 像素着色器 输入输出结构如下
struct PS_INPUT
{
vector c0 : COLOR0;
vector c1 : COLOR1;
float2 t0 : TEXCOORD0;
float2 t1 : TEXCOORD1;
float2 t2 : TEXCOORD2;
};
对于输出,像素着色器输出一个单一的计算过的该像素的颜色值:
struct PS_OUTPUT
{
vector finalPixelColor : COLOR0;
};
有了输入我们就可调用一些shader语言提供的函数操纵GPU,来完成输出了。tex2D 就是一个简单的例子。用来进行纹理的2d寻址。text2D返回一个纹理坐标对应的颜色值。
现在我想各位应该渐渐明朗了。Pixel shader 起到了一个颜色变换作用。Pixelshader 位于顶点着色器之后。完成像素的光栅化操作。一条典型的像素流水线里面包含了多个Pixel shader, TMU 和 ROP 。
典型的PS操作是通过tex2D得到一个颜色值->然后算啊算啊->最后输出一个颜色值。所以我们应该认同,算数运算比纹理运算要重要的多。从书上看到一个凹凸贴图的算法如下
1)tex2D
2)2个normalize运算
3)一个saturate 运算 // 不懂啥意思
4)求最小值,输出color
[ 本帖最后由 thinkpod 于 2008-4-30 21:03 编辑 ]
下面几期预告。
1。拾遗,顶点着色器2。革命,统一渲染架构
3。G80,你凭什么强大
4。我拿什么拯救你,3850/3870
5。如果还有时间,还想研究一下怎么实现反锯齿
欢迎大家参与讨论啊。:P 长见识了
拾遗,顶点着色器
接着写。希望大家喜欢看。呵呵发现一张好图,基本上能说明显卡的工作原理了。先贴一下
继续聊顶点着色器
上图可以看到一个完整的3D处理包括几何处理,和光栅处理。像素着色器就是光栅处理的核心。而几何处理就是主要依赖顶点着色器。上图还说明一个问题。就是显存的作用,包括存放几何数据。纹理数据。Framebuffer 用过汇编的应该都很熟悉吧,就是直接写屏的时候用的那个内存区域。以前2d显卡的显存都是用来干这个的。当然FB越大分辨率就越高。看来显存的用途真是很大啊。所以多多益善。又扯远了。。。继续聊顶点着色器。3D和2D最大的不同。就是物体的外形随视角的变化而发生变化。如果做不到这一点。就不能称之为3d程序了。。3D的物体虽然看上去远近大小各不相同,但毕竟有个客观的实际大小。这就是它的几何数据。然而,我们是无法直接应用这个实际大小的。因为我们在游戏不可能一个地方呆着不动吧。狙击别人也要时刻动动鼠标不是么。。这就带来了视角的改变。从而引发几何变换。
3D程序是用顶点来抽象几何数据。 顶点有很多属性。这些属性都是用来参与顶点着色器的运算的。顶点着色器的输入一般有位置,法线,大小,颜色,纹理坐标等等。输出一般有位置,大小,颜色,纹理坐标等等。。顶点着色器没有访问存储器的界面。因此不会访问纹理的颜色数据,而只是对纹理坐标进行变换。
[ 本帖最后由 thinkpod 于 2008-4-30 22:37 编辑 ] 楼主跟踪一下nv的CUDA吧。通用科学计算,500欧的显卡等价16个处理器的并行计算机。 原帖由 moudy 于 2008-4-30 23:10 发表 http://www.dolc.de/forum/images/common/back.gif
楼主跟踪一下nv的CUDA吧。通用科学计算,500欧的显卡等价16个处理器的并行计算机。
哈哈,这个有时间一定会研究。不过流处理俺就更外行,还得找点基础的东西补补课。
革命,统一渲染架构 ---- 纷争!
虽说都是干IT的,但硬件设计师跟软件设计师似乎总是有点难于沟通。硬件设计在设计GPU的时候会一厢情愿认为软件会如此这般的指挥GPU有效率的工作,而实际上并非如此。微软在这里起了个很好的作用,颁布了一个D3D标准让软硬件都来遵守。一方面令软件开发更为方便,另一方面另硬件上的优化有章可循。微软何以能做到这一点,因为微软除了钱多以外,还很多软硬件都通的全才。俺也有接触过一位岁数很大的微软fellow。很牛很牛。中国IT界缺少的就是这样领军人物。。。靠。又扯远了。。、话说D3D本身已是在与时俱进的。d9初期。顶点流水线的多少对游戏性能影响不是很大,基本上像素流水线的规模决定显卡的性能。。这样6顶点16个像素流水线的显卡到了D9后期就显得捉襟见肘了。因为新游戏的3d模型越来越复杂,对顶点计算的要求越来越高。另一方面。顶点计算和像素计算也有很多相似的地方。
这就为二者统一提供了动机和可能。随着硬件的不断发展,计算的模型也在不断变化。像素计算和顶点计算的区别在D10当中越来越小。更像是普通流水线上不同的stage 问个问题,我的solidworks软件无法开启realview功能,是不是因为显卡不支持?移动ATI1400卡
革命,统一渲染架构 ---- 我不懂你,几何着色器
D10提出了一个新东西 几何着色器。这个东西目前性能据说比较差。A家的卡支持Tessellator技术。这个是从xbox360上继承下来的,可以替代GS一部分的的功能。N卡就没这个东西了,只能用GS---------------以下是网文--------------------------
" 在显卡的工作流水线中几何着色器工作在顶点与像素着色器之间。当显卡中的顶点着色单元生成顶点信息之后,就会将这些结果交给几何着色器来构成更为复杂的几何图形,最后交由像素着色器来为这些几何图形添加各种材质。
Geometry shader最重要的工作就是接点,将顶点之间用线连接起来。例如,当Geometry shader拥有两个顶点的信息时,它就可以将两个点连接起来组成一条线。通过这条线可以绘制其他延长线上的点。而通过连接三个顶点就可以绘制出一个三角形。最后通过计算延长线上的点,就可以绘制出更为复杂的几何图形"
页:
[1]
2