NVIDIA FasterTransformer
NVIDIA GPU计算专家团队针对transformer推理提出了性能优化方案:FasterTransformer,截止到2022年7月,这套方案支持的模型涵盖了BERT、GPT、LongFormer、T5、XLNet、ViT、Swin Transformer,同时支持int8推理。
FasterTransformer加速思想主要包括:
- 将除了矩阵乘法外的kernel尽可能合并;(即多个OP尽可能合并成1个OP)
- 针对batch size较大的情况进行了精细调优,除了合并OP外,还包括根据数据精度类型的不同在cuBLAS库中选择最优的矩阵乘法kernel、非矩阵乘法OP的参数配置(主要是grid和block)、Softmax多版本实现和数据结构类型调整;
- 针对FP16,将half类型换为half2类型,访存和带宽和计算带宽提升为2倍;
- 一些函数替换,1/sqrtf替换为rsqrtf,power(x,3)替换为x* x* x;