ztxz16 / fastllm

纯c++的全平台llm加速库,支持python调用,chatglm-6B级模型单卡可达10000+token / s,支持glm, llama, moss基座,手机端流畅运行
Apache License 2.0
3.28k stars 332 forks source link

pyfastllm有释放GPU显存的接口吗? #387

Open hediyuan opened 8 months ago

hediyuan commented 8 months ago

请问通过pyfastllm加载模型的方式(import pyfastllm, pyfastllm.create_llm(model_path)),有接口或者方法能释放GPU空余显存吗? torch.cuda.empty_cache()经测试是无效的

TylunasLi commented 8 months ago
  1. fastllm 目前在空余显存 > 1GB时,问答中释放显存的环节会自动执行释放操作。(commit 8286d1df)
  2. 根据pybind11的设计,在执行 model = pyfastllm.create_llm(model_path)后, model 被python托管,可以自己处理,并在退出解释器时释放。
hediyuan commented 8 months ago
  1. fastllm 目前在空余显存 > 1GB时,问答中释放显存的环节会自动执行释放操作。(commit 8286d1d
  2. 根据pybind11的设计,在执行 model = pyfastllm.create_llm(model_path)后, model 被python托管,可以自己处理,并在退出解释器时释放。

谢谢您的解答,现在有一个问题是当我的服务收到一个长度很长的问题时,推理过程中可能会爆显存,一旦爆显存fastllm就不会释放了,并且后续问答都会报错,所以我想知道有没有什么方法可以主动释放显存,我想在报错时捕获异常进行主动释放,这样就不会影响后续使用了

suncheng-s commented 7 months ago

@hediyuan 大佬,请问下这个问题有解决吗?