PyTorch-Transformers 是先进的自然语言处理预训练模型库。2021 年初,厦门大学客户在 A40 和 A100 平台测试了软件的 GPU 加速效果。


测试环境配置:

 

测试数据:


分别对 A40 和 A100 进行了测试,运行时间如下:

 

 

测试过程:


部署软件环境进行测试。最初两次迭代之间有很长的GPU使用率为0的空白期,如下图红框所示:

 

 

空白期的形成是由于两次迭代之间,需要将训练数据由内存调入 GPU 显存,默认情况是单线程处理,导致时间花费较多。在脚本内添加选项--dataloader_num_workers="16",可以多进程调度数据,大大缩短训练时间。


测试结论及分析:


 A40 的训练时间比 A100 的训练时间少,这和初始预期不同,分析可能的原因在于项目采用的是混合精度训练,即FP16+FP32。

 


在 FP16 计算方面,A100 优于 A40,而 A40 的优势体现在 FP32 操作上。

在整个项目中 FP16 操作占比约三分之一,所以整体 A40 训练时间更短。

如果调用 TF32 来替代 FP32 操作,或许能使 A100 充分展现其性能。