ОЗУ не очищается (диффузоры)
Я пишу скрипт, который иногда должен менять модели (диффузоры и llama-cpp-python). У меня мало оперативной и видеопамяти, поэтому после использования модели мне нужно очистить оперативную и видеопамять.
с ламой все в порядке, я просто использую
del(llama_object)
gc.collect()
Достаточно и оперативная память очищена. Но диффузоры не хотят давать такого же результата.
pipe = StableDiffusionPipeline.from_pretrained(...)
#at this point i have 3.4GB usage
del(pipe)
gc.collect()
torch.cuda.empty_cache()
#at this point i have 3GB usage
У меня нет мощной видеокарты, поэтому используюpipe.enable_sequential_cpu_offload()
Я прочитал несколько статей людей, которые столкнулись с этим и поняли, что очищается только VRAM.
Не знаю, нужно ли это, но: оперативная память: 32 ГБ видеокарта: GTX 960 4 ГБ операционная система: manjaro linux
какие-либо предложения?
Много чего перепробовал, в одной из статей нашел чистку vram с помощью numba
from numba import cuda
cuda.select_device(0)
cuda.close()
но я не получил ожидаемого результата. Я также пробовал удалять разные объекты, но безрезультатно.