• 爱开资讯网
 
您的位置:首页 > 电脑资讯

N卡和A卡的区别

2020-06-27 20:12:35  来源:爱开资讯网

    a卡是什么?a卡和n卡的区别

      N卡和A卡两家架构问题要深究就得写一本书了。在DX9以前的时代,两家的架构主要由像素单元、顶点单元、纹理单元、光栅单元组成,一个渲染流程的所有单元绑在一起组成一条渲染管线,管线越多,性能就越强。而游戏中的指令以4D指令居多(像素有RGBA,顶点有XYZW),这些单元就被设计成了一次能处理4D指令的处理器,对于当时的游戏环境来说这种架构效率很高。但到了DX9后期甚至DX10时代,游戏中的1D、2D、3D、4D指令开始频繁混合出现,像素与顶点的渲染量比例也有了改变,原先的架构就变得效率低下了,比如一个处理单元一次能处理4D运算,当碰到1D运算时就只用到4/1的资源,剩下3/4的资源就闲置掉了,相当于效率降低了4倍。而有些游戏的像素渲染量明显多于顶点,那么这些绑在一起数量比例固定的单元就效率低下了,比如像素吃力的时候,顶点可能比较空闲,非常浪费资源。为了解决这个问题,NV和ATI都对架构进行了改进,但都治标不治本。这时候重新设计架构成为了必然,所以,从DX10时代起,两家的架构就起了翻天复地的变化。

      当两家DX10产品面市后,人们惊奇的发现,竟然是两种不同的架构。

      N卡的架构思路很简单,用强大的前端处理器把所有指令拆分成一个个1D指令,而下面所有处理单元都变成了1D单元(流处理器),这些流处理器都能当做像素和顶点单元来使用,每个单元都能独立收发指令,这样不管碰到什么类型的指令都能“一拥而上”,效率几乎达到100%的理想程度,是标准的线程级并行架构,也是追求高效率的理想架构。

      N卡的架构看上去很完美,但缺点也很明显,由于每个流处理器都对应独立的指令发射端和控制单元这类东西,体积庞大,控制单元在晶体管的消耗上占了相当大的比例,在相同晶体管数量的情况下,N卡能做的运算单元就相对少很多。在流处理器数量相对少的情况下,处理4D指令时又会显得性能不足(因为要耗费四个流处理器去处理一个指令),所以N卡的流处理器频率会比核心频率高出一倍以上,以弥补数量上的缺陷。由以上缺点又造成了另一个缺点,就是功耗巨大。

      总结,N卡架构执行效率极高,灵活性强,在实际应用中容易发挥应有性能。但功耗较难控制,较少的处理单元也限制了其理论运算能力。

      A卡方面,虽然也是采用了通用的1D流处理器做为执行单元,但采用的是指令级并行架构,每5个流处理器为一组,每组一次最大可接收一条5D指令(而N卡接收的是1D指令),在前端上就把所有指令打包成一个个5D指令发下去(而N卡是拆分成一个个1D发下去),所以A卡的架构又被称为5D架构。这样的设计可以实现高指令吞吐,能在较少的控制单元下做出庞大的运算单元,晶体管消耗也较少,所以A卡的流处理器一般都是N卡的4-5倍,理论运算能力也远强于N卡,功耗也相对要低一些,同性能的芯片面积也都比较小。

      但是,A卡架构的缺点也很明显,虽然理论上总运算性能强大,但一旦碰到混合指令或条件指令的时候,前端就很难实现完整的5D打包,往往变成3D、2D、1D的发下去了,造成每组流处理器只有3、2甚至1个在工作,几乎一半的单元浪费掉了。软件要想针对这种架构优化,必需减少混合、条件指令的出现(需要耗费程序员的大量精力),或杜绝(这是不可能的)。所以在软件优化度上A卡是处于劣势的,常常无法发挥应有性能。

      总结,A卡架构优势在于理论运算能力,但执行效率不高,对于复杂多变的任务种类适应性不强,如果没有软件上的支持,常常无法发挥应有性能。所以A卡除了需要游戏厂商的支持外,自己也要常常发布针对某款游戏优化的驱动补丁(造成A卡发布半年后,还可通过驱动提升性能的现象)。