GPU云平台与基于NVIDIA显卡的GPU专用服务器的对比(基准)。
本文代表了在不同 GPU 平台上训练模型的比较经验:谷歌、AWS和荷兰国内托管服务提供商HOSTKEY。Catalyst 的数据科学专家比较了训练模型的时间和金钱投资,并选择了最佳选择。
Catalyst 团队准备的材料。
此处表达的作者的观点可能不代表出版商的观点。
如今,IT 行业的所有领域、科学项目、安全系统和其他领域都对高性能 GPU 有很高的需求。工程师、建筑师和设计师需要强大的计算机来进行渲染和 3D 动画、训练神经网络和数据分析、实时分析以及其他涉及大量计算的任务。总的来说,高性能GPU服务器是市场上非常流行的解决方案。
年复一年,人工智能 (AI) 和机器学习 (ML) 的方法和应用在所有领域都变得越来越普遍。这些技术已经彻底改变了医疗诊断、金融工具开发、新数据处理服务的创建以及促进基础科学、机器人、人力资源管理、运输、重工业、城市经济、语音识别、人员和内容交付设施。例如,NVIDIA 鼓励功能强大的 GPU 计算机的所有者捐赠其处理能力,以帮助对抗 COVID-19 冠状病毒大流行。
GPU 即服务
随着许多现代机器学习任务使用图形处理器,人们越来越多地面临一个首要问题:我应该使用哪一个?要回答这个问题,您需要了解不同 GPU 的成本和性能指标。目前,有许多提供商为机器学习提供虚拟、云 (GPUaaS) 和专用 GPU 服务器。
当您需要持续的计算能力,并且维护自己的机器被禁止或根本不可能时,专用服务器是最佳选择。一些供应商按月出租 GPU 服务器,如果你有合适的工作负载,可以让服务器在几小时和几分钟内保持忙碌,那么价格确实非常有吸引力。但是,在大多数情况下,具有按小时或分钟计费的虚拟服务器 (VDS / VPS) 或云服务仍然是首选,因为它们通常更便宜且更灵活。
四个领先供应商的专用 GPU 服务器池中使用的 GPU 类型(根据 Lliftr Cloud Insight,2019 年 5 月)
根据最新的 Global Market Insights 报告,到 2025 年,全球 GPUaaS 市场将达到 70 亿美元。市场参与者正在开发专门用于深度学习 (DL) 和 AI 的 GPU 解决方案。例如,NVIDIA 深度学习 SDK 为深度学习算法提供高性能 GPU 加速,旨在创建现成的 DL 框架。
GPUaaS 公司专注于技术创新、战略收购和兼并,以加强其市场地位并争夺市场份额。GPUaaS 市场的主要参与者包括 AMD、Autodesk、亚马逊网络服务 (AWS)、Cogeco Communications、达索系统、IBM、英特尔、微软、Nimbix、NVIDIA、企鹅计算、高通、西门子、HTC。对于机器学习,最流行的 GPU 是 AWS、Google Cloud Engine、IBM Cloud 和 Microsoft Azure。
您还可以利用不太知名的供应商提供的图形加速器的强大功能——他们的 GPU 服务器可用于任何数量的项目。每个平台都有其优点和缺点。相信配备强大 GPU 的高性能服务器可以让您快速实现目标并获得有意义的结果,但昂贵的迭代是否物有所值,在什么情况下?
学习和了解更多
训练模型的过程在计算上更昂贵,并且比执行已经训练好的模型需要更多的资源。如果任务不意味着某种超高负载,例如来自大量相机的人脸识别,那么对于大多数工作,只需一两个 GeForce GTX 1080 Ti 级别的显卡就足够了——这是管理的关键要素那个项目预算。最强大的现代 Tesla V100 GPU 通常仅用于训练。
此外,模型的工作版本可能只占用 GPU 资源的一小部分——这意味着一张卡可以用来执行多个模型。但是,由于内存总线设备的性质,这种方法在训练时不起作用,并且每个模型的训练都使用整数个图形加速器。此外,学习过程通常是一组测试假设的实验,当模型使用许多不同的参数从头开始重复训练时。这些实验可以方便地在相邻的显卡上并行运行。
当达到预期的准确度时,或者当准确度不再随着任何进一步的训练而增加时,模型被认为是经过训练的。有时在训练模型时会出现瓶颈。预处理和下载图像等辅助操作可能会占用大量处理器时间。这意味着服务器配置没有针对此特定任务正确平衡:即 CPU 无法有效地“供给”GPU。
这也适用于专用和虚拟服务器。在虚拟服务器中,这个问题也可能是由一个 CPU 实际上为多个 GPU 服务的事实引起的。专用处理器已满负荷运行,但其能力可能仍然不足。简而言之,在许多任务中,中央处理器的能力很重要,因为它需要在任务的第一阶段处理数据。(见下图)
简化的模型训练方案。
在多个 (N) GPU 上的训练如下:
- 拍摄一组照片,分成N份,通过加速器“分解”;
- 在每个加速器中,它的错误率是针对它自己的一组图片以及它的未来梯度(系数必须去的方向,以便错误率变得更小)计算的;
- 来自所有加速器的梯度由其中之一收集并相加;
- 该模型在一个加速器上向平均方向迈出一步并学习;
- 然后将一个新的、改进的模型发送到其余的 GPU,并循环回到步骤 1 并重复。
如果模型工作负载很轻,那么在一个 GPU 上执行 N 个周期比它们在 N 个 GPU 上的分布更快,然后是结果的组合。节省可能是巨大的。实际上,在使用模型进行主动实验时,财务支出可能会很大。例如,在测试许多假设时,计算时间有时会持续数天,因此,公司有时会每月花费数万美元租用 Google 服务器。
救命的催化剂
Catalyst 是一个高级库,可让您更快、更高效地进行深度学习研究和开发模型,从而减少样板代码的数量。Catalyst 接管了管道的扩展,并提供了快速、可重复地训练大量模型的能力。因此,您可以减少编程,更多地关注假设检验。该库包括许多最佳的行业解决方案,以及用于分类、检测和分割的现成管道。
最近,Catalyst 团队与佐治亚州立大学、佐治亚理工学院和埃默里大学神经影像和数据科学转化研究联合中心 (TReNDS) 合作,以简化神经影像应用的模型训练并提供可重复的深度学习脑成像领域的研究。在这些重要问题上合作将有助于更好地了解大脑的工作方式并提高精神障碍患者的生活质量。
回到文章的主题,在所有三种情况下都使用了 Catalyst 来检查服务器的速度:在 HOSTKEY、Amazon 和 Google 服务器上。让我们比较一下它是如何进行的。
便于使用
一个重要的指标是解决方案的可用性。很少有服务提供直观的虚拟服务器管理系统,其中包含所有必要的库以及有关如何使用它们的说明。例如,在使用 Google Cloud 时,您必须自己安装库。以下是对 Web 界面的主观评估:
服务网页界面
AWS Anti-leader:所有配置都用p2.xlarge风格的名字编码——要了解每个名字下隐藏着什么硬件,你需要去单独的页面,大约有一百个这样的名字
谷歌平均评分,不是很直观的设置
Google Colab Jupyter Notebook 模拟
未使用HOSTKEY Web 服务
事实上,要开始使用这些工具,大约需要 20 到 60 分钟(取决于您的资格)准备——安装软件和下载数据。至于使用预发布、即用型实例的便利性,这里的情况如下:
服务软件套件
AWS 绝对的领导者,每个实例都包含每个流行版本的机器学习库以及一个预装的 NVIDIA-Docker。有一个自述文件,其中包含有关如何在无数版本之间切换的简要说明。
Google与 HOSTKEY 相当,但您可以安装您的 Google 驱动器,因此可以非常快速地访问数据集,而无需将其传输到实例。
Google Colab免费提供,但每 6-10 小时实例就会死亡一次。该软件完全不存在,包括 Docker + NVIDIA-Docker2 以及安装它们的能力,尽管您可以没有它们。没有直接的 SSH 连接,但可以快速访问您的 Google 驱动器。
HOSTKEY 服务器可以在没有软件和已经完全配置的情况下提供。对于自调优,您可以使用 Docker + NVIDIA-Docker2 形式的软件。对于有经验的用户来说,这不是问题。
实验结果
来自 Catalyst 项目的一组专家对使用 NVIDIA GPU 在以下供应商的服务器上训练模型的成本和速度进行了对比测试:HOSTKEY(从一到三个 GeForce GTX 1080 Ti GPU + Xeon E3)、谷歌(特斯拉 T4) 和 AWS (特斯拉 K80)。这些测试使用标准的 ResNet 架构来处理这些类型的计算机视觉任务,从他们的画作中确定艺术家的名字。
在 HOSTKEY 的情况下,有两种住宿选择。第一:具有一个或三个显卡的物理机,Intel Xeon E5–2637 v4 CPU(4/8,3.5 / 3.7 GHz,15 MB 缓存),16 GB RAM 和 240 GB SSD。第二:具有相同配置的虚拟专用 VDS 服务器,带有一个视频卡。唯一不同的是,在第二种情况下,物理服务器同时有八张卡,但只有一张交给客户端完全处置。所有服务器都位于荷兰的数据中心。
两家云提供商的实例均在美因河畔法兰克福数据中心启动。以 AWS 为例,使用的是 p2.xlarge 类型,配备 Tesla K80、4 个 vCPU、61 GB RAM。它的部分计算机时间用于数据准备。类似的情况发生在谷歌云中,使用了 4 个 vCPU 和 32 GB 内存的实例,并添加了加速器。选择 Tesla T4 卡,即使它专注于推理,也是因为从训练性能来看,它介于 GTX 1080 Ti 和 Tesla V100 之间。在实践中,它有时仍用于培训,因为它的成本远低于 V100。
不同平台上机器学习时间和模型训练成本的比较
该模型有两个版本:“重”(resnet101)和“轻”(resnet34)。重型版本最有可能实现高精度,而轻型版本则提供更大的性能提升,但错误略多。较重的模型通常用于对获得最大预测结果至关重要的地方,例如在参加比赛时,而较轻的模型用于需要在精度和处理速度之间取得平衡的地方,例如在负载系统中每天处理数以万计的请求。
训练成本,美元/训练时间,重模型
x 轴 — 时间,秒 y 轴 — 成本,美元
在带有“内部”默认卡的 HOSTKEY 服务器上训练模型的成本几乎比谷歌或亚马逊便宜一个数量级,但需要的时间略多。此外,尽管事实上 GeForce GTX 1080 Ti 远不是当今解决深度学习任务的最快显卡。然而,正如实验结果表明的那样,一般来说,像 GeForce GTX 1080 Ti 这样廉价的显卡在速度方面并不比更昂贵的同类产品差,尽管它们的成本要低得多。
训练成本,美元/训练时间,轻型模型
x 轴 — 时间,秒 y 轴 — 成本,美元
如果卡便宜一个数量级,那么在重型模型上的性能只差 2-3 倍,您可以通过添加更多卡来加速整个过程。无论如何,就训练模型的成本而言,该解决方案将比特斯拉配置更便宜。结果还显示,AWS中表现出高性能的双精度计算的Tesla K80在单精度下的时间很长——比1080 Ti差。
结论
总体趋势是:与特斯拉昂贵的 GPU 相比,更便宜的消费级显卡总体上物有所值。GTX 1080 Ti 与 Tesla 相比纯粹速度上的不足可以通过增加卡的数量来弥补,从而消除使用 Tesla 的任何优势。
如果您计划执行计算机繁重的任务,配备廉价 GTX 1080 Ti 的服务器就足够了。它们适合计划长期使用这些资源的用户。只有在模型训练花费的时间很少并且您可以按训练分钟支付工作费用的情况下,才应选择昂贵的基于 Tesla 的实例。
最后,还应该考虑在平台上准备环境的简单性——安装库、部署软件和下载数据。GPU 服务器(真实的和虚拟的)仍然明显比经典 CPU 实例贵,因此长时间的准备可能会导致成本增加。