p8700吧 关注:5贴子:511
  • 11回复贴,共1

显存容量与位宽搭配的学问

取消只看楼主收藏回复

一楼喂度娘~


IP属地:北京1楼2024-05-22 18:22回复
    决定显卡性能的因素 现在已经不仅是游戏玩家才在意自己电脑的显卡怎么样。
      普通的电脑用户在配置电脑的时候也对显卡有了特别要求,而面对市面上纷繁复杂的显卡,了解显卡的性能也就成了一件不简单的事。
      显卡的性能是由不少因素而决定的,首先我们来了解一下显卡的简单工作原理。


    IP属地:北京2楼2024-05-22 18:23
    回复
      1、从总线 (bus) 进入显卡芯片 —将 CPU 送来的数据送到显卡芯片(GPU)里面进行处理。
      2、从 video chipset 进入 video RAM—将芯片处理完的数据送到显存。
      3、从显存进入 Digital Analog Converter (RAMDAC=数字模拟转换器),由显示显存读取出数据再送到 RAMDAC 进行数据转换的工作。(显卡现在大都已将RAMDAC集成在了显示芯片内)
      4、从 DAC 进入显示器 (Monitor)—将转换完的类比数据送到显示屏。


      IP属地:北京3楼2024-05-22 18:23
      回复
        可以看到,决定显卡的性能的首要是显卡的GPU,也就是显卡的显示核心,比如NVIDIA的GeForce FX 5900和ATI的Radeon 9800等,这都是我们熟悉的GPU名称,可以说GPU的性能直接决定了显卡的性能。


        IP属地:北京4楼2024-05-22 18:23
        回复
          其次就是显存的带宽,要保证GPU的性能得到充分的发挥就需要足够大的带宽,就像一辆法拉利,一定要在赛道上才能发挥它的威力,如果跑在乡间的土路上,我想连拖拉机都跑不过! 再次是显存的容量等等其他的因素。高分辨率的应用以及大量3D场景的渲染,需要用到大显存,因此当显存容量不足的时候,系统会自动调用内存作显存使用,然而在速度上内存当然是无法和显存相比的了,这样显卡的性能自然也就受到影响。这些因素都是依据理论得来的,显卡GPU这方面相信大家都没有什么异议,什么档次的GPU基本上就决定了这款显卡在实际应用中会有怎么样的性能,而且在购买时GPU已经是显卡的第一标志。但对于显存的位宽及容量,这些隐性的指标,就成了左右显卡性能在实际使用中的关键因素了!
          这次测试使用Athlon64平台,将在这个平台上测试显存的位宽及容量对显卡性能的影响。


          IP属地:北京5楼2024-05-22 18:25
          回复
            显存容量的意义
              显存担负着系统与显卡之间数据交换以及显示芯片运算3D图形时的数据缓存,因此显存容量理论上决定了显示芯片能处理的数据量。


            IP属地:北京6楼2024-05-22 18:25
            回复
              小知识:
                我们先来算一下我们在平时应用时所需要的显存容量,当在进行2D应用时,显存容量=水平分辨率×垂直分辨率×颜色位数/8bit,比如在1024×768×32的显示模式下,那么需要的显存容量=1024x768x32bit/8bit=3145728 byte=3.072MB,这只是2D应用时,如果是使用3D应用时,那么需要的显存容量=水平分辨率×垂直分辨率×颜色位数×3/8bit= 1024x768x32bitx3/8bit=9437184byte=9.216MB,当然,这些都这是应用时的最低需求,因此还必须有一定的显存容量来专门存放纹理数据或Z-Buffer数据,否则当显存容量被显示资源完全占用时,系统会自动调用内存作为纹理显存使用,而在速度上内存是无法和显存相比的了,这样的二次调用自然会导致显示性能下降。现在的一些主流3D游戏,材质数据、顶点数据和其他数据所需的显存容量都已经越来越大了,像一些最新的游戏,所需的材质数据十分惊人。于是在一些中低端卡上出现了高端卡会使用的大容量显存。目前显卡的发展趋势,使得显存容量的地位水涨船高,每种核心的显卡可供选择的显存容量也就多了。那么面对市面上这么多可供选择的显存容量,我们究竟需要买多大的显存容量呢?


              IP属地:北京7楼2024-05-22 18:28
              回复
                首先来看看DirectX 8上的比较:显存容量提升的显卡性能有了一些提升,并随着分辨率的提高幅度也增大,但就算是1600*1200*32的分辨率,性能提升也才只有6%。。
                你可能会说3DMark2001 SE太老了,对现在的显卡的运算和材质负担不够大,那么我们来看看3DMark03,同前面的测试一样,显存容量大的显卡仍然比显存容量小的性能有了提高,并且提高的幅度比3DMark2001 SE的测试高了一些,随着分辨率的提升幅度也随之增大。在开启4X全屏抗锯齿后,显卡性能差距不大,但把分辨率提高到1600*1200*32时,全屏抗锯齿的开启使得大显存的显卡性能优势增大,而随着分辨率的提高,更是把显存为1G以下的显卡“虐待”得不成样,在1280*1024*32时已经只有2G显卡的一半帧数,提升至1920*1660*32的分辨率时干脆就“崩溃”了,弹出一个“显存溢出”的错误对话框,根本无法运行.


                IP属地:北京8楼2024-05-22 18:36
                回复
                  显存带宽的意义
                    显存带宽是指GPU与显存之间的数据传输速率,它以字节/秒为单位。
                    当显示卡在进行像素渲染时,都需要从显存的不同缓冲区中读写数据。这些缓冲区中有的放置描述像素ARGB(阿尔法通道,红,绿,蓝)元素的颜色数据,有的放置像素Z值(用来描述像素的深度或者说可见性的数据)。
                    基本的渲染过程是:计算一个像素的的颜色值,从颜色和Z缓冲区中对应该像素的存储位置读取颜色值和Z值,然后计算出这个像素新的颜色值和Z值,计算中可能还需要与像素原来的颜色进行混合或者合成处理(这个计算还和Z值以及Alpha值有关)。一旦新的像素颜色和Z值计算完成后,新的数据就需要写回到内存中。也就是说进行一次基本的渲染操作,每个像素被渲染一次的话,就需要传送(读取32bit 颜色 + 读取32bit Z + 写入32bit 颜色 + 写入32bit Z)=128bit,即16个字节。
                    材质贴图和深度复杂性会使每个像素渲染所需要的带宽加倍。当前大部分游戏都使用了多重贴图(在每个像素上应用两层或者更多的纹理)以及双线性或者三线性过滤来达到丰富的图象细节和逼真度。纹理数据也是从同时放有像素颜色和Z缓冲区的内存中读取。
                    为了了解纹理读取所需带宽的近似值,我们可以假设每个像素应用了两层纹理,同时还采用了三线性过滤,每个像素的每个纹理在三线性过滤时会使用8个纹理样本,每个样本都是32bit。这样,每个像素一次会读取:32bit×8(纹理样本数量)×2(纹理层数量)=512bit,即64个字节的纹理数据。


                  IP属地:北京9楼2024-05-22 18:36
                  回复
                    又因为所有的GPU都会采用某种形式的高速纹理缓存,倘若高速缓存可以将必须从外部显示内存读取的纹理数据量平均减少一半(具体的情况相当复杂而且是随时变化的,不过这个假设基本上还是合理的),那么我们可以认为在双纹理和采用三线性过滤的情况下,每个像素进行渲染的时候都会从显示内存中读取平均(64字节/2)=32个字节的数据。由此可见,只有足够大的显存带宽才能带来更精细(高分辨率)、色彩更逼真(128位真彩)、和更流畅(高刷新速度)的3D画面!


                    IP属地:北京10楼2024-05-22 18:37
                    回复
                      显存带宽跟显示卡的显存速度和显存架构有关,其计算公式为:显存带宽=显存工作频率×显存位宽/ 8,因此,在工作频率一定的情况下,显存位宽的大小决定了显存带宽的大小。显存位宽(bit)即一个时钟周期传送数据的位数,位数越大,传输效率越高。


                      IP属地:北京11楼2024-05-22 18:38
                      回复
                        总结
                        1.显存容量—并非越多越好!
                          显存容量是否真的像银行账户上的金额一样—越多越好呢?从理论上讲显存容量当然是越多越好,但是我们应该知道容量越大的显存也会让我们银行账户上的金额减少得更多!所以我们就应该在性能与价钱之间找到一个平衡点,我们只需要够用就好。 2.显存带宽—对性能的影响更大
                          显存带宽的重要性即是显存位宽的重要性。从前面的测试可以看到128bit显存的显卡性能并没有达到64bit显存的显卡的两倍,这是为什么呢?
                          其实这里还要牵扯到另外一个位宽—系统总线位宽(Bus Width)的因素,因为无论显卡的显存位宽为多少bit,其系统总线位宽也只为64bit,也就是说无论显卡的内部是以何种速度在运行,它实际上都是连接在一条64bit的主干道上。因此128bit显存位宽的显卡性能也就没有像理论上那样达到64bit显存位宽显卡的两倍,但是基本上依然有30%以上的性能差距。
                          所以在价钱允许的情况下,显存位宽当然是越高越好,选择一块高显存位宽的显卡也就成了必然的事了。


                        IP属地:北京12楼2024-05-22 18:40
                        回复