MorpKnight
2021-04-25T16:13:50+00:00
客户是一台工作站,组装的x199平台,目前是1080ti做深度学习,今天找我,说学生要毕业了,这台工作站算一个模型报错,显存不够,至少要40g。我查了一圈,是用双3090sli还是直接上rtx8000,第一种方案是不是还要考虑散热,要不要上nvlink,电源要换到多比较合适。第二种方案这个卡适不适合深度学习,是不是要看跑的是哪种模型?
rtx a6000不行吗
我觉得应该比2张3090便宜[s:ac:哭笑]
还是说这玩意也能跟着涨 [s:a2:自戳双目]
[quote][pid=512119783,26545250,1]Reply[/pid] Post by [uid=9577901]lodpdp[/uid] (2021-04-30 00:20):
rtx a6000不行吗
我觉得应该比2张3090便宜[s:ac:哭笑]
还是说这玩意也能跟着涨 [s:a2:自戳双目][/quote]现在我也不懂呀,a6000我看了一下京东48999,3090七彩虹21000左右一张。rtx8000自营59000,非自营40000也有。糊涂了已经,也不知道6000和8000有啥区别
A6000是安培架构的30系卡,8000是图灵的20系卡。多卡可以并行,不过要自己重新写代码了。
推荐3090sli,3090的单精度浮点计算能力是rtx8000的3倍了
双3090
不需要nvlink
真想便宜可以4条3060
可以看看这篇文章:[url]https://blog.csdn.net/Su_wenfeng/article/details/116271386[/url]
需要注意的主要有两点:
1、虽然A6000的张量核心多于3090,但是跑张量核心的深度学习主要看显存带宽,由于A6000是GDDR6,反而不如3090的GDDR6X。如果选择3090,一定要做好显存散热。
CUDA核心的情况个人不是很清楚,但3090的CUDA核心可以认为和A6000拉不开差距。
2、A6000单卡就能跑你需要的模型,3090需要双卡。我个人不是很清楚这种情况是否需要Nvlink,也不清楚你的模型能不能用双卡叠加显存,我想跑的模型就11G,一个3060完事[s:ac:擦汗]
如果要稳妥,肯定是A6000;如果自己能折腾明白,那可以考虑双路3090;RTX8000现在就是智商税。
显存容量是A6000=RTX8000=2张3090,显存带宽是3090>A6000>RTX8000。
我不懂卡的参数,就从炼丹的角度说。
40G显存肯定要上单机多卡,虽然我也不知道这个40G怎么算出来的,batch size为1都跑不起来么。
NV link很有必要,我这边测下来带nv link的v100机器比不带的可以提速1.5倍左右。
然后建议也考虑一下显卡半精度的运算性能,同样的程序在mixed precision下可以多开接近一倍的batch size,不知道你的应用方那边有没有用。mixed precision应该是现在训大模型比较通用的trick了
如果是模型就有40G这么大,那得上专业卡,a100有40G
如果是训练的时候模型加一个batch有这么大,那你要知道模型有多大,多个GPU不是简单的除法,类似于每个GPU复制一个模型的大小再加1/N的数据大小
比如假设你模型10G,一个batch的数据+中间参数10G,现在给你两个GPU跑,那每个GPU需要15G左右的现存
模型太大了可以用时间换空间,torch有checkpoint_sequential
还有一些梯度accumulations,单精度,inplace
办法总比问题多
不是插两块显卡就叫SLi, SLi已经是历史了, 而且SLi是游戏专用的, 计算多卡用不上SLi. OpenCL/CUDA原生就支持多计算设备, 不需要SLi这种模拟单卡的模式.
NVLink VRAM pool只有专业卡才支持, 并且必须用Linux. 但是就算这样了, 你如果模型本身大于某一块显卡的显存, 还是跑不了的. 你依然需要自己正确拆分数据.
你第一不懂,第二不是你出钱,管那么多干啥呢?客户要40g显存就给他40g显存的卡。要是和他说几个省显存的技巧如activation checkpoint或者gradient accumulation,他回去一试能跑了,你岂不是还丢了生意。所以,客户提啥需求你卖啥就行,客户自己学生都没弄明白的话,这不是你的责任。
[quote][pid=512140058,26545250,1]Reply[/pid] Post by [uid=17528627]bobzhuyb[/uid] (2021-04-30 04:25):
你第一不懂,第二不是你出钱,管那么多干啥呢?客户要40g显存就给他40g显存的卡。要是和他说几个省显存的技巧如activation checkpoint或者gradient accumulation,他回去一试能跑了,你岂不是还丢了生意。所以,客户提啥需求你卖啥就行,客户自己学生都没弄明白的话,这不是你的责任。[/quote]老哥说的通透,那我就给他一个最简单省事的A6000,他跑起来快不快我就不管了。
[quote][pid=512125425,26545250,1]Reply[/pid] Post by [uid=41545284]玄云海的龙鱼[/uid] (2021-04-30 00:52):
可以看看这篇文章:[url]https://blog.csdn.net/Su_wenfeng/article/details/116271386[/url]
需要注意的主要有两点:
1、虽然A6000的张量核心多于3090,但是跑张量核心的深度学习主要看显存带宽,由于A6000是GDDR6,反而不如3090的GDDR6X。如果选择3090,一定要做好显存散热。
CUDA核心的情况个人不是很清楚,但3090的CUDA核心可以认为和A6000拉不开差距。
2、A6000单卡就能跑你需要的模型,30[/quote]谢谢老哥,我大致明白了,就用A6000,省的麻烦
30系对旧版cuda支持不太好...省事的话建议还是单卡
因为我们学校的实验室用的设备,都是普通游戏显卡不是专业卡,所以肯定是3090sli各方面更好
两张3090推荐1200w以上电源
40G模型是他模型设计的有问题吧[s:ac:哭笑]如果是batch调太大,那就小一点呗,很多优秀的模型也只是用8G显存算出来的