这里是 大模型推理 A40 vs A6000 谁更强 - 对比 Yi-34B 的单、双卡推理性能 的笔记,详细的信息请查看视频。
引言
A40 和 A6000 从纸面数据来看基本是一模一样,但不知为啥 A40 在价格上就是比 A6000 要贵一点。这里我对比下两个卡进行大语言模型推理方面的性能差异。
这次用到了两个平台
- autodl 这里有 A40 显卡
- openbayes 这里有 A6000 显卡,并且他们的 A6000 显卡支持 nvlink 可以两个一组,获得 96G 显存
环境准备
安装依赖
pip install vllm modelscope
下载模型
from modelscope.hub.snapshot_download import snapshot_download
model_dir = snapshot_download('01ai/Yi-34B-Chat-4bits', cache_dir='autodl-tmp', revision='master', ignore_file_pattern='.bin')
在 openbayes 这边支持数据绑定,类似于 autodl 那边的网盘,可以提前把数据准备好,避免使用 gpu 时再去下载,浪费计算时。
下载 vllm 代码
# source /etc/network_turbo
git clone https://github.com/vllm-project/vllm
cd vllm/benchmarks
如果是在 autodl 则需要首先执行 source /etc/network_turbo
开启学术加速,而 openbayes 这边不需要。
查看 nvlink
openbayes 的 A6000 有双卡 nvlink 可以通过命令 nvidia-smi topo -m
查看,会显示 NV4
的连接,提供大约 112.5GB 的带宽。
benchmark
单卡测试
python benchmark_throughput.py \
--backend vllm \
--input-len 128 --output-len 512 \
--model /root/autodl-tmp/01ai/Yi-34B-Chat-4bits \
-q awq --num-prompts 50 --seed 1100 \
--trust-remote-code \
-tp 1 \
--max-model-len 2048
双卡测试
python benchmark_throughput.py \
--backend vllm \
--input-len 128 --output-len 512 \
--model /root/autodl-tmp/01ai/Yi-34B-Chat-4bits \
-q awq --num-prompts 50 --seed 1100 \
--trust-remote-code \
-tp 2 \
--max-model-len 2048
而 openbayes 那边只需要更换一下模型路径即可。
结论
具体的参数请查看视频。
- 从单卡性能看,大概有 5% 的性能差异,A6000 略高于 A40
- 双卡性能看,有更大的性能差异,但是这更有可能是因为 nvlink 的原因,而不是显卡本身的性能差异
至于 nvlink 有无带来的性能差异则需要进一步评测了。