可以在当前消费级 GPU 上训练多大的神经网络?(1060,1070,1080)

人工智能 神经网络 训练 表现 硬件评估
2021-10-29 22:06:23

是否可以根据经验估计可在普通消费级 GPU 上训练的神经网络的大小

例如,运动的出现(强化)论文使用神经元的 tanh 激活来训练网络。他们有一个 3 层的 NN,有 300,200,100 个单位用于Planar Walker但他们不报告硬件和时间。

但是可以制定一个经验法则吗?

此外,仅基于当前的经验结果。所以,例如,X使用 sigmoid 激活的单元可以运行Y在 1060 上每小时学习迭代次数。

或者使用激活函数a代替b导致n性能下降倍数。

如果一个学生/研究人员/好奇的人要购买一个 GPU 来玩这些网络,你如何决定你得到什么?1060 显然是入门级的预算选项,但您如何评估仅购买一台糟糕的上网本而不是构建一个高功率台式机并将节省的美元用于按需云基础设施是否更聪明。

问题的动机:我刚刚购买了一台 1060 并且(聪明,事后问这个问题)想知道我是否应该保留 $ 并创建一个 Google Cloud 帐户。如果我可以在 GPU 上运行我的硕士论文模拟。

3个回答

通常问题是将模型放入视频 RAM 中。如果没有,你根本无法训练你的模型而不付出很大的努力(比如单独训练模型的各个部分)。如果是这样,时间是你唯一的问题。但是 Nvidia 1080 等消费级 GPU 与 Nvidia K80 等更昂贵的 GPU 加速器之间的训练时间差异并不是很大。实际上,最好的消费卡比 GPU 加速器更快,但缺少 VRAM 等其他属性。随机比较和基准测试:哪些 GPU 用于深度学习:我在深度学习中使用 GPU 的经验和建议,NVIDIA 的 GeForce GTX 1080 和 Tesla P100 用于深度学习的比较

要计算您的模型是否适合 VRAM,您只需估算您拥有多少数据和哪些超参数(输入、输出、权重、层、批量大小、哪种数据类型等)。

作为一个警告,我建议除非你在挑战基本的技术限制,否则在开发神经网络架构时,计算速度和资源应该是设计原理的次要因素。

也就是说,今年早些时候,我完成了我的硕士论文,该论文涉及具有全基因组测序数据的生物信息学分析管道——根据我们的集群工作经理的说法,该项目花费了超过 100,000 小时的计算时间来开发。当您在最后期限时,资源可能是一个真正的限制,而速度可能是至关重要的。

因此,按照我的理解回答您的问题:

用这笔钱在云端购买时间会更好吗?

大概。您在 1060 上花费的几百美元将使您在云中训练您的模型。此外,据我所知,您不需要 GPU 100% 的时间都在运行(例如,如果您正在挖掘加密货币,您会这样做)。最后,通过云实例,您可以扩展,一次训练多个模型,这可以加快您确定的任何架构的探索和验证。

有没有办法衡量给定 GPU 上神经网络的计算时间

好吧,Big O是一个估算器,但听起来您想要一种更精确的方法。我确定它们存在,但我认为您可以通过简单的包络计算来进行估计,这些计算考虑了线程、内存、代码迭代等。您真的想深入研究 GPU 处理管道吗? 1060?通过了解代码和金属之间发生的一切,您可能能够得出一个很好的估计,但最终可能不值得花费时间和精力;它可能会确认大 O 表示法(简单模型,如果你愿意的话)捕获了计算时间的大部分变化。如果您发现瓶颈,您可以做的一件事是性能分析。

这取决于你需要什么。您可以在任何资源上训练任何规模的网络。问题是训练时间。如果您想在平均 CPU 上训练 Inception,则需要几个月的时间才能收敛。因此,这完全取决于您可以等待多长时间才能看到基于您的网络的结果。在神经网络中,我们不仅有一个操作,而且有很多操作(如连接、最大池化、填充等),因此不可能在搜索时做出估计。只需开始训练一些臭名昭著的网络并测量时间。然后,您可以插值训练您正在搜索的网络需要多长时间。