接下来,我们来看一下经过改造后GTX 680的性能究竟如何?首先,我们来看看GTX 680风扇转速调节范围改造的效果。如图17-1、17-2可以看到,85%(改造前的大值)对应4170r/min的风扇转速,而改造后风扇转速提高到5340r/min。使用FurMark拷机5分钟后,100%风扇转速能使GPU核心满载温度相对85%转速时降低5℃左右。
在85%的风扇转速下,GTX 680拷机5分钟后核心温度高达73℃。此时核心频率已经不能运行在笔者所设定的1097MHz下了。
在100%的风扇转速下,GTX 680的满载核心温度仅有67℃,且核心频率一直运行在笔者设定的1097MHz上。
事实上,调节风扇转速还有更重要的意义。之前笔者提过,Kepler显卡的核心频率与功耗、温度、高电压密切相关。笔者把核心频率设置到1097MHz(没有使用更高频率是为了避免触发功耗上限)、核心电压设置到1.2125v并使用FurMark拷机5分钟以后,可以从核心频率的曲线上看到,当风扇转速为100%时,核心频率非常稳定地运行在1097MHz。而在85%的风扇转速下,拷机5分钟后由于温度过高,核心频率会自动下降1~2挡(一直1071MHz和1084MHz之间波动)。
接下来来看看修改功耗限制的效果。按照之前讲解的方法,笔者已经把Power Target 100%定义为250W。同时还可以用软件拉升到150%(也就是375W),而修改前大只能提升到225W。
笔者将核心、显存频率分别提升到1293MHz、7204MHz,风扇转速固定到100%(避免触及温度限),并分别在80%(相当于20 0W,图18-1)、90%(相当于225W,也就是修改前的上限,图18-2)和150(图18-3)的Power Target设置下进行3DMark 11 Extreme的测试可以看到在Power Target 80%设置下的得分低,150%得分高。观察核心频率曲线不难发现其中的因:图18-1、18-2有降频的情况发生,而图18-3中的频率曲线是平直的(除了场景切换的时候自动切换到2D模式),核心频率一直维持在笔者设定的1293MHz。很显然,Power Target 80%、90%模式下不能满足当前的超频设置。
此外,对C P U超频比较熟悉的读者都知道在冲击高频时,一定要关闭自动降频(节能)功能。因为当CPU处于较高频率的时候进行倍频的切换非常容易造成系统崩溃。类似的,在Kepler显卡超频的过程中,如果触发了功耗上限,那么GPU会自动降频甚至降电压,等负载稍低的时候又恢复。如此频繁地进行频率、电压的调整会导致系统不稳定。因此破解功率上限对Kepler显卡的超频来说,是至关重要的。
下面我们来重点比较一下修改电压上限的效果。首先通过图19-1、19-2可以看到,修改前使用软件高只能将核心电压调到1.175v。而在修改后可以将核心电压调到1. 213v。为了验证修改是否有效,笔者使用万用表测量修改前后的工作电压。由图图2 0-1、2 0-2可以看到,修改前后实测电压分别为1.210v和1.261v,0.051v的差距与理论计算的0.0375v相差不算大。上文已经提到,在提高电压上限的同时也提升了GPU Boost功能的上限频率。要验证这一点需要使用到EVGA Precision软件独有的一个功能K-Boost。打开该软件,点击A DJ UST VOLTAGE,在弹出的对话框中勾选K-BOOST。按照提示重启后,显卡的GPU Boost功能将被屏蔽。此时,无论是2D模式还是3D模式,核心频率都会保持在高值(除非触及温度或者功耗上限,图21)。
由图22-1、22-2可以看到,在不使用软件调节核心频率时,破解前核心频率高运行在1110MHz,而破解后,直接提升到了1201MHz。因此就算我们不进行任何超频,只要解锁电压上限,性能马上就有极大的提升。这也是之前笔者提到没有必要修改GPU频率和Boost频率的原因。
终,笔者在1358MHz、7574MHz的频率下完成了3DMark11的测试,取得了X4292分的高分(图23-1)。而在改造前这块显卡只能在1280MH、7400MHz的频率下完成测试,分数仅为X3935。而且由图23-2可以看到,改造前的GTX 680由于受到功耗的限制,在运行测试的过程中发生了严重的降频。因此就算芯片本身体质不错,也无法运行在更高的频率了。
此外,华硕660TiDC2T由于受到GPU芯片体质的影响,改造BIOS的效果并不明显。改造前能以12 45MHz、6800 MHz的频率通过3DMark 11测试,分数为X2992分。而在改造后,则在1280MH、6912MHz的频率下取得X3189分。
究竟本文介绍的BIOS修改方法是否通用?笔者下载了两个不同品牌的市售非公版GTX 680显卡的BIOS、一个公版GTX 660Ti显卡的BIOS、一个非公版GTX 660Ti显卡的BIOS进行验证。笔者发现,这些产品的参数修改的位置和本文介绍的两款产品是相同的。事实上,系统在启动以后,BIOS里面的数据会被GPU芯片读取并存贮。GPU通过这些参数再去控制显卡上的其他模块。换句话说,显卡BIOS的作用仅仅是存储了GPU所需要的一些控制参数,并非直接控制显卡上的供电模块或是调节风扇转速等。因此,从理论上来说本文所介绍的BIOS方法也适用于其他具备同芯片的产品。
破解所需的软件一览
1. 16进制编辑器,比如UltraEdit,HxD等,本文将以HxD为例进行讲解。
2. NVIDIA显卡BIOS保存、刷新软件:nvflash 5.118 Windows版。
3.超频软件EVGA Precision 3.0.4,请注意版本,因为较老的版本不具备后文提到的K-BOOST功能。
16进制编辑器入门
初次使用16进制编辑器的玩家在面对一堆数字时,会不知所措,我们不妨来了解下编辑器里面的内容怎么看。在主界面左边一列都是0000XXX0的字样,这代表BIOS文件每个单元的高7位地址(后一个0可忽略),我们可以理解为行号。而上面一行从00排到0F(前面的0可以忽略)代表每个单元的低位地址,可以理解为列号。横竖交差的单元格里面的值就是该内存地址里面的数据。例如“修改地址为815A单元格的数据为x x”,我们就需要跳转到第00008150行的第0A列,有点类似Excel表格(图24)。
另外,顾名思义16进制编辑器中的地址和数据都是以16进制表示的,而我们通常是通过10进制表示的。因此为了避免歧义,上文中所有提到的数据如果以“0x”开头就表示这个数是16进制的。例如0x1E=30。如果不熟悉16进制和10进制之间的换算怎么办?打开Windows自带的计算器,利用“ALT+3”切换到“程序员”模式。左侧有进制选择,选定某种进制后输入数字,再切换进制,之前输入的数字就已经转换成当前的进制了(图25)。
什么是little-endian
前文提到了little-endian,事实上计算机系统中每个内存地址里面只有8bit的容量,也就是说可以容纳2位16进制的数(1位16进制数需要4bit来存储)。如果需要保存的16进制数值超过2位就需要多个内存单元。问题就出在这里,例如我们要保存0x44332211这个数需要4个内存单元,那我们可以有如下的两种方式来解决。按照地址增加的方向(计算机都是按照从低地址到高地址的顺序存取数据的)首先存入低位的数据(0x11)或者是高位的数据(0x44),这就是我们说的Little-endian和Big-endian。由于PC系统采用的是Little-endian。因此我们读取多位数据时应该把高地址(地址值大)的数据放到高位,低地址(地址值小)的数据放到低位。
在前文修改功率上限的例子中我们看到“109802”实际上代表的数据是0x029810。同理,为了把这个数值修改成250000毫瓦(等于0x03D090),我们应该把“109802”替换为“90 D003”。
Kepler系列显卡在不硬改供电模块的情况下不能突破1.2125V的电压?
现阶段N卡使用的供电主控芯片都遵循VRM11规范来进行电压调节。输出电压是由供电主控芯片上的8个引脚VID7-VID0(刚好组成了一个8位的2进制数)上的值决定的。为了安全起见,在进行产品设计的时候,NVIDIA强制要求各厂商把VID6固定成了“1”(也就是直接接到电源上,这样任何软件都无法改变这个引脚的值)。图26是VRM11规范的定义,可以看到这个2进制数的数字越小,电压就越高。但因为VID6被固定成了1,所以能够得到的小值就只能是01000000,对应1.2125V,因此如果不硬改电路的话是不可能突破这个电压的(图24)。
通过简单的测量可以发现,公版GTX 680的供电主控芯片(Richtek RT8802A)的VID 6(33脚)已经直接接到电源上,相当于逻辑上的“1”,许多N卡也都有同样的设计。