ОЗУ не очищается (диффузоры)

Я пишу скрипт, который иногда должен менять модели (диффузоры и 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()

но я не получил ожидаемого результата. Я также пробовал удалять разные объекты, но безрезультатно.

0 ответов

Другие вопросы по тегам