点击上方 蓝字关注我们
正文共: 6484字 预计阅读时间: 17分钟
书接上文。
我们先来聊一聊显卡中重要的组成部分之一,显存。
什么是显存?
显存 就是显卡的内存,而显卡有三种内存,分别是核心L1、核心L2、显卡内存(显存)。此处L1和L2知道即可,无需细究,为我们一般看重的是显卡的内存,暨显存。
GPU会把计算处理过的数据会放在显存中保存。就像是一个工厂的仓库,画家的桌子一样。
举个例子,现在我的GPU就像是一个画家,接到老板(CPU)的需求,画家开始作画,因为这个画家画的不只一张画,而是很多张,所以先画完的画要放到我的桌子上先攒着。
在画画的时候,我可能需要各种颜料,画笔,工具等等,我为了方便,也都放在了桌子上,于是在画画的过程中,桌子上的东西越堆越多,你需要的工具和你已经完成的画也越来越多。
这个时候桌子就放不下了,这个桌子就是我们显卡中的“显存”。
那么我们设想一下,如果桌子小的话,会是什么情况?
现在这个画家的桌子放不下任何工具了,而他现在需要一把大号画笔,可是桌子上已经放不下了,画家就只能先把桌子上的小画笔的扔走,把大画笔拿过来,但是发现,下一张画又要用到小画笔,于是我们的画家(GPU)就只能把时间花费到来回拿画笔的时间上了。
在这种显存不够用情况下,GPU 会消耗大量资源来写入清空显存中的数据。于是就会影响显卡整体的性能。这种情况,我们一般称之为
爆显存
所以显存的大小是我们衡量显卡的重要指标之一
笔者的RTX3090显卡的显存是24G,在一些游戏应用上就已经可以占用到12G以上了,对于老黄讲的4K分辨率10G显存就能满足的话,感到存疑。
这里请大家做一个小思考,如果我们的画家(GPU)的能力不怎么高,而且画画还很慢,那么我给这个画家一个超级大的桌子,有用吗?
我相信,你们已经知道答案了。
是什么东西影响着显卡性能?
依然拿我刚才举的例子,画家作画
我们分析一下有哪些环节会影响画家作画的速度
我们把上一期文章的那个流程图再拿过来,只不过这次我们把名字改一改
1、老板(CPU)给画家的需求太少,比如三天一幅,画家(GPU)会一直在等需求,所以低产出。
2、老板(CPU)开车去画家家里的路上堵车,导致虽然有需求没有送到画家那里,画家也是一直在等需求,所以也是低产出。
3、画家手慢,接到了大量需求,却画不完…
4、画家手快,可是家里的桌子太小,画家有一半的时间都在腾桌子放工具。画家很是郁闷,没有足够大的桌子让他一展拳脚。
这四个场景都会导致最后的输出不符合预期。
所以你发现了,影响显卡性能的地方大概来自于这几个地方
1、CPU处理要给显卡的数据慢,满足不了显卡的处理速度
(CPU的性能,它决定了CPU有多快,简单的说就是你的CPU是几核的,几GHz频率的等。)(想了解CPU?留言给我,我会考虑出一期的)
2、在CPU给显卡数据的总线上速度损耗(道路太窄或者...)
(主板PCI-E速率,目前有x8 x16 x32等速率的接口。数字越大,代表提供数据传输的道路越宽,目前这个点基本可以忽略,因为目前还远达不到物理的传输上限。)(PCI-E延长线除外)
3、GPU本身的计算速度慢
显卡的型号,同样的显卡型号的显卡参数基本都是一样的。
而决定GPU本身计算能力的地方是GPU中CUDA的数量和频率(这两点是众多核心参数中最重要的两点)。
CUDA我们在上上期的文章里讲过了,CUDA就是运算的最小单元,我们上期文章中提到过,显卡是可以进行大量的并行运算的,所以,CUDA数量越多,计算的效率就会越高,而频率就是决定CUDA有多快的速度进行计算。
例如 我的显卡有一万个CUDA,在500MHz的频率下运行,每秒计算一万道数学题。当我将500MHz的频率提升到1000MHz的时候,同样是一万个CUDA就会呈现出翻倍的性能,每秒则可以计算2万道数学题。(大致比喻,实际上频率带来的红利远没有那么直接)
4、显卡显存太小,GPU算完的数据没有地方放,没算完的数据也没地方放,拖累了GPU运算。
(这点有点像是JAVA里边的老年代回收,我们总是不希望在内存中频繁进行回收整理,显卡中也是一样)对应的就是这款显卡的显存容量,很显然,显存能大点的大概率就会比小点的更靠谱。
小问题时间到了:
显卡的计算速度和显存大小有关系吗?
画家的手速跟桌子大小有关系吗?
显卡型号怎么区分?
今天我只来介绍消费级显卡,专业的设计卡和计算卡日后我们再聊。来看我文章的同学们你们真的会自费去买一张好几万的专业卡吗?(手动狗头)
目前市面上的显卡都来自于这两家企业(普遍)
NVIDIA 和 AMD
我们一般都简称为 N卡 和 A卡,玩人工智能和深度学习的小伙伴就老老实实的买N卡吧,而游戏玩家则可以多一个选择。
肯定有筒子们说,你说的不对!我买的显卡就不是这两家的,我显卡牌子是华硕的,七彩虹的,技嘉的,微星的等等。
嗯,你说的这些厂家只是上边两家显卡企业的末端制造商和销售商而已。
NVIDIA和AMD设计完一款显卡的核心芯片后,拿给半导体制造商去制造,然后把显卡芯片交给NVIDIA和AMD的合作伙伴进行二次加工,销售。
而负责二次加工和销售的厂家就称之为AIC厂家,你也可以叫代工厂。
拿NVIDIA举例
NVIDIA在中国大陆的合作伙伴有9个,分别是
华硕、技嘉、微星、七彩虹、影驰、索泰、映众、耕升、铭瑄。(EVGA不属于大陆的AIC)
所以你买的显卡的牌子虽然不是NVIDIA或AMD的,但是显卡肯定是来源于这两家厂商的其中一家。
笔者的RTX3090盒子,注意盒子右下方的NVIDIA标志
那我买不同厂家的同一个型号的显卡,他们的性能相同吗?
比如华硕RTX3090和七彩虹RTX3090,他们两个的性能有什么不同吗?
答案是有一点点不同,也就是长相不同,散热方案不同(风扇大小,数量,散热片大小), 以及基础的GPU频率可能会有很微弱的不一样。
而最重要的GPU核心,也就是NVIDIA设计出来的RTX3090核心各个厂家的都是一模一样的。
举个不知道对不对的例子,不同牌子相同颜色的口红,虽然牌子不一样,但是颜色是一样的,你说他相同吧,颜色确实相同,你说他不同吧,除了颜色以外其他的多多少少都有些不同。
所以我们在讨论显卡型号的时候,一般会忽略厂家名字,而只看型号本身。因为即便是不同厂家,他们同型号的显卡的核心都是一样的。
这期我们先只介绍NVIDIA显卡的型号,AMD显卡的改日再聊。
不过鉴于市场占有率以及技术广泛度而言,先讲NVIDIA也是没有异议的,毕竟AMD在深度学习上还是没有NVIDIA占有率高的。这是历史遗留问题。
我们来看近三代的NVIDIA的显卡型号
很简单 就是由三部分组成的
前缀有GTX和RTX,属于固定值,RTX和GTX的区别在于RTX可以支持光线追踪。
数字部分
四位数字前两位表示代数,就是第几代或是xx系列。
例如3080就是30系列的,2080就是20系列的,1080就是10系列的。
(有两型号叫1660和1650,这个实际上是20系列的,属于例外)
四位数字的后两位表示这张卡的在这一系列的地位。
xx10,xx20,代表该系列低端,xx30,xx40代表中低端,xx50,xx60代表中端,xx70代表中高端,xx80,xx90代表高端甚至顶级。
如果你看到了没有数字的显卡 比如 Titan RTX ,那他属于顶级的泰坦,属于消费级的天花板,不过泰坦也是分哪一代的,你不能拿上上上代的泰坦跟这一代的xx90比,那肯定比不过xx90。
每一代的显卡都会比上一代的显卡在性能上整体向上一个台阶
正所谓买新不买旧
例如 RTX3080,那就是30系列的高端显卡, RTX2060就是代表20系列的中端显卡。
显卡数字后缀Ti代表加强,数字后缀Super代表轻微加强,反正没有Ti的程度高。例如 RTX2080Ti 和 RTX2080Super, 答案就是RTX2080Ti更胜一筹。
这里要提醒一点,不要把笔记本和台式机的显卡放到一块比较,台式机的显卡就跟台式机的显卡在一起评级,而笔记本的显卡就和笔记本的显卡在一起评级。
例如 笔记本的GTX1060和台式机的GTX1060的性能是有很大差别的!
下图为10系列显卡的图和20系列显卡和30系列显卡的型号表
如果你还是觉得分不清谁高谁低,我又整理了一下显卡型号跟口红品牌的档次对比图。
当然,这里的仅仅是档次的对比,而不是价格的对比。
对于显卡而言,每个档次的价格是不一样的,目前消费级的显卡(设计计算卡除外)从每一代的xx30 到每一代的xx90 和泰坦的价格区间大概是人民币 700元-20000元区间内。
专业级的设计卡和计算卡会更贵。
那么问题来了!我们的钱包里的钱是有限的,怎样花最少的钱来最大限度的满足你的需求呢?
首先第一点,也是最重要的一点,就是
你打算用来干什么?
大部分人有计划的购买显卡都是有目的的,比如玩游戏,或者搞深度学习,或者是当前的显卡性能不能满足需要换,还是为了以后的学习和娱乐提前买个超前一点的。
那么我们该怎样选呢?
我这里举两个例子,一个是深度学习显卡的选购,一个是游戏显卡的选购
如果同学你是Adobe的专业用户或者是CAD的专业用户,那么你大可以把钱花到CPU上,买一个好一些的CPU,不适用独立显卡或者使用一个相对价格低一些的显卡。
因为对于平面设计方面,这些软件对于CPU和内存的要求会比较高,而显卡对于这些需求,往往不能带来很好的提升。
当然如果你是深度的PR或者是达芬奇用户,那还是建议你买个好一些的CPU和你价格在你接受范围内的最强显卡。毕竟视频制作还是需要强大的显卡的。
先来说深度学习显卡的选购:
在这个需求下,我们选择应该有三个原则:
1、使用中端级别以上的显卡,xx60,xx70以上的显卡,例如GTX1070,RTX2060等,因为再低的显卡一是显存会不够用,而是计算能力也会很有限。
2、购买有张量核心的显卡,就是前缀为RTX的显卡,这些显卡具有Tensor core,可以更加高效的进行深度学习计算。
3、在GPU上进行原型设计,然后再TPU或者云GPU上训练模型。原因很简单,放在TPU或云GPU上能够更快的训练模型。
截止到目前为止(2020.10.31)
综合最佳:RTX3070
性价比最佳:RTX3070, RTX2070Super,RTX2070
穷人之选:RTX1060,
破产首选:GTX1060,GTX1050Ti
Kaggle竞赛: RTX3070
计算机视觉或机器翻译研究人员: RTX3090或者 RTX Titans
已经开始研究深度学习:RTX 3060或RTX2070起步,以后按需添置更多的RTX 3060或RTX2070。
尝试入门深度学习:RTX2060以上级别的显卡。
要避开的坑、要避开的坑、要避开的坑:
所有Tesla、Quadro卡(就是专业级的计算卡和设计卡),并不是因为性能不强,而是价格太过于离谱,而且也没有多少人会在自己的电脑上去训练模型的。这两种卡大多数可以在专业级的机房内看到。你要是真的有钱,为什么不花同样的钱买上两三张消费级显卡呢?算力也不会有所下降,反而会更加具有性价比。
GTX1660和GTX1650,这两张卡阉割了张量核心(Tensor code),不建议买。
还有Titan RTX、Titan V、Titan XP,也是因为价格过高,不具备性价比,有买泰坦的钱买上3张RTX3080不好吗? 但如果你的电脑只能装一张显卡的话,就当我没说。
哇!原谅我竟然把RTX3090忘了,这个显卡现在已经把上一代的所有显卡以及泰坦都秒杀掉了,而且还要比上一代的泰坦价格低得多。
而且3090的价格对于上一代的泰坦也是有着压倒性的优势的。
先来看一下各种任务的大致内存需求:
使用预训练 transformer 和从头训练小型 transformer:>= 11GB;
训练大型 transformer 或卷积网络:>= 24 GB;
原型神经网络(transformer 或卷积网络):>= 10 GB;
Kaggle 比赛:>= 8GB;
应用计算机视觉:>= 10GB
这里首先强调一点:无论你选哪款 GPU,首先要确保它的显存容量能满足你的需求。为此,你要问自己几个问题:
我要拿 GPU 做什么?是拿来参加Kaggle 比赛、学深度学习、做 CV/NLP 研究还是玩小项目?
这里我有一些小的建议:
虽然RTX3090的性能以及显存都要更高更强,但是由于价格,使得RTX3080的性价比更高。
最后再总结一下:
需要学习深度学习和训练原型网络的同学 推荐RTX3070
对于算力需求没有那么高的人或者初创公司,推荐RTX3080,这是一个极具性价比的方案。
如果你觉得RTX3070依然有些贵,你可以选择一张RTX2070Super或者RTX2070,或许再等一等 RTX3060就会上市,那时候3060就是你的最佳选择。
讲完了深度学习的显卡选择,我们来讲游戏需求的显卡选择
首先一依然要明确你的需求, 你是要玩什么游戏还是未来要玩一些现在还没有出的游戏,在或是要预留出一些显卡性能让电脑不那么快的过时。
客观来说,游戏显卡的选择要相对容易的多,而且不止有NVIDIA可选,AMD的显卡也可以选择,而且还会在相同的性能上有一些价格的优势。
笔者自己的Steam库
第一档、网游为主
LOL或者dota等这些非3D的网游:
你可以选择 GTX1650、GTX1660Ti或者AMD的 RX580
或更高档次的显卡
第二档、网游为主
主要以3D的网游和一些非3D网游:
你可以选择RTX 2060S、RTX2060、RTX3060 或者是AMD的 RX5600XT
或更高档次的显卡
第三档、单机为主 1920 x 1080分辨率的显示器
主要是以一些非网游的游戏为主:
那么建议你选择 RTX2060Super、RTX2070 或者是AMD的 RX5700XT
第四档、单机为主 2160 x 1440分辨率的显示器
主要是以一些单机或主机移植的游戏为主:
那么建议你选择 RTX3070、RTX2070Super或者是AMD的 RX 6800
第五档、单机为主 2160 x 1440分辨率 144刷新率的显示器
主要是以一些单机或主机移植的游戏为主:
那么建议你选择 RTX3080、RTX2080Ti、RTX2080或者是AMD的 RX6800XT
第六档、单机为主 4K分辨率的显示器
主要是以一些单机或主机移植的游戏为主:
那么建议你选择 RTX3080、或者是AMD的RX 6800XT
第七档、单机为主 8K分辨率的显示器
主要是以一些单机或主机移植的游戏为主:
那么建议你选择 RTX3090、或者是AMD的RX 6900XT
这里要提一下,如果你想开4K分辨率或8K玩游戏的话,建议你挑选一个显存大一些的显卡,最少10G起步,笔者最近在玩地平线的时候,就捕捉到了显卡显存占用12G以上的情况。
而且笔者玩地平线开的游戏分辨率还是2K的。
还有8K分辨率下的情况,如果你想要玩8K分辨率的游戏,比如说GTA5
那么你最好要准备一张11G显存以上的显卡,因为10G的显卡显存会直接让游戏无法进入场景,属于根本不能玩的情况。
而拥有11G显存的RTX2080Ti即便是进入到了场景内,帧数也只有十以内到十几,实属无法正常游戏。
而有24G显存的RTX3090得益于大现存,在8K分辨率下跑GTA5竟然有20-30多帧,这个成绩虽然谈不上理想,但是也算是到了一个能玩的地步了。
顺便一提,我在上边列的7个档位是向下兼容的,就是如果你买了第四档的显卡,那么第一第二第三档的游戏需求是可以充分满足的。当然这也不是非常绝对的,毕竟有些游戏喜欢跳出人们的认知范围,如果你想知道详细的搭配情况,可以私信联系我,我或许可以帮助你挑选一款你可以接受的产品。
OK 本期内容就到这里,我是不厌其烦的潘某某,一个只想把肚子里的货拿出来的非正常人类。这是我的第三期作品。
到此,显卡类的文章短时间内大概率是不会再写了,如果你有更多想了解的,我又没有提及到的,欢迎私信联系我,我会尽我所能地帮助你,回复你。
下期我会讲述 “半导体制造有多难” 的话题,欢迎关注。。。
最后,感谢观看,多谢支持,
顺便恭喜你有收获了一些可有可无的知识(手动狗头)。
我们下期见 拜拜!
点个在看 你最好看