当前环境
docker镜像:vllm/vllm-openai:latest
🐛 描述bugdocker 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"错误。如何解决这个问题,谢谢。
2条答案
按热度按时间bfnvny8b1#
你的显卡和主机驱动程序版本以及主机CUDA版本是什么?
vawmfj5a2#
是的,这个问题似乎是由于旧的主驱动程序版本引起的。当
nvidia-smi
显示驱动程序版本为525时,但不显示为550时,我会遇到这个错误。但请注意,这可能只对非数据中心级别的GPU有问题:当Docker外部的主机运行一个不支持容器内的CUDA版本的驱动程序时,如果你没有数据中心/Tesla GPU,你可以看到这个消息。
不幸的是,截至编写本文时,Runpod(例如)上有一堆机器具有525驱动程序版本,因此在Runpod 4090s上测试最新的镜像(
vllm/vllm-openai:v0.4.3
)时,它将随机地工作或不工作,具体取决于你在部署中分配的机器。请注意,这个问题特别涉及到驱动程序版本,而不是CUDA版本(在我测试的Runpod 4090机器上始终为12.4)或计算能力(始终为8.9)。
我猜想这不是vllm可以解决的问题,因为与驱动程序版本相关的内容不幸地似乎必须在Docker镜像编译时“固化”?或者有没有办法在运行时回退以支持较旧的主驱动程序版本?