abetlen / abetlen/llama-cpp-python

The new shared library causes conflicts if more than 1 variant of llama-cpp-python is imported

未关闭
#1,575 10 条评论 5 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
Python
星标
10.6k
派生
1.4k
PR 合并指标
PR 指标待抓取

描述

The `ctypes.CDLL` call under https://github.com/abetlen/llama-cpp-python/blob/7e20e346bd49cc8f0031eb053fe879a38c777b6f/llama_cpp/llama_cpp.py#L75 loads symbols in the global scope. In my project, it is possible to load 3 different versions of llama-cpp-python:

* CUDA
* CUDA + tensorcores (without `-DGGML_CUDA_FORCE_MMQ=ON`)
* CPU

Due to the shared library, when one of the libraries is already imported and the user switches to another one, undefined behavior happens, such as the CPU version having BLAS=1 in its logs.

Can this be prevented? I think that it may be impossible to work around this issue on my side. I have tried `importlib.reload` and it didn't work.

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。