vllm [Bug]: 高gpu_memory_utilization(OOM)和低gpu_memory_utilization(无可用缓存块内存)

vlf7wbxs  于 5个月前  发布在  其他
关注(0)|答案(5)|浏览(73)

当前环境

v100 32G * 8

🐛 描述问题

我尝试使用lora适配器运行一个32B模型,并测试不同的GPU_MEMORY_UTILIZATION。当gpu_memory_utilization = 0.9时,出现了OOM错误。当gpu_memory_utilization = 0.8时,出现了'No available memory for the cache blocks. Try increasing gpu_memory_utilization when initializing the engine.'的错误提示。这是否意味着我需要找到一个合适的值来设置gpu_memory_utilization,还是还有其他问题?

tyky79it

tyky79it1#

@mars-ch,如果你尝试使用较小的max_model_len呢?你能分享一下你的脚本吗?了解你使用的lora适配器数量以及Tensor并行性是很重要的。

hgtggwj0

hgtggwj02#

当前环境

v100 32G * 8

🐛 描述bug

我尝试使用lora适配器运行一个32B模型,并测试不同的GPU_MEMORY_UTILIZATION。当gpu_memory_utilization = 0.9时,出现了OOM错误。当gpu_memory_utilization = 0.8时,出现了“没有可用的缓存块内存。尝试在初始化引擎时增加gpu_memory_utilization”。这是否意味着我需要找到一个合适的值来设置gpu_memory_utilization,还是还有其他问题?
请减少max_model_len、增加gpu_memory_utilization或增加tensor-parallel-size gpus。

li9yvcax

li9yvcax3#

@mars-ch what if you try using a smaller max_model_len ? Could you share your script? It is important to know how many lora adapters and what tensor parallelism you are using.
I used the LLM class like this:
sampling_params = SamplingParams(temperature=0.7, top_p=0.8, repetition_penalty=1.05, max_tokens=512)
llm = LLM(model="output_merged",dtype="half",gpu_memory_utilization=0.95, tensor_parallel_size=8, enforce_eager=True)
Thanks.

iyfamqjs

iyfamqjs4#

此外,错误表明存在两个进程:
torch.cuda.OutOfMemoryError: CUDA内存不足。尝试分配234.00 MiB。GPU总共有31.75 GiB的容量,其中98.75 MiB是空闲的。进程2852145使用了8.72 GiB内存。进程2878797使用了22.92 GiB内存。PyTorch分配了20.56 GiB的内存,并预留了480.11 MiB但未分配。

b91juud3

b91juud35#

目前模型分析逻辑中存在一个错误,导致内存分析器低估模型使用的内存量。为了解决这个问题,你可以降低 gpu_memory_utilization 的值。

相关问题