本帖最后由 CooperY 于 2017-6-20 21:28 编辑
0. 转载声明本文原发于51nb.com,本文原作者保证该文的原创性,并保留本文的著作权。在保留本转载声明完整性并标明转载的情况下,本文允许进行转载,允许进行不包括本转载声明在内的节选及修改。读者应明白该文在传播过程中可能经历节选或修改,其内容及所反映的观点可能会和原文存在出入。
1. 前言随着最近计算任务的增加,自己的老本子(i7-3612QM 640M LE)已经吃不消这些工作量,遂决定直接换台新的。考虑到自己目前仍然需要到处跑,台式机很明显是不可行的,直接租用带GPU的VPS倒也可以,不过一方面价格略高,一方面自己在国内的时候要上传数据就比较蛋疼了。思索再三,还是直接换个本子合适。 综合性能、重量、可拓展能力等多方面考量,最终选择了7720作为自己的新机。 首先,7720虽然是17寸的机型,重量只在3.4kg左右,大小也较17寸游戏本小一圈。适配器虽不轻薄,不过得益于Kaby Lake的省电和90+Wh的大电池,Windows 10续航一天完全没问题,也即适配器重量可以不考虑。最终背包+7720+一些自己日常用品综合只在5kg,这是完全可以接受的。 其次,7720虽然键盘没有Thinkpad理想,小蓝点的手感更是捉鸡,但bios没有白名单,可以自由更换显卡、网卡等硬件,考虑到键盘完全可以靠外置弥补,选择拓展性更好的显然比较明智。 最后,选择7720这类使用BGA CPU的机型,而非蓝天等使用LGA CPU的机型,主要缘于续航需求和自身计算任务的特殊性。没有续航=要带适配器=重量增加=便携性变差,我只能选择接受CPU性能上的妥协。而因为自己当前只需要GPU做CUDA运算,并不需要真的用显卡做显示,尤其是考虑到集显在显著改善续航的同时还给予了系统在虚拟化方面更多的折腾空间,准系统这类没有核显的反而不太合适。
2. 如何选择适合自己的显卡跑CUDA运算用专业卡做什么?你说得对,我确实不需要专业卡。或者说,不完全需要专业卡。我不需要专业卡的认证驱动,不需要跑BIM、CAD。但我需要专业卡的大显存,需要专业卡的稳定性,即使我个人认为稳定性是一种玄学。 在一切开始之前,我们首先来说说如何衡量显卡的性能。
2.1 显卡性能的衡量事实上,衡量N卡计算性能非常简单,简单得令人发指。不需要跑分,不需要考虑专不专业、游不游戏、也不需要讲究显存大小。N卡对于32位浮点的运算性能只要使用这样一个公式就能算出来: --------------------------- CUDA核心数×2×最大频率=FP32浮点运算性能 ---------------------------
我们以一下几款显卡为例: 型号 | | | GTX 1080 Ti Founders Edition | | | | | GTX 980 Ti Founders Edition | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
**本表不考虑任何Boost外的超频情况,该表目的仅用于证明该公式的有效性
根据公式,我们可以非常容易地求得其理论的FP32计算能力: 型号 | | | GTX 1080 Ti Founders Edition | | | | | GTX 980 Ti Founders Edition | | | | | | | | | | | | | | | | | | |
**巫师3在DX11下运行,全最高特效,2560×1440分辨率 ***未纳入TiTan Xp测试数据因为其网站上的测试结果前后无法自洽 ****本表不考虑任何Boost外的超频情况,该表目的仅用于证明该公式的有效性
稍微用Excel拿这些数据做一下线性回归,就可以看出来FP32性能与帧数的线性关系再明显不过了。这里仅使用了巫师3的平均帧数,而如果使用3DMark等的分数来做分析,也能得出类似结论。
需要说明的是,当前我们考虑CUDA核心数量×2是因为现在一个CUDA周期中可做两次FP32计算。
2.2 什么是FP32?那么,32位的单精度浮点运算代表了什么?为什么它可以代表显卡的性能?事实上,它代表的太多了,保守地说,32位浮点几乎涵盖了70%及以上的应用场景。 首先,DirectX作为Windows下几乎所有游戏都使用的接口,其色彩定义的基本单位是32位浮点,其4个8bit分别代表着三原色和透明通道;同时,绝大多数你能看见的运算,包括大部分的渲染、建模都是32位单精度浮点运算。 其次,即使它们的运算数据不是原生的32位浮点值,也需要拓展成32位浮点进行运算。无他,只因为除数据中心级别的GPU外,其他架构(这里指GM204、GP104这类架构)本质上就是一个个进行32位浮点运算的CUDA核心组成的,这是基本运算单位。其他的运算核心,如半精度、Tensor Core等,暂时都只存在于GP100、GV100这类数据中心才能见到的GPU中,消费级的GP104以及工作站级的GP104GL在硬件上就没有这些运算单元。 最后,双精度去哪了?问得好。双精度仅存在于少量对精度有极高要求的专业领域,或是作为单精度的辅助。如果拿深度学习来举例,双精度仅仅只在神经网络进行梯度检查时,才会用双精度进行验算,保证整个网络梯度传导的正确性。而梯度检查基本只在网络搭建过程,或每千、万次运算后才做一次(事实上现在实验室里会做梯度检查的情况都很少了),而网络传导过程都是单精度运算。当然了,大家都还是很想大量用双精度运算的,但一方面双精度运算太贵,另一方面单精度已经可以满足大多数情况下的精度要求,这种拿数倍的钱换有限的提升也就只存在于某些有特别要求的领域了。 需要注意的是,FP32虽可直接衡量一张显卡的计算性能,制约显卡性能发挥的种种因素同时也不应忽视,如程序使用的接口,以及程序本身的执行效率,CPU效率等等。
2.3 专业卡贵在哪里?既然游戏卡和专业卡的FP32性能没差太多,那为什么专业卡贵这么多?为什么还有人需要专业卡?
根据该文所述,专业卡贵主要出于以下几个原因: 1. 专业卡有着被Autodesk、Dassault Systemes、Solidworks等开发商认证的驱动,以保证这些卡满足这些应用的最低要求,而这种定制的驱动非常昂贵。需要注意的是,对于大量使用了OpenGL而不是DirectX的API的软件而言,定制驱动被证明是非常有意义的(译者注:Windows下的游戏基本都使用DirectX开发,当然DirectX也不仅限于游戏)。未认证的驱动往往不能完全、甚至完全不能发挥这些软件的功能,仅仅因为它们的驱动不是为这些软件设计的。不过另一方面,定制驱动也并不能完全保证它们自身总是起作用,个别被Autodesk认证的显卡/驱动组合也在Revit、3ds Max中失效过。 2. 专业卡驱动能够从一些为高端显卡(在硬件上)定制的功能中受益,比如增强的抗锯齿、z-buffering等等。游戏卡的驱动则不会将这些硬件上的特性暴露给软件(当然在硬件上它们可能也没有)。 3. 专业卡往往会有着更大的显存,不过这点伴随着游戏卡对显存要求的日益提高正在渐渐消弭。对于Autodesk AEC用户来说,显存大小对于渲染性能来说是决定性的。 4. AMD和Nvidia仅仅只授权了一小部分制造商生产专业卡,这减少了厂商间的竞争,也提高了价格。而游戏卡往往有着数量庞大的厂商,且Nvidia允许其在公版设计上进行一定程度的发挥。 5. 专业卡对质量有着更低的容忍度,它们往往被设计为能够保持365天不间断工作。为了实现这点,专业卡在核心频率上会限制得较低,并有着较低的TDP以延长其寿命。游戏卡则设计为性能第一,而非持续性,并未对持续整天的运行做考虑。然而,长时间的GPU渲染最终会在这些硅元件上体现其后果,并导致显卡温度的上升。具体而言,游戏卡在对太多的场景进行渲染时往往会承受不住而烧卡。不过游戏卡相比专业卡而言实在再过廉价,几乎可以说是消耗品。
此外,文章还表达了必须要专业卡才能跑Autodesk完全是胡说八道、Autodesk认证驱动是否重要等观点,具体请参见原文57~59页。
在该文63页,作者对不同显卡在3ds Max渲染上的性能进行了测试,对其观点进行了进一步说明,其结果如图: 此外,LinusTechTip也进行过类似的测试,用桌面版的Quadro M6000和Geforce TiTan(Maxwell)在转码、渲染等方面进了对比,也得出了类似结果,具体视频可参见如下链接:
至于专业卡不能用来打游戏这种无稽之谈,Linus在视频中也有提及,本文在此不另作解释。
有关通过Autodesk认证的显卡可在该网站查询
2.4 为什么我要用P5000?通过简单的计算就可以知道,移动版1070(后文简称为1070)在性能上完全超过了移动版P5000(后文简称为P5000),即使在实际使用中P5000也可达到1645Mhz的Boost频率,1070在实际使用时往往能到1700Mhz左右(这还是一个保守的说法),更不用提部分机型在手动超频、解锁TDP后1800+Mhz的直逼1080的恐怖性能。 考虑到机器主要用途是自己跑Machine Learning用,更大的显存意味着更大的Batch Size,更大的Batch Size意味着更多实验的可能性和更快的收敛速度,计算稍微慢1~2TFLOPS可以接受,显存不够用那就真是GG了。事实上即使是16GB显存,想吃满还是非常容易的。 当然了,如果P5000卖到10000多一块对就不太值得了,自己手上的这块移动版P5000到手价格6000多点(不过是QS,不是正式版),虽然比1070贵不少,但尚在可以接受的范围内。 当前移动版1070的价格在4000左右,蓝天版的异形卡性价比稍高一些,MSI稍贵,但版型相对来说比较标准。同时也有厂商做了几乎完全标准版型的1070,但当前质量问题颇多,在此不表。
3. 显卡更换过程
3.1 笔记本风扇电源线
相信很多人在自己拆笔记本散热的时候都遇到过这个问题:笔记本风扇的电源线实在是太令人费解而难拔了。在此专门对7710/7720电源线卡扣位置的结构做了简单建模,以供需要拆解风扇电源线的朋友们参考(不保证通用于其他型号笔记本的风扇电源线)。 拆解时,只需从箭头所示位置插入薄片状物以撬起卡扣,即可缓缓拔出风扇电源线。请勿在该过程中使用类似于一字螺丝刀类似的坚硬厚片,以免该卡扣断裂。虽然该卡扣的断裂并不影响风扇的正常工作,但会使电源线在一些条件下较容易松脱。
3.2 A型散热与B型散热7720有两种散热,一种是适用于半高卡的A型散热,另一种是适用于全高卡的B型散热。自己当初贪图便宜买了配M1200的机型,结果费钱专门去弄了个7710的B型散热(可以和7720通用)。建议有条件的朋友还是直接买原装B型散热的机型,有钣金和焊接工具的朋友也可以考虑自己把A型散热改成B型散热。
A型散热和B型散热具体区别如下,其中红框部位是B型散热比A型多的两块覆盖了全高卡电容、MOS管、显存部分的散热,此处本文的“两块”指的就是数量上的2。 *图片来自淘宝
有钣金工具的朋友可以尝试自己购买整块的铜板复刻这两块铜片,遗憾的是在折腾过程中没有给这两块铜片做精细度量(手上没有游标卡尺),甚至拍照留念,在此无法给出两块铜片的具体大小与形状。
最后,因仍然不放心淘宝买回来的号称是原装的散热,遂自己把购买来的B型散热上的两块铜片用热风枪吹了下来,并通过使用几片裁剪过的相变硅脂把铜片黏在原装的A型散热上,到目前为止效果还不错。没有用焊锡缘于手上目前没有可以焊接铜和铝的低温焊锡膏,此种焊锡膏不是很好买。具体而言,该种对散热进行焊接的低温焊锡膏熔点一般在120°~130°C左右,用150°C的热风枪在针对部位加热3~5分钟左右以后即可拆下部件,根据情况可以加温或延长时间。
注意事项: 切勿尝试使用电烙铁模仿热风枪的效果! 切勿使用焊丝或高温焊锡膏等不合适的焊接材料进行焊接! 切勿长时间使用几百度的高温加热热管,否则会导致热管开裂损坏!
补充一点有趣的小细节,这回7710/7720的散热模组似乎有两种不同的风扇,如下图所示: 其中左边的是原装风扇,右边的是在淘宝买的散热上的风扇。此外,先前D大拆解的7710和宋版这回的7720都是右边这种风扇。
具体两种风扇在表现上的孰优孰劣尚不清楚,欢迎大家给出自己的解释。
3.3 支架移植 到手之后才发现没有自带支架,因为急用,索性直接把原配的M1200上的支架拆下来了。好在支架比想象中的好拆太多,没费多大劲。
需要注意的是,如果想自行购买支架,7720的支架是Dell的超薄支架,不要买成厚支架了。 如图所示,支架仅有这4个角是有双面胶的。想取出支架,按以下步骤: 0. 释放手上的静电。 1. 用手抓牢支架边缘,不要用手触碰。 2. 拿一根比支架螺丝孔粗的螺丝刀从另一面顶住支架在另一面突出的螺柱。 3. 缓缓用力,保证用力过程中支架不会弯折而只是稍稍弯曲,慢慢将一个角顶出,直到支架和电路板间的双面胶不再粘连。这个用力过程会持续10~30秒,切忌蛮力直接顶。 4. 松手,重复1~3,将4个角的双面胶全部松脱。松手后会粘回去,不要紧,此时就算粘回去也很好拿下来了。 5. 从任意一个角稍稍用力,把支架整个拿下来。 6. 将取支架过程中造成的支架变形扳平。
取下后板上会残留少量双面胶,如果没有信心不损伤电路板的话,不建议进行进一步清理。
以前7710刚出的时候曾有一种说法,即7710/7720这系列的模具只能更换单面显存的显卡,后被证明只是支架太厚导致显卡压不下去导致,其实双面显存一点问题都没有。
3.4 显卡更换
首先晒一晒P5000实物图。
开始拆机,卸下键盘框
拆机过程中可以通过将拆下来的螺丝进行相对位置摆放的方式管理螺丝
拆下键盘
拆除掌托
拿掉原装的A型散热,露出M1200
更换上P5000之前,首先给背部显存贴上导热垫。其实目前尚找不到任何7710/7720双面显存显卡背面显存是否有导热垫的信息。但这毕竟是好几千的卡,为了保险还是专门去弄了两块超薄导热垫,型号为Laird HR640,厚度1mm,大小20mm×70mm。从右侧图片可以看出来加了导热垫以后和支架厚度相当,放进去完全没问题。
P5000正式上机
近照
成功识别
3.5 小谈异形卡 MXM显卡作为一种现行的移动显卡规格标准,短时间内还不会消失,但侧重点很明显地转到了自动驾驶、工控、深度学习等领域上。反观用于笔记本的MXM显卡,在Pascal这一代出现了大量和标准版型不一致的异形卡。
在此,给出几种异形卡及7710/7720散热模块的对比,给希望进行散热改造或自行换卡的朋友一些参考
图中由左至右分别是:(1)技酷版1070;(2)Quadro P5000;(3)7710/7720散热模块;(4)MSI版1070。红框范围内是标准尺寸MXM的大小,请注意MXM标准中不止规定了尺寸,也规定了元器件的摆放规则,大小尺寸符合并不意味着符合MXM标准,也即技酷版1070并不是标准MXM版型。
由图可见,仅有Quadro P5000是完全符合MXM规范的卡,技酷与MSI版都需对散热中的电容位置做一定程度的打磨/改造,否则不能贴合。
4. 性能测试在前文中已经说过,移动版Quadro P5000性能并不及1070,跑分结果也说明了这点。
Cinebench:
3DMark 11:
5. 散热测试 本文对7720进行了一个小时的双烤进行散热测试。软件使用AIDA64对CPU施加压力,配合UnigineHeaven 4.0对GPU施加压力,GPU和CPU都使用了Laird的相变硅脂,且已先行做过若干次烤机使其和散热模块贴合。在此未使用AIDA64进行GPU烤鸡,因为AIDA64会同时对核显和独显施加压力,而实际使用环境中双显卡机型其实只用独显进行计算,然后把结果拷贝到核显中进行显示,其核显实际上几乎是不工作的,AIDA64这种对核显和独显同时烤的方式很明显无法反映真实的应用环境。
7720的结果并没有特别出彩,只能说是及格。考虑到只有3热管,取得这样的成绩也在所难免。双烤期间GPU的温度和频率表现都不错,不过CPU偶尔会有降频,但总体而言能够维持较稳定的标准4核睿频3.9的频率。本文在降频位置都使用了红圈进行标出。另外注意,P5000虽然默认Boost频率是1607,实际使用中最高能达到1657Mhz。为了不影响双烤过程中的稳定性,结果均使用相机拍摄。
双烤5分52秒
双烤12分钟
双烤47分13秒
双烤1小时2分5秒
其实7720这个温度对长时间运行来说并没有任何问题,自己拿到机器以来已经连续跑运算跑过好几个通宵了。很多人喜欢用台式机的标准来衡量笔记本的散热温度,要求CPU在75度上下,GPU在60度左右,这完全没必要。就自己的上一台笔记本来说,压片的时候曾经连续好几天CPU在100度满载,快5年了也没什么问题。毕竟,厂商设置的100度降频线是有自己的理由的。
免责声明:本文并不保证所有厂商的所有型号都能在这样的条件下长时间稳定运行,请结合自己的实际情况进行自己笔记本的维护。
6.结语
本文到此告一段落。一方面,文章对显卡知识做一些扫盲,希望能帮助部分人摆脱对专业卡和游戏卡的认识误区,摆脱对跑分的依赖;另一方面,文章也对自己在折腾过程中的遇到的问题和解决方案及其步骤做了总结。希望本文能够给大家一些参考和帮助。
最后,感谢Autodesk University提供的宝贵资料,感谢LinusTechTips对M6000详尽仔细的横向测评。
|