🦔

Windowsマシン に llama-cpp-python を入れても BLAS not found でGPUが使ってもらえない

2024/03/14に公開
!pip install llama-cpp-python  --force-reinstall --upgrade --no-cache-dir -vv -C cmake.args="-DLLAMA_BLAS=ON;-DLLAMA_BLAS_VENDOR=OpenBLAS"

<中略>

  -- Could NOT find BLAS (missing: BLAS_LIBRARIES)
  CMake Warning at vendor/llama.cpp/CMakeLists.txt:339 (message):
    BLAS not found, please refer to
    https://cmake.org/cmake/help/latest/module/FindBLAS.html#blas-lapack-vendors
    to set correct LLAMA_BLAS_VENDOR

<後略>

お疲れ様です、波浪です。
llama-cpp-pythonを手持ちのWindowsマシンで使いたくて
https://github.com/abetlen/llama-cpp-python
のREADMEを見ながらあれこれ試してみたけど BLAS not found が突破できなかったんですがissueみたら

https://github.com/abetlen/llama-cpp-python/issues/721#issuecomment-1880052211

コンパイル済みのライブラリをいれようって書いてあったので試したら突破できました

まあそれで全部です、以下は備忘録

wheelsの場所は下記のgithub
https://jllllll.github.io/llama-cpp-python-cuBLAS-wheels/

AVXどれ選ぶねん??
については、CPUの内部情報になるので

https://pypi.org/project/cpufeature/
を使って確認できました


自分の場合AVX512は一部FalseだけどAVX2ならいけそうだな、程度の理由でAVX2を選択。

あと自分がいれているCUDAのVerが必要なので nvcc -Vで確認

$ nvcc -V
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Wed_Sep_21_10:41:10_Pacific_Daylight_Time_2022
Cuda compilation tools, release 11.8, V11.8.89
Build cuda_11.8.r11.8/compiler.31833905_0

自分は 118なので 以下のコマンドでWindowsにllama-cpp-pythonをインストールすることでGPUを使えるようになりました。

pip install llama-cpp-python --prefer-binary --no-cache-dir --force-reinstall --upgrade -vv --extra-index-url=https://jllllll.github.io/llama-cpp-python-cuBLAS-wheels/AVX2/cu118

pipインストールが終わったら一度環境を再起動して以下のコマンドで確認(modelは事前に落としておいてね、別にミクさんじゃなくていいよ、gguf形式ならなんでもいいです)

python -c "from llama_cpp import Llama;llm = Llama(model_path='./miqdev/miqu-1-70b.q2_K.gguf', n_gpu_layers=-1,)"

BLAS=1 GETTTTTTTTTTTTTTTTTTTT!!!

BLAS=0の時は10分くらいかかっていたので 出力が1/10くらいになりました

以上、よろしくお願いします。

Discussion