facebookincubator/AITemplate
AITemplate is a Python framework which renders neural network into high performance CUDA/HIP C++ code. Specialized for FP16 TensorCore (NVIDIA GPU) and MatrixCore (AMD GPU) inference.
解决的问题
AITemplate 旨在最大化在 NVIDIA 和 AMD GPU 上深度神经网络的推理速度。它通过将模型转换为高度优化的自包含 C++ 代码,解决了通用运行时的性能瓶颈,从而实现接近硬件理论最大性能(屋顶线)的推理服务。
工作原理
该框架将神经网络图转换为 CUDA 或 HIP C++ 代码。它采用多种先进的融合技术,以减少内存开销并提高 GPU 利用率:
- 水平融合:将具有不同输入形状的并行操作(如 GEMM 或 LayerNorm)合并为单个内核。
- 垂直融合:将一系列操作(如元素级操作和归约)直接融合到 TensorCore 或 MatrixCore 操作中。
- 内存融合:将连接、分割和切片等内存操作集成到其前序操作中。
它包含一个名为 FX2AIT 的工具,可将 PyTorch 模型转换为 AITemplate 引擎。如果模型包含 AITemplate 尚未支持的操作,FX2AIT 可通过拆分模型实现部分加速。
适用人群
需要在 Ampere 代 NVIDIA GPU(SM80+)或 CDNA2 AMD GPU(MI-210/250)上实现极致推理性能的开发者和工程师,尤其适用于 BERT、Stable Diffusion 和 Vision Transformers 等模型。
特色亮点
- 硬件无关:可在 NVIDIA 和 AMD GPU 平台上运行。
- 零依赖:编译后的模型是自包含的二进制文件,运行时无需 cuBLAS、cuDNN 或 TensorRT 等第三方库。
- PyTorch 集成:可直接使用 PyTorch 张量作为输入和输出,无需额外内存拷贝,也可在完全无 PyTorch 的环境中运行。
- 可扩展:通过在 Python 中定义图节点和后端代码生成,可轻松添加新操作或融合内核。
相关
- 项目
- 项目
- 项目
- 项目
- 项目