当前环境信息如下:
- PyTorch版本:2.1.2+cu121
- 是否为调试构建:False
- 用于构建PyTorch的CUDA版本:12.1
- 是否使用ROCm构建PyTorch:N/A
- 操作系统:Ubuntu 22.04.3 LTS(x86_64)
- GCC版本:(Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
- Clang版本:14.0.0-1ubuntu1.1
- CMake版本:3.26.2
- Libc版本:glibc-2.35
- Python版本:3.9.18(主, Sep 11 2023, 13:41:44) [GCC 11.2.0] (64-bit runtime)
- Python平台:Linux-5.4.119-19-0009.11-x86_64-with-glibc2.35
- 是否可用CUDA:是
- CUDA运行时版本:12.3.107
- CUDA模块加载设置:懒加载
- GPU模型和配置:
GPU 0:NVIDIA A800-SXM4-80GB
GPU 1:NVIDIA A800-SXM4-80GB
GPU 2:NVIDIA A800-SXM4-80GB
GPU 3:NVIDIA A800-SXM4-80GB
GPU 4:NVIDIA A800-SXM4-80GB
GPU 5:NVIDIA A800-SXM4-80GB
GPU 6:NVIDIA A800-SXM4-80GB
GPU 7:NVIDIA A800-SXM4-80GB - Nvidia驱动版本:470.182.03
- cuDNN版本:可能为以下之一:
/usr/lib/x86_64-linux-gnu/libcudnn.so.8.9.7
/usr/lib/x86_64-linux-gnu/libcudnn.so.9.0.0
/usr/lib/x86_64-linux-gnu/libcudnn_adv.so.9.0.0
/usr/lib/x86_64-linux-gnu/libcudnn_adv_infer.so.8.9.7
/usr/lib/x86_64-linux-gnu/libcudnn_adv_train.so.8.9.7
/usr/lib/x86_64-linux-gnu/libcudnn_cnn.so.9.0.0
/usr/lib/x86_64-linux-gnu/libcudnn_cnn_infer.so.8.9.7
/usr/lib/x86_64-linux-gnu/libcudnn_cnn_train.so.8.9.7
/usr/lib/x86_64-linux-gnu/libcudnn_engines_precompiled.so.9.0.0
/usr/lib/x86_64-linux-gnu/libcudnn_engines_runtime_compiled.so.9.0.0
/usr/lib/x86_64-linux-gnu/libcudnn_graph.so.9.0.0
/usr/lib/x86_64-linux-gnu/libcudnn_heuristic.so.9.0.0
/usr/lib/x86_64-linux-gnu/libcudnn_ops.so.9.0.0
/usr/lib/x86_64-linux-gnu/libcudnn_ops_infer.so.8.9.7
/usr/lib/x86_64-linux-gnu/libcudnn_ops_train.so.8.9.7
HIP运行时版本:N/A
MIOpen运行时版本:N/A
NV# = 遍历一组绑定的 # NVLinks 连接
🐛 描述bug
我在一台拥有8 * A800(80GB) GPUs和1.8TB内存的服务器上运行以下命令:
python -m vllm.entrypoints.openai.api_server --model /mnt/llm_dataset/models/xverse_model/moe/moe24b-v112-276b/ --dtype auto --api-key xxx
--trust-remote-code -tp 8 --port 8001
我注意到vLLM最初将模型加载到8个A800 GPUs中,每个GPU平均消耗约64GB内存,而没有预先分配内存。随后,我观察到DRAM内存不断增加,直到发生内存不足(OOM)错误。请参阅下面的截图以获取详细信息。
然后,我了解到通过设置 --max-parallel-loading-workers
参数可以降低RAM OOM的风险。但是,当我设置 --max-parallel-loading-workers 1
时,遇到了以下错误:
NotImplementedError: max_concurrent_workers is not supported yet.
#2588
我注意到PR #1395已经解决了RAM OOM问题,但为什么在加载一个480GB MoE模型时,即使有8tp和1.8TB的内存,我还是会遇到OOM错误?
1条答案
按热度按时间rryofs0p1#
你好,@hxer7963。如果我的数学计算正确的话,我认为你不能在一个8x80GB的GPU上装载一个未量化的480GB模型。8 * 80 = 640GB可用内存,而使用BF16格式的模型权重将占用2 * 480 = 960GB,这远远超过了可用内存。也许如果你使用GPTQ进行8位或4位量化,你可以装载这个模型。
此外,我建议你尝试升级vLLM,因为你现在使用的是0.4.0版本。