vllm [Bug]: WSL2(也适用于Docker)可以处理1个GPU工作负载,但无法处理2个,(--tensor-parallel-size 2)

t8e9dugd  于 3个月前  发布在  Docker
关注(0)|答案(8)|浏览(53)

当前环境信息如下:
PyTorch版本:2.3.0+cu121
是否为调试构建:False
用于构建PyTorch的CUDA版本:12.1
用于构建PyTorch的ROCM版本:N/A
操作系统:Ubuntu 22.04.1 LTS(x86_64)
GCC版本:(Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
Clang版本:无法收集
CMake版本:3.29.3
Libc版本:glibc-2.35
Python版本:3.11.9(主,2024年4月19日 16:48:06) [GCC 11.2.0] (64位运行时)
Python平台:Linux-5.15.146.1-microsoft-standard-WSL2-x86_64-with-glibc2.35
是否可用CUDA:是
CUDA运行时版本:11.5.119
CUDA_MODULE_LOADING设置为:LAZY
GPU模型和配置:
GPU 0:NVIDIA GeForce RTX 4090
GPU 1:NVIDIA GeForce RTX 4090
Nvidia驱动版本:552.22
cuDNN版本:无法收集
HIP运行时版本:N/A
MIOpen运行时版本:N/A
XNNPACK可用:是
CPU架构:x86_64
CPU操作模式(32位、64位):39位物理,48位虚拟
地址大小:39位物理,48位虚拟
字节序:小端
CPU数量:32
在线CPU列表:0-31
供应商ID:GenuineIntel
模型名称:Intel(R) Core(TM) i9-14900KF CPU @ 1.90GHz
CPU家族:6
模型:183
线程数/核心数:2
核心数/插槽数:16
插槽数:1
步进:1
BogoMIPS:6374.40
标志:fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxssse3 sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow vnmi ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 xsaves avx_vnni umip waitpkg gfni vaes vpclmulqdq rdpid movdiri movdir64b fsrm md_clear serialize flush_l1d arch_capabilities
虚拟化:VT-x
虚拟机提供商:Microsoft
虚拟化类型:完全虚拟化
L1d缓存大小:768 KiB (16示例)
L1i缓存大小:512 KiB (16示例)
L2缓存大小:32 MiB (16示例)
L3缓存大小:36 MiB (1示例)
漏洞数据采样情况:未受影响
漏洞Itlb多hit情况:未受影响
漏洞L1tf情况:未受影响
漏洞Mds情况:未受影响
漏洞Meltdown情况:未受影响
漏洞Mmio stale data情况:未受影响
漏洞Retbleed情况:已修复;增强IBRS
漏洞Spec rstack overflow情况:未受影响
漏洞Spec store bypass情况;Speculative Store Bypass disabled via prctl and seccomp
漏洞Spectre v1情况;用户copy/swapgs barriers和__user指针清理保护
漏洞Spectre v2情况;增强IBRS,IBBP条件,RSB填充,PBRSB-eIBRS SW序列
这个错误是由于在执行init_device方法时发生了死锁,导致分布式执行出现问题。具体错误信息为:NCCL error: unhandled cuda error (run with NCCL_DEBUG=INFO for details)。为了解决这个问题,你可以尝试以下方法:

  1. 检查你的CUDA和NCCL版本是否与vLLM兼容。确保你使用的是最新版本的CUDA和NCCL库。

  2. 设置环境变量NCCL_DEBUG=INFO,以便查看详细的NCCL调试信息。这将帮助你更好地了解问题所在。

  3. 如果问题仍然存在,尝试在不同的计算机或GPU上运行你的代码,以排除硬件兼容性问题。

  4. 如果以上方法都无法解决问题,建议在vLLM的GitHub仓库中提交一个issue,详细描述你遇到的问题,并提供相关的错误日志和系统配置信息。这样,vLLM的开发者可以更好地帮助你解决问题。
    (RayWorkerWrapper pid=7596) Extension modules: psutil._psutil_linux, psutil._psutil_posix, msgpack._cmsgpack, google._upb._message, setproctitle, yaml._yaml, charset_normalizer.md, requests.packages.charset_normalizer.md, requests.packages.chardet.md, uvloop.loop, ray._raylet, numpy.core._multiarray_umath, numpy.core._multiarray_tests, numpy.linalg._umath_linalg, numpy.fft._pocketfft_internal, numpy.random._common, numpy.random.bit_generator, numpy.random._bounded_integers, numpy.random._mt19937, numpy.random.mtrand, numpy.random._philox, numpy.random._pcg64, numpy.random._sfc64, numpy.random._generator, torch._C, torch._C._fft, torch._C._linalg, torch._C._nested, torch._C._nn, torch._C._sparse, torch._C._special, sentencepiece._sentencepiece, PIL._imaging (total: 33)
    (raylet) A worker died or was killed while executing a task by an unexpected system error. To troubleshoot the problem, check the logs for the dead worker. RayTask ID: ffffffffffffffff6aba5c566d171c4cbbfe879201000000 Worker ID: a0821e052de9a053e99bf41cf5c73372eacb37375c5d5b113d38a490 Node ID: 3263fc6978985245b12fc99c23d1dca8db72ce8aa8be6c96f1724a35 Worker IP address: 172.21.21.248 Worker port: 37315 Worker PID: 7596 Worker exit type: SYSTEM_ERROR Worker exit detail: Worker unexpectedly exits with a connection error code 2. End of file. There are some potential root causes. (1) The process is killed by SIGKILL by OOM killer due to high memory usage. (2) ray stop --force is called. (3) The worker is crashed unexpectedly due to SIGSEGV or other unexpected errors。

###################################################################################

然后它挂起了
Docker版本也遇到了同样的问题
docker run --gpus all
-v ~/.cache/modelscope/hub/Yi-34B-Chat-4bits:/models/Yi-34B-Chat-4bits
-p 8000:8000
--ipc=host
vllm/vllm-openai:latest
--model /models/Yi-34B-Chat-4bits
--served-model-name Yi-34B-Chat
--trust-remote-code
--max-model-len 4096 -q awq
--enforce-eager
--tensor-parallel-size 2
2 GPU在其他推理工具和Lora SFT上工作。

xwbd5t1u

xwbd5t1u1#

try add --privileged to docker

f0ofjuux

f0ofjuux2#

尝试添加 --privileged 到 docker,但不起作用。
(RayWorkerWrapper pid=2077) 致命的 Python 错误:段错误

ztigrdn8

ztigrdn83#

在更新vllm到0.5.0后,出现了错误并导致进程挂起。LLM:4726和LLM:2660分别显示了NCCL信息,包括连接的环、树和线程阈值。然后出现了一个错误,提示在关闭文件后进行I/O操作。最后,由于生产者进程在释放所有共享的CUDATensor之前就被终止,导致gpu_p2p_access_cache_for_0,1.json文件不存在。

nzk0hqpo

nzk0hqpo4#

在我终止进程后,它仍然使用我的CUDA。

lxkprmvk

lxkprmvk6#

为了调试挂起的问题,请按照 https://docs.vllm.ai/en/latest/getting_started/debugging.html 进行操作。
感谢回复。请问日志生成的路径在哪里?我找到了两个日志文件,但不确定是否都是日志文件。顺便说一下,我已经将环境更改为“通过pip安装”在vllm文档中。
VLLM_TRACE_FUNCTION_for_process_2488_thread_140479325135936_at_2024-06-19_224822.654027.log
VLLM_TRACE_FUNCTION_for_process_423_thread_140297769940032_at_2024-06-19_224820.393076.log

nxagd54h

nxagd54h7#

日志似乎表明它卡在这里:
2024-06-19 22:48:23.193433 在 /home/cc/anaconda3/envs/vllm/lib/python3.9/site-packages/vllm/distributed/parallel_state.py:435 中调用了屏障,来自 gpu_p2p_access_check 在 /home/cc/anaconda3/envs/vllm/lib/python3.9/site-packages/vllm/distributed/device_communicators/custom_all_reduce_utils.py:178
尽管不确定为什么,但我认为你可以尝试 #5669 ,它为 custom_all_reduce_utils.py 解决了一些问题。

mbskvtky

mbskvtky8#

日志似乎表明它卡在这里:
2024-06-19 22:48:23.193433 在 /home/cc/anaconda3/envs/vllm/lib/python3.9/site-packages/vllm/distributed/parallel_state.py:435 中调用屏障,来自 gpu_p2p_access_check 在 /home/cc/anaconda3/envs/vllm/lib/python3.9/site-packages/vllm/distributed/device_communicators/custom_all_reduce_utils.py:178
尽管不确定为什么,但我认为你可以尝试 #5669 ,这对于 custom_all_reduce_utils.py 解决了一些问题。
我下载了 custom_all_reduce_utils.py (288c99a#diff-e4918ab3e2126c1178b0d8fb0f8ab0175e209daa0578501adf3a7017e56f5e4d) 和 envs.py(https://github.com/vllm-project/vllm/pull/5669/files/2e2731637f1b25d7ca3086b7951a7e671e023f71#diff-b7538eee1327212c7cfbe3f7874600dfcd41b5fb5662695cd5f396294610ddf9)。 vllm 没有报告错误,但仍然卡住。
VLLM_TRACE_FUNCTION_for_process_51496_thread_140453947786304_at_2024-06-20_17_26_12.687434.log
VLLM_TRACE_FUNCTION_for_process_53579_thread_140453947786304_at_2024-06-20_17_26_12.687583.log

相关问题