首页
/ LLM-Foundry项目中的AMD MI250 GPU性能优化解析

LLM-Foundry项目中的AMD MI250 GPU性能优化解析

2025-06-14 07:52:09作者:钟日瑜

在LLM-Foundry项目中使用AMD MI250 GPU进行Transformer模型(GPT架构)基准测试时,开发者发现其吞吐量仅为NVIDIA A100 GPU的一半左右。这一现象引发了性能优化方面的深入探讨。

性能差异现象

测试数据显示,在7B参数的模型上,A100 GPU(4卡)的吞吐量为14k tokens/s,而MI250(8卡)仅为12.8k tokens/s。在13.3B参数的模型上,A100(8卡)达到12.9k tokens/s,而MI250(8卡)只有6k tokens/s。表面上看,MI250的性能确实只有A100的一半。

根本原因分析

经过深入调查,发现这是由于PyTorch对AMD MI250 GPU的特殊识别方式导致的。MI250实际上由两个GCD(图形计算单元)组成,但PyTorch会将每个MI250识别为两个独立的设备。因此:

  1. 4块MI250物理卡会被识别为8个设备
  2. Composer报告的"tokens/s/gpu"实际上是"tokens/s/GCD"
  3. 要得到真正的MI250卡性能,需要将结果乘以2

技术背景

AMD MI250采用了多芯片模块(MCM)设计,每个物理卡包含两个GCD。这种设计与传统GPU不同,导致软件层面的识别方式有差异。相比之下,NVIDIA A100是单芯片设计,识别方式更为直接。

性能对比修正

考虑这一因素后重新计算:

  • 7B模型在MI250上的实际吞吐量应为1602×2=3204 tokens/s/GCD
  • 13.3B模型在MI250上的实际吞吐量应为753×2=1506 tokens/s/GCD

这样与A100的3700和1613 tokens/s/GCD相比,性能差距明显缩小。

未来展望

值得注意的是,AMD新一代MI300X GPU将改变这一设计,8卡系统将被正确识别为8个设备,不再需要手动调整计算。这反映了硬件设计趋势与软件生态的协同演进。

实践建议

对于使用MI250进行LLM训练的开发人员,建议:

  1. 明确区分物理卡数量和PyTorch识别的设备数量
  2. 在性能评估时进行适当的倍数调整
  3. 关注硬件规格文档,了解底层架构特点
  4. 在跨平台比较时考虑这些架构差异

通过正确理解硬件特性和软件识别机制,开发者可以更准确地评估和优化系统性能。

登录后查看全文
热门项目推荐