当前环境
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
,还是还有其他问题?
5条答案
按热度按时间tyky79it1#
@mars-ch,如果你尝试使用较小的
max_model_len
呢?你能分享一下你的脚本吗?了解你使用的lora适配器数量以及Tensor并行性是很重要的。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。
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.
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但未分配。
b91juud35#
目前模型分析逻辑中存在一个错误,导致内存分析器低估模型使用的内存量。为了解决这个问题,你可以降低
gpu_memory_utilization
的值。