abetlen / abetlen/llama-cpp-python

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

Open
#1,575 10 comments 5 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
10.6k
Forks
1.4k
PR merge metrics
PR metrics pending

Description

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.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.