AIAK 简介
更新时间:2022-08-12
什么是AIAK?
AI加速套件AI Accelerate Kit(后文使用简称 AIAK)是基于百度云IAAS资源推出的AI加速能力,用来加速Pytorch、TensorFlow等深度学习框架的AI 应用,能极大提升分布式训练和推理的性能。下图为AIAK的整体解决方案架构图。
应用场景
AIAK加速套件支持但不限于以下场景:
- 自然语言处理,例如BERT,Transformer等。
- 图像识别,例如ResNet等。
优势
- 多框架支持:提供对TensorFlow和PyTorch多种人工智能框架的加速优化。
- 轻量便捷:基于开源框架编写的算法代码或模型代码,只需少量修改。
AIAK-Training
AIAK-Training是基于Horovod深度定制优化的分布式训练框架,在保留Horovod已有功能特性的基础上,增加了新的通信优化特性,能够进一步提升分布式训练吞吐。AIAK-Training完全兼容Horovod 原有API,用户如果已经使用原生Horovod进行训练,已有的功能代码无需进行任何改变。下图为AIAK-Training架构图。
相比原生Horovod,AIAK-Training 新增了如下加速特性:
- 新增优化版分层Allreduce实现,相比原生Horovod分层Allreduce 实现,性能提升10%。
- 支持Deep Gradient Compression (DGC) 通信压缩技术,降低通信量,提升传输效率。暂仅支持PyTorch。
- 支持参数更新计算和梯度通信重叠,无需等待全局通信结束后统一进行参数更新,进一步隐藏通信时间。暂仅支持PyTorch。
- 支持fused optimizer,融合参数更新计算Kernel,减少访存、kernel launch等消耗。暂仅支持PyTorch。
性能表现
在TCP-30Gbps-1NIC 场景下,2台单机8卡提升85.5%,4台单机8卡提升43.7%。
在TCP-100Gbps-1NIC 场景下,2台单机卡提升85.5%,4台单机8卡提升52.1%。
在RDMA-100Gbps-1NIC场景下,2台单机8卡提升8.5%,4台单机8卡提升11.4%。
AIAK-Inference
AIAK-Inference是通过优化AI框架(Tensorflow、PyTorch)产出的模型,降低在线推理延迟、提升服务吞吐,大幅增加异构资源使用效率。下图为AIAK-Inference 架构图。
推理加速总体分为5大模块,分别的功能简介如下:
- 框架接入:对接Tensorflow/PyTorch等主流深度学习框架,直接结合原生框架能力对接,不需要框架间图转换,减少额外性能损耗。
- 图优化器:整体理解模型信息,结合硬件芯片特点,自动进行模型切分,使各个子图易于融合,减少冗余访存。
- 图转换器:将优化后的子图转换为多后端引擎支持的格式,进行后端实际推理。
- 多后端引擎:针对不同模型结构,在多类推理引擎间进行任务切分,同时支持常见模型与长尾模型优化,兼顾性能与灵活性。
- 高性能算子库:结合硬件厂商提供的基础算子库,针对常见模型中的典型结构(例如Transformer)和计算密集型算子(GEMM、Conv)进行深度定制,使模型推理过程中发挥硬件极致性能。
性能表现
通过图优化和算子融合提升加速效率,ResNet 等经典模型可以加速15%~135%。