神龙AI加速引擎AIACC是基于阿里云IaaS资源推出的AI加速引擎,用于优化基于AI主流计算框架搭建的模型,使用AIACC可加速深度学习应用,能显著提升模型的训练和推理性能。同时配合资源管理工具FastGPU快速构建AI计算任务,可以全面提升研发效率。接下来让我们一起更全面的了解阿里云——神龙AI加速引擎AIACC。
一、如何使用AIACC加速深度学习应用
神龙AI加速引擎AIACC包括AIACC-Training(AIACC训练加速)和AIACC-Inference(AIACC推理加速)两部分。通过AIACC加速深度学习应用时,基础架构图如下所示:
框架层 |
说明 |
资源层 (阿里云IaaS资源) |
在资源层使用阿里云IaaS资源,按需开启,满足大规模GPU集群的计算、存储、网络资源的弹性需求。 |
调度层 (神龙AI加速资源管理) |
在调度层使用FastGPU构建AI计算任务并管理大规模GPU集群相关的资源。更多信息,请参见什么是集群极速部署工具FastGPU。 |
框架层 (神龙AI加速引擎) |
在框架层使用AIACC实现多框架统一加速。AIACC主要利用了基于通信的性能优化技术,分布式训练时需要在各机器之间、GPU卡之间交换数据,需要做到高效的数据通信才能保证加速效果。更多信息,请参见神龙AI训练加速引擎AIACC-Training(AIACC训练加速)和神龙AI推理加速引擎AIACC-Inference(AIACC推理加速)。 |
应用层 (神龙AI加速参考解决方案) |
在应用层实现针对各种应用场景的深度学习应用,覆盖图像识别、目标检测、视频识别、CTR预估、自然语言理解、语音识别等常见场景。由于在框架层使用AIACC实现多框架统一加速,您只需调整少量代码即可大幅提升应用性能。 |
二、产品优势
使用AIACC加速深度学习应用具有以下优势:
- 基于阿里云IaaS资源,资源易用性和稳定性有保障。
- 配合FastGPU一键构建任务,缩短创建和配置资源的时间并提高GPU资源利用率,大幅降低成本。
- 支持多框架统一加速,显著提升训练和推理性能,且适配工作量较小。
- 采用AI算法研发时,验证周期更短,模型迭代速度更快,从而大幅提升研发效率。
三、神龙AI训练加速引擎——AIACC-Training(AIACC训练加速)
AIACC-Training(原Ali-perseus、Perseus-Training)是阿里云神龙计算加速团队基于阿里云IaaS资源层研发和维护的高效人工智能分布式训练加速组件,旨在实现开源兼容以及无感地加速您的分布式训练任务。
- AIACC-Training(AIACC训练加速)的框架图如下所示:
框架层 |
说明 |
AI主流计算框架 |
AI主流计算框架包括TensorFlow、PyTorch、MxNet和Caffe。AIACC-Training支持对基于AI主流计算框架搭建的模型进行分布式训练和任务加速。 |
接口层 |
接口层主要包括统一通信接口类、统一基础组件类、统一基础通信类以及统一梯度入口层,该层提供了与AIACC-Training系统进行交互和通信的统一接口和组件。AIACC-Training兼容了PyTorch DDP和Horovod的API,对于原生的分布式训练实现了无感的性能加速。 |
底层加速层 |
底层加速层通常使用高性能分布式通信库统一实现模型的性能优化,与梯度协商优化、梯度融合优化、梯度压缩优化以及通信操作优化配合使用。针对阿里云网络基础设施和AI数据并行分布式训练的特性,AIACC-Training的优化带来了显著的性能提升。 |
- AIACC-Training(AIACC训练加速)支持的加速特性包括但不限于:
- 梯度融合通信支持自适应多流、自适应梯度融合,显著提升带宽密集的网络模型的训练性能,提速50%~300%。
- 采用高度优化的在线/离线梯度协商机制,将大规模节点下梯度协商的开销降低一到两个数量级。
- 采用分级的Allreduce方法,支持FP16梯度压缩及混合精度压缩。
- 支持Gossip风格梯度压缩技术。
- 支持Multistep梯度通信优化。
- 提供针对RDMA/eRDMA网络的深度优化。
- 提供针对MXNet的API扩展,支持InsightFace类型的数据+模型并行,以及SyncBN Operator增强。
- 支持GroupComm的分组通信算子,能够快速构建数据+模型并行的复杂通信组合训练。
AIACC-Training(AIACC训练加速)的训练速度与训练成本具有显著优势。更多详细测试数据,请参见Stanford DAWNBench。
- 典型分布式训练的优化案例如下表所示:
客户 |
模型 |
框架 |
规模(GPU张数) |
训练速度提升 |
某智能芯片厂商 |
图像分类 |
MXNet |
256 |
100% |
某智能芯片厂商 |
人脸识别 |
MXNet |
256 |
200% |
某汽车厂商 |
FaceNet |
PyTorch |
32 |
100% |
某手机厂商 |
BERT |
TensorFlow |
32 |
30% |
某手机厂商 |
GPT2 |
PyTorch |
32 |
30% |
某人工智能厂商 |
Faster-RCNN |
MXNet、hvd、byteps |
128 |
30% |
某人工智能厂商 |
InsightFace |
MXNet、hvd、byteps |
128 |
200% |
某在线教育 |
ESPnet |
PyTorch-DP |
16 |
30% |
某在线教育 |
ESPnet2 |
PyTorch-DDP |
16 |
30% |
某在线教育 |
CTR |
PyTorch |
32 |
80% |
某在线教育 |
OCR |
PyTorch |
32 |
30% |
某手机厂商 |
图像分类 |
PyTorch |
128 |
25% |
某手机厂商 |
MAE |
PyTorch |
32 |
30% |
某研究院 |
GPT2 |
PyTorch+Megatron |
32 |
30% |
某社交媒体 |
MMDetection2 |
PyTorch |
32 |
30% |
某金融智能 |
InsightFace |
PyTorch |
32 |
50% |
某手机厂商 |
Detection2 |
PyTorch |
64 |
25% |
某视觉团队 |
insightface |
MXNet |
64 |
50% |
某游戏厂商 |
ResNet |
PyTorch |
32 |
30% |
某城市大脑 |
InsightFace |
MXNet |
16 |
42% |
某制药科技 |
Autoencoder |
PyTorch |
32 |
30% |
某自动驾驶 |
swin-transformer |
PyTorch |
32 |
70% |
- 关于如何安装和使用AIACC-Training(AIACC训练加速),请参见:
- 安装AIACC-Training
- 使用AIACC-Training PyTorch版
- 使用AIACC-Training TensorFlow版
- 使用AIACC-Training MXNet版
- 启动方式与环境变量说明
- AIACC-Training常见问题
四、神龙AI推理加速引擎——AIACC-Inference(AIACC推理加速)
AIACC-Inference(AIACC推理加速)的推理速度与推理成本具有显著优势。更多详细测试数据,请参见Stanford DAWNBench。
AIACC-Inference(AIACC推理加速)支持的加速特性:高性能算子加速库会在自研高性能算子和NVIDIA算子中找到最优算子,并生成高性能算子列表供加速引擎进行子图分割和传递。
关于如何安装和使用AIACC-Inference(AIACC推理加速),请参见:
好啦!小弹的分享到此为止。我们更欢迎您分享您对阿里云产品的设想、对功能的建议或者各种吐槽,请扫描提交问卷并获得社区积分或精美礼品一份。https://survey.aliyun.com/apps/zhiliao/P4y44bm_8
【扫码填写上方调研问卷】
欢迎每位来到弹性计算的开发者们来反馈问题哦~