深度学习硬件性能对比

深度学习硬件性能与成本分析

深度学习领域,硬件的性能与成本是衡量其实用性的关键指标。随着技术的进步,新型硬件不断涌现,挑战着现有的市场领导者。例如,Intel的Habana Gaudi系列高性能处理器(HPU)在人工智能社区中逐渐受到关注,尤其是在自然语言处理(NLP)领域训练变换器模型时,它们的表现开始对NVIDIA的GPU构成挑战。

Gaudi加速器与其GPU竞争对手的主要区别在于,它们专为运行机器学习模型中的操作而设计。这些加速器支持PyTorch和TensorFlow,并使用SynapseAI®进行绑定,类似于CUDA或TensorRT。在Roboflow,对评估这些新型HPU卡在计算机视觉用例中的表现很感兴趣。选择了流行的YOLOv5模型,该模型拥有经过实战考验的PyTorch训练流程和健全的数据增强管道。在标准的物体检测基准COCO数据集上,对YOLOv5进行了基准测试,该数据集包含121k张图像。

通过Intel的Disruptor计划,将配备8个Habana Gaudi1 HPU加速器的DL1实例(很快将被它们的Gaudi2继任者超越)与8个A100 GPU的刀片进行了对比测试。总结了初步发现,并提供了一个指南,说明如何复制研究以供自己使用。

总的来说,8个NVIDIA A100的成本是每个COCO周期$0.98,而8个Intel Gaudi1 HPU的成本是每个COCO周期$0.73。为了建立GPU基线,选择了代表NVIDIA在云上今天提供的最佳产品的A100 GPU。在AWS上,启动了一个带有8个A100 GPU的p4d.24xlarge实例,按需价格为每小时$32.77。一旦实例被分配,可以通过SSH进入它。

ssh -i ~/.ssh/sshkey IP_ADDRESS

进入实例后,克隆并安装YOLOv5,并根据Ultralytics的多GPU训练指南,在8个A100上以128的批量大小启动yolov5s模型在COCO数据集上的多GPU训练:

python -m torch.distributed.run --nproc_per_node 8 train.py --batch 128 --data coco.yaml --weights yolov5s.pt --device 0,1,2,3,4,5,6,7

在训练过程中,观察到每个周期的时间为1分钟48秒。检查GPU利用率时,看到每个GPU的利用率大约为80%,这表明在这种设置上几乎实现了完整的训练速度性能。还可以查看所有CPU的使用情况,以确保正在使用可用的核心。为了计算A100 GPU的效率,将每个COCO周期的训练时间乘以实例的每时间价格,以计算每个周期的成本。

8个A100的设置提供了每个周期$0.98的成本。对于HPU基准测试,选择了由Habana Labs(Intel公司)提供的Gaudi加速器驱动的AWS上的DL1实例。测试的HPU是Gaudi1加速器(大约比Intel的新型Gaudi2加速器慢4倍)。当Gaudi2加速器更广泛可用时,将发布关于Gaudi2加速器的后续帖子。

要开始,在AWS上启动了一个dl1.24xlarge实例。确保从AWS AMI库中的Habana深度学习基础AMI启动实例,以利用Intel提供的Habana和Gaudi预安装。为了复制这篇文章,启动SynapseAI® Ver 1.7.0。除了启动基础AMI外,还需要为Gaudi1加速器配置PyTorch绑定。

pip3 install habana_frameworks export PYTHON=/usr/bin/python3.8 wget -nv https://vault.habana.ai/artifactory/gaudi-installer/latest/habanalabs-installer.sh chmod +x habanalabs-installer.sh ./habanalabs-installer.sh install --type pytorch

为了在HPU上训练YOLOv5,将PyTorch训练流程转换为适应新硬件。可以在Habana的移植PyTorch指南中阅读有关Habana PyTorch API功能的基本信息。使用的Habana核心模块包括:

import habana_frameworks.torch.core as htcore from habana_frameworks.torch.hpex import hmp from habana_frameworks.torch.hpex.optimizers import FusedSGD from habana_frameworks.torch.hpex.movingavrg import FusedEMA

一旦设置好YOLOv5代码在Gaudi加速器上运行,就在COCO上启动训练,使用yolov5s模型,批量大小为128,以与A100基准测试等效:

python3 -m torch.distributed.launch --nproc_per_node 8 train.py --noval --data ./data/coco.yaml --weights '' --cfg yolov5s.yaml --project runs/train1 --epochs 300 --exist-ok --batch-size 128 --device hpu --run-build-targets-cpu 1 --run_lazy_mode --hmp --hmp-opt-level O1

在训练过程中,观察到每个周期的时间为3分21秒。为了检查否充分利用了所有的HPU卡,运行hl-smi -l。这些检查显示所有卡的利用率,HPU内存饱和。AIP-Util没有显示在每个卡上都达到最大值,可能表明在训练配置中还有一些额外的性能提升空间。还可以检查CPU使用情况,以确保正在使用拥有的核心。

为了计算Gaudi1 HPU的效率,将每个COCO周期的训练时间乘以实例的每时间价格,以计算每个周期的成本。

8个Gaudi1 HPU的设置提供了每个周期$0.73的成本。在计算机视觉的深度学习硬件的前沿,Habana Gaudi HPU为NVIDIA GPU提供了一个新的替代品。当在COCO上基准测试YOLOv5的训练时,发现Habana Gaudi1 HPU的性能比现有的NVIDIA A100 GPU高出$0.25每个周期。这是每美元25%更多的周期。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485