当前位置: 首页 > 科技观察

2020年搞深度学习需要什么样的GPU:请上48G显存_0

时间:2023-03-16 01:00:04 科技观察

2020年深度学习需要什么样的GPU:请用48G显存略显不足。在lambda最新的显卡并行评估文章中,开发人员探讨了哪些GPU可以在没有内存错误的情况下训练模型。当然,还有这些GPU的AI性能。与往年相比,今年的GPU评测有了很大的变化:因为深度学习技术的飞速发展,以往12G显存一统天下的局面已经不复存在。在2020年2月,您需要花费至少2,500美元购买Nvidia最新的TitanRTX之一,才能勉强跑完业界性能最好的模型——到年底会变成什么样子是不可想象的。或许我们应该将注意力转向云GPU。一句话总结截至2020年2月,只有以下GPU可以训练业界所有顶级语言和图像模型:RTX8000:48GB显存,约5,500美元RTX6000:24GB显存,约4,000美元TitanRTX:24GBVRAM,~2500美元的GPU可以训练大多数SOTA模型,但不是全部:RTX2080Ti:11GBVRAM,~1150美元GTX1080Ti:11GBVRAM,~800美元(已用)RTX2080:8GBVRAM,~800美元720美元RTX2070:8GB视频内存,约500美元在这个级别的GPU上进行超大规模模型训练通常需要较小的Batchsize,这可能意味着较低的精度。以下GPU不太可能用于训练高端AI模型:RTX2060:6GB显存,约359美元1.图像模型测试方向。在处理图像模型方面,基础GPU和Ti系统都不是很好,两者相差不大。相比之下,RTX优势明显,最新版RTX8000最为突出。不难发现,到目前为止GPU能够处理的batchsize基本增加了2的倍数。与性能相比,RTX系统仍然是整体上最好的。(1)显存支持的最大batchsize如下。如果要训练Pix2PixHD模型,至少需要24GB显存,batchsize只能是一张图片。这主要是因为输入图像是2048x1024的高清大图,训练需要的显存和计算都非常大。*符号表示GPU显存不足以运行模型。(2)性能(每秒处理的图像数量)这些是大型模型。即使是最快的神经架构搜索模型NasNetLarge,也一直以对计算能力要求高而著称。虽然用于训练NasNetLarge的数据集是ImageNet,但其图像分辨率仅为331x331。*符号表示GPU显存不足以运行模型。2、语言模型测试对于语言模型,RTX系统在批处理能力方面仍然是最好的。但从性能上来看,相比其他机型,TitanRTX有着不错的表现。(1)显存能支持的最大batchsize如下:前三个是机器翻译模型,后三个是预训练语言模型。两者的统计方式不太一样,一个序列可能有几十个到上百个令牌。带*的符号表示GPU显存不够运行模型(2)performance中带*的符号表示GPU显存不够运行模型3.基于RTX8000,以上性能表不一定向右直觉,lambda是基于QuadroRTX8000,将其设置为“1”,其他GPU计算相对于此GPU的性能。下面展示了在不同GPU上训练的不同模型的数据吞吐量:对于所有的测试结果,lambda给出了测试模型和数据集。例如CV中的各种任务,使用了ImageNet、MSCOCO、CityScape等主流主要数据集,模型也直接使用了原作者在GitHub上的开源代码。如果是NLP中的各种任务,除了WMT英德数据集外,还使用了GLUEbenchmark中的其他数据集。从图像识别、分割、检测和生成,到机器翻译、语言模型和GLUE基准测试,这些任务几乎涵盖了绝大多数使用GPU的场景,这样的测试是相当合理的。2、2020年深度学习需要什么样的GPU?“老机型”跑不起来,更谈不上开发新机型。看完以上测试结果,是不是有种“人生突然失去了梦想”的感觉呢?除了硬件,我们在本次评测中还可以观察到深度学习发展趋势的变化:语言模型比图像模型更需要。大容量显存。请注意,语言模型的曲线轨迹比图像模型的曲线轨迹更陡峭。这表明语言模型更受内存限制,而图像模型更受计算限制。内存越高,性能越强。因为内存越大,batchsize越大,CUDAcore可以更接近满负荷工作。更大的显存可以按比例使用更大的batchsize,因此可以推断:与具有8GB显存的GPU相比,具有24GB显存的GPU可以使用3倍的batch。对于长序列,语言模型的内存占用会不成比例地增长,因为注意力在序列长度上是二次方的。有了这些见解,我们很乐意选择GPU:RTX2060(6GB):如果您想在业余时间探索深度学习。RTX2070或2080(8GB):如果你想认真对待深度学习,但GPU的预算只有600-800美元。8G显存可适用于大多数主流深度学习模型。RTX2080Ti(11GB):如果你想认真研究深度学习,但你可以为GPU预算高达1200美元。RTX2080Ti在深度学习训练方面比RTX2080快40%左右。TitanRTX和QuadroRTX6000(24GB):如果你经常研究SOTA型号但又没有足够的钱购买RTX8000,这些是可以选择的显卡。QuadroRTX8000(48GB):恭喜你,你的投资面向未来,你的研究甚至可能成为2020年新的SOTA。3.GPU太贵了。我现在选择训练模型。GPU内存必须至少为8GB。相应的价格有点令人沮丧。事实上,很多大公司都推出了免费的GPU计算资源用于研究和实验,比如知名的KaggleKernel和GoogleColab,可以提供非常好的K80或者P100等GPU资源,而且Colab也可以提供免费的TPU。其实国内有免费的GPU,百度的AIStudio可以提供像TeslaV100这样强大的算力。这三者各有优缺点。KaggleKernel和Colab都需要科学上线,而KaggleKernel只能提供最基本的K80GPU,算力不大。Colab还将提供T4和P100GPU。算力确实够用,但Colab有时会打断你的计算调用,需要特殊技能才能解决。百度AIStudio还可以提供非常强大的V100算力,现在还有免费的算力卡计划,日常运行环境可以获得12小时的GPU使用。但问题是百度AIStudio只能调用PaddlePaddle框架,不能自由选择TF或PyTorch。一、Colab的拔毛技巧很多开发者在使用Colab时总是会时不时地抱怨终止,抱怨每次结束后所有的包和文件都会被删除。但其实,除了科学上网,还可以解决很多其他问题。首先,最大的问题就是Colab会被打断,但是我用过很多次,几乎每次只要不关闭页面,连续运行十几个小时是没有问题的。根据我们的经验,最好在北京时间上午9:00之后开始跑步,因为北美此时刚过凌晨12:00,连续跑步的时间更长。像T4或P100这样的GPU连续运行10多个小时已经很划算了,即使是复杂的模型也可以初步训练。那万一坏了呢?这是要考虑加载GoogleDrive。Colab的一大优点是它可以与GoogleCloudDrive交互。也就是说,训练了一些Epochs之后,可以将模型保存在云盘中,这样就可以实现持久化训练。每当Colab中断时,我们都可以从云端读取保存的模型并继续训练。以上两行代码可以将GoogleDrive加载到远程实例的“content/drive”目录下,后续所有的模型操作和数据集操作都可以在该目录下完成。即使Colab断开连接,所有操作仍然可以保存在GoogleDrive中。只要做好以上两个tips,Colab就非常实用了。当然,如果读者发现分配的GPU是K80,可以多次重启Colab,即释放内存,重启本地文件。每次重启都会重新分配GPU硬件,你可以“等”P100。此外,开发者还探索了更多的秘技来保证Colab的连接不会断开,比如运行一段模拟鼠标点击的代码,让Colab在断开时可以自己重连:functionClickConnect(){console.log("Working");document.querySelector("colab-toolbar-button#connect").click()}setInterval(ClickConnect,60000)2.AIStudio的计算能力真的很强。Colab的P100已经很不错了,显存16GB,训练大模型还行,AIStudio的V100更厉害。即使AIStudio不申请计算卡,每天登录项目也可以获得12个GPU计算,连续登录可以获得奖励。AIStudio类似于JupyterNotebook的编辑界面也非常好用,并且运行环境中断后保存在磁盘上的文件不会被删除,这也是Colab的局限性。但是平台只能导入PaddlePaddle框架,所以对于熟悉PaddlePaddle框架的开发者来说,AIStudio是最好的免费算力平台。我们试了一下,在终端可以安装其他框架,而且新安装的框架进入Python自带的IDE后也可以导入。但是在Notebook界面,会显示只能导入PaddlePaddle。最后,看了这么多顶级GPU的性能对比,也了解了免费GPU计算资源的特点。那么,您是否应该呆在家里并从事很酷的深度学习新模型和功能?参考内容:https://lambdalabs.com/blog/choosing-a-gpu-for-deep-learning/【本文为机器之心专栏原文翻译,微信公众号“机器之心”机器(id:almosthuman2014)》】点此查看作者更多好文