abetlen / abetlen/llama-cpp-python

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

Aberta
#1,575 10 comentários 5 reações 0 responsáveis Ver no GitHub
Linguagem predominante
Python
Estrelas
10.6k
Forks
1.4k
Métricas de merge de PRs
Métricas de PR pendentes

Descrição

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.

Guia de contribuição

Abrir o guia de contribuição

Avaliação

Esta issue ainda não foi avaliada.

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.