[Bug]:使用Docker运行vllm API

06odsfpq  于 6个月前  发布在  Docker
关注(0)|答案(2)|浏览(86)

当前环境
docker镜像:vllm/vllm-openai:latest

🐛 描述bug
docker run --runtime nvidia --gpus all -v ~/.cache/huggingface:/root/.cache/huggingface -v /mnt/ddata/models/Baichuan2-13B-Chat:/Baichuan2-13B-Chat --env "HUGGING_FACE_HUB_TOKEN=<secret>" -p 5000:5000 --ipc=host vllm/vllm-openai:latest --model /Baichuan2-13B-Chat --trust-remote-code --tensor-parallel-size 2
我使用上述命令进行测试时遇到了"RuntimeError: Unexpected error from cudaGetDeviceCount(). Did you run some cuda functions before calling NumCudaDevices() that might have already set an error? Error 804: forward compatibility was attempted on non supported HW"错误。如何解决这个问题,谢谢。

bfnvny8b

bfnvny8b1#

你的显卡和主机驱动程序版本以及主机CUDA版本是什么?

vawmfj5a

vawmfj5a2#

是的,这个问题似乎是由于旧的主驱动程序版本引起的。当nvidia-smi显示驱动程序版本为525时,但不显示为550时,我会遇到这个错误。但请注意,这可能只对非数据中心级别的GPU有问题:

  • 尝试在不受支持的硬件上进行向前兼容性pytorch/pytorch#40671(评论)

当Docker外部的主机运行一个不支持容器内的CUDA版本的驱动程序时,如果你没有数据中心/Tesla GPU,你可以看到这个消息。
不幸的是,截至编写本文时,Runpod(例如)上有一堆机器具有525驱动程序版本,因此在Runpod 4090s上测试最新的镜像(vllm/vllm-openai:v0.4.3)时,它将随机地工作或不工作,具体取决于你在部署中分配的机器。
请注意,这个问题特别涉及到驱动程序版本,而不是CUDA版本(在我测试的Runpod 4090机器上始终为12.4)或计算能力(始终为8.9)。
我猜想这不是vllm可以解决的问题,因为与驱动程序版本相关的内容不幸地似乎必须在Docker镜像编译时“固化”?或者有没有办法在运行时回退以支持较旧的主驱动程序版本?

相关问题