NVIDIA vs AMD | 闭源驱动 vs 开源驱动
这看起来只是一个简单的显卡选谁的问题,实际上这是两种思维的较量。今天,我就来跟你聊聊,如何看待这个较量。
要注意呢,我的观点可能在有些人看来是有失公允的。因为我是站在Linux阵营来说话的,这在一定程度上必然会让我的观点偏向开源一方。所以如果你正尝试,或者已经开始想Linux平台过渡了,这个视频可能对你有所帮助;如果你是坚定的Windows拥护者,那么我之后的观点可能会与你有所违背。斟酌着听吧。
好了,现在就来正式的谈一谈开闭源驱动这个问题。
其实曾经它俩还不是这样的。在那个时候,它们俩都需要使用专有驱动——也就是闭源驱动——来运行。在Windows下面,NVIDIA比AMD更被玩家接受,有一点就是它的驱动优化要比AMD强一些。而Linux下,在两者都需要闭源驱动的年代,NVIDIA的驱动同样可以说一直在是吊打AMD的专有驱动。但这个并不是体现在优化方面,而是两者安装方式的差异上面:NVIDIA,通过.run扩展名的的可执行文件来安装驱动,驱动会被固化到Linux内核之中。这对于安装专属驱动来说是一个很好的方法——简单来讲,固化的过程,就是利用用户的电脑编译出一个内核模块并插在用户的内核上。因为通过用户电脑完成编译,所以得到的这个模块可以说是完全根据用户当前的系统环境生成的,非常灵活。
而AMD,通过amdgpu-pro完成——体验很差。但到现在AMD仍然在维护这个玩意儿。不要装!想给它整服帖,要命。因为AMD维护这个驱动的思路和Windows类似,就是定期释放一个新版本,这个版本只能用在指定的Linux内核版本上,一般是LTS版本的内核。所以如果你使用的是更新更好的内核,或者一个自定义内核的话,这个驱动通常将不再可用。当然,如果你会魔改这个驱动,它兴许能用,但半死不拉活的用起来还不如不要。所以不要用AMD的闭源驱动。
但AMD有一个优势,就是它喜欢开源。我的理解就是:既然我做不好,那我就公开,让有兴趣的人帮我改进,质量提升的同时我还不用额外雇开发者。不管是不是这种想法,喜欢开源的特性让针对AMD显卡的开源驱动性能同闭源驱动几乎无差距,并且这个开源驱动被先天性的整合到了Linux内核之中。与之相比,NVIDIA由于各种技术封闭,针对它的开源驱动只能靠开发者从零开始一点一点写出来,无论性能还是功能同闭源驱动都相差悬殊。所以,如果你使用AMD显卡,那你不需要因为安装不了amdpro驱动而焦头烂额,所有Linux都先天性自带的开源AMD驱动可以给你闭源同等的体验。而如果你使用NVIDIA显卡,那么闭源驱动是一定要安装的。不过好在NVIDIA的闭源驱动不是nvidia-pro这种实现方法,所以你不必担心NVIDIA的闭源驱动装不上。但闭源驱动终究动辄到内核层面,所以NVIDIA的.run实现方式再简单,你可能也会遇到一些不可预料的问题。因此在这一方面,我会倾向开源,偏向AMD阵营。
但大多数人都是用NVIDIA显卡,并且不是很看好AMD显卡——尤其是Windows用户。所以接下来我们聊聊NVIDIA这个闭源驱动的问题。
如果你使用Arch分支以外的发行版,你要怎么安装NVIDIA的闭源驱动呢?
前往NVIDIA的官网——搜索你的显卡驱动——下载.run文件——给其加上可执行权限——安装。当然,一些开箱即用的发行版比如Deepin、Ubuntu这种,会配有一个显卡驱动管理器,通过管理器我们就可以一键安装驱动。但这就又有一个问题:我们并不知道一键安装驱动的背后系统到底都干了些什么,一旦出现了异常,回退的操作就会变得非常艰难。当然,你可能会说这是Linux的问题。如果你这么想了,就说明你对Linux高度自定义性的“高度”一词理解的不深。它太能自定义了,所以想让一套代码适配各种情况太艰难了,所以这就是为什么Linux会推崇开源了。但就像我一开始说的,NVIDIA的.run解决方案可以说是闭源中非常好的了。因为它至少可以适应大多数人的系统,这便足矣。
还有一个问题,可能就不限于Linux方面了:我是否需要安装最新版本的显卡驱动?
Windows下面这个回答可能比较多样化,但Linux下面,这个问题的答案很精确:需要。你需要前往NVIDIA官网,下载新版本的.run文件,然后重新安装。挺麻烦的。
而对于Deepin这种通过一键安装驱动的,更新显卡驱动同样是一个比较麻烦的事情。你不但需要知道这个程序拥有的驱动版本更新没有,还要冒风险卸载再安装。这也是为什么Linux阵营相对会更偏向AMD显卡。
对于绝大多数软件和开源驱动,它们都会被发行版收录到软件仓库之中。amd的开源驱动自然也是如此。所以每次你更新系统的时候,这些软件和驱动就都会被更新到最新了,所以除非你不更新系统,否则你的使用的软件和开源驱动总会是你的发行版下面最新的版本。
这里我想额外插一句啊:Linux更新本质就是下载软件包替换,所以每次更新的量相比Windows来说很小,而且软件包它装它的,你照常使用即可。只有当你将软件关掉了,这个旧版本才终止使命。换句话说,如果这个软件你开了一年不关,那么即使中途这个软件升级了两百次,你在用的这个软件仍然是一年前的老版本。只有当你关掉软件再打开,最新的才会启动。这个过程是无缝的。并不像Windows那种要你重启以应用更新,而且一更更好长时间,不完成还不让你动。
好,两种代表我就说的差不多了。总的来讲,AMD开放,NVIDIA封闭。这在Windows上得不到什么体现,但在Linux上,AMD虽然自己做的不好,但借助开源让其处在优势地位;而NVIDIA自己很强大,但由于封闭使得很多特性不能完整的发挥。正所谓“人多力量大”。