显存速度

    显存由于其特殊性,其操作完全不同于主内存,速度也有很大差异。一般来说,缓存是不能缓冲象显存这样的位于设备内部的内存的,而前面的测试可以看出,无缓冲的内存读写速度异常缓慢。但要在计算机上执行多媒体程序,又要向显卡传递大量的数据,这又要求CPU能够快速地操作显存。这显然是个矛盾,必须解决。

    经过一些大牛研究以后,得出结论,CPU对显存的操作主要是写,只要使显存的写操作速度上去了,则多媒体程序的性能将大幅度提高。于是,Intel和AMD就提出了写合并缓冲区的方法,来加速向显存写的操作。至于写合并缓冲区如何工作,请参考Intel和AMD的相关文章。

    为了反映显存的操作速度,我们也准备了相关的测试。由于显存是不能被缓冲的,这个测试规为No Cache类,并用相同的测试函数,只是内存分配不同。下面是测试结果:

VideoMem_Tb01.gif (3826 bytes)

    最左一列指出所用的操作指令。为方便比较,我们同时列出主内存在无缓存时的速度:

VideoMem_Tb02.gif (3365 bytes)

首先,显存的读速度真的是非常慢,比主内存在没有缓存时的读速度还要慢很多。所以,如果没有十分的必要,不要在程序中读显存。其次,显存的写操作,对32位、64位和128位速度差不多,这应该是写合并缓冲区发挥了作用的原因,而主内存在无缓存时的写速度,32位操作速度仅是64位操作的一半。主内存128位写操作与64位写操作速度相同,应该是因为CPU的内存接口是64位,对不用缓存的内存地址又不能使用写合并缓冲区的原因。

    这里有一个问题是显存的速度比标称的速度要慢得多。我的机器是用的440BX,显卡是ATI Rage Mobility M1,号称是AGP 2X的,但实际上,显存的写速度比AGP 1X的标称值还略慢。在i850、i845和i845D芯片组的机器上测试,APG 4X的显卡显存竟然只有150MB/s的写速度!!??这实在是一个难以理解的现象。


Leading Cloud Surveillance, Recording and Storage service; IP camera live viewing

Leading Enterprise Cloud IT Service; cloud file server, FTP Hosting, Online Storage, Backup and Sharing

Powered by FirstCloudIT.com, a division of DriveHQ, the leading Cloud IT and Cloud Surveillance Service provider since 2003.