見出し画像

llama-cpp-pythonのcuda13.0用のwheelを作成する@Paperspace&Windows

<追記>
以下の内容の踏まえ確認したところ、pipコマンドでビルドできるようです。
ただ、linux、windowsの場合に、ビルドに必要な環境やpythonパッケージをインストールしておく必要があります。


<以前の記事内容>
llama-cpp-pythonというパッケージのプレビルドは公式から提供されていないのが現状です。

公式のプレビルドについて、pythonのバージョンとwheelの表になります。

コミュニティベースでプレビルドを公開されているかを確認したのですが、以下のはwindows版で、最新版ではなかったりするので、「ソースからビルドせよ」とGeminiさんからアドバイスが飛んできました。

Releases · boneylizard/llama-cpp-python-cu128-gemma3

追記
JamePeng/llama-cpp-python: Python bindings for llama.cpp
公式ではありませんが、上記だと

私自身は、Paperspaceでの運用を目的としていたため、自作のcuda13.0のコンテナイメージで、ビルドを行ってみました。
手順としてはwindowsより簡単だと思われます。

コマンドは以下:インストールも含めた内容

# 0. 必要なライブラリ
!pip install build wheel

# 1. ソースコードの準備
import os
import sys

# フォルダ確認とクローン
if not os.path.exists("/notebooks/llama-cpp-python"):
    %cd /notebooks
    !git clone --recursive https://github.com/JamePeng/llama-cpp-python.git
else:
    print("フォルダは既に存在します。")

# 2. ディレクトリ移動
%cd /notebooks/llama-cpp-python

# === 重要: 前回のキャッシュを徹底的に削除 ===
!rm -rf _skbuild dist build *.egg-info

# 3. 環境変数の設定(★ここが修正のキモです)
# (1) PATHの先頭に正しいCUDAのパスを追加
os.environ["PATH"] = "/usr/local/cuda/bin:" + os.environ["PATH"]

# (2) 使用するコンパイラを明示的に指定 (CUDACXX)
os.environ["CUDACXX"] = "/usr/local/cuda/bin/nvcc"

# (3) CMAKE引数の設定
# -DCMAKE_CUDA_COMPILER: コンパイラの絶対パスを指定
# -DCMAKE_CUDA_ARCHITECTURES: "native" でコケる場合があるため、Paperspaceで一般的なGPU(70=V100, 75=T4/RTX, 80=A100, 86=A6000系)を直接指定して回避します
%env CMAKE_ARGS="-DGGML_CUDA=ON -DCMAKE_CUDA_COMPILER=/usr/local/cuda/bin/nvcc -DCMAKE_CUDA_ARCHITECTURES=70;75;80;86;89"
%env FORCE_CMAKE=1

# 4. ビルド実行 (詳細ログを出すために -v を追加しても良いですが、まずは通常通りで)
print("ビルドを開始します...")
!python -m build --wheel --outdir dist .

# 5. インストール
!pip install dist/*.whl --force-reinstall

# 6. 完了確認
print("\n✅ ビルドとインストールが完了しました。")
!pip show llama-cpp-python

このセルコマンドを実行するとビルドが行われますが、かなり時間がかかります。
「dist」フォルダに作成されたプレビルドファイルがあります。151MBなのでNoteでは共有が出来ませんが、上のコマンドで生成できますので。。


ということで、このプレビルドを含めた感じでPytorch 2.8.0対応のPaperspace用のコンテナイメージを作成しました。
以下のコンテナイメージで問題なくllama-cpp-pythonがインストールされました。

shibashiba2/paperspace-gradient-base-pytorch2.8.0:v1.0

Pytorch 2.8.0とxformers

Flash attention 2は最新バージョン

Paperspace用のDockerイメージについては、cuda12.9のバージョンアップ、numpy関連の所と、python 3.13へのバージョンアップが課題かなと思っています。
今のところ、なんだか面倒そうなので手を付けていません。。。

<windows版>
上の部分で生成したものは、Linux版なので、windows版には適用できません。
そのため、stability matrixでは別に必要になります。
今のstability matrixで使用しているpythonスクリプトが3.10なので、それに合わせたものを作成しました。
<用意するもの>
①Visual Studio Build Toolsをダウンロードして「ワークロード」タブで「C++によるデスクトップ開発」にチェックを入れます。
右側の「インストールの詳細」で、「MSVC v143...」や「Windows 11(or 10) SDK」、「C++ CMake tools for Windows」にチェックが入っていることを確認し、インストールを実行します。
Windows、Mac、Linux 用の Visual Studio と VS Code のダウンロード

②Pythonパッケージのインストール
build wheel

③Stablity Matrixと同じPython環境とCUDA toolkitのインストール

④Gitリポジトリのクローン
ダウンロードしたいディレクトリでスクリプトを実行する

git clone --recursive https://github.com/abetlen/llama-cpp-python.git

<実行コマンド>
「x64 Native Tools Command Prompt for VS 2022」をスタートメニューから検索して立ち上げる。
以下のコマンドを順に入力

cd C:\Users\inott\Downloads\llama-cpp-python
$env:CMAKE_ARGS = "-DGGML_CUDA=ON"
$env:FORCE_CMAKE = 1
python -m build --wheel --outdir dist .

これでビルドが進みました。
途中で黄色い警告文が出力されますが、問題ないようです。

終了すると、リポジトリ内の「dist」フォルダ内にwhlファイルが作成されます。

Stability matrixへの追加
作成したwhlファイルを、venvフォルダ内の配置して、以下のbatファイルを実行するとインストールされます。
すでにllama-cp-pythonがインストールされている場合は最初にアンインストールします。
<batファイル中身>

@echo off
setlocal enabledelayedexpansion

REM ==================================================
REM Stability Matrix (ComfyUI venv) 用
REM llama-cpp-python インストーラー (修正版)
REM ==================================================

REM --- 環境設定 ---
REM ComfyUIのvenvディレクトリパスを直接指定
set "VENV_DIR=D:\StabilityMatrix\Data\Packages\ComfyUI\venv\"
REM インストールするwheelファイルのフルパスを指定
set "LLAMA_WHL_PATH=D:\StabilityMatrix\Data\Packages\ComfyUI\venv\llama_cpp_python-0.3.16-cp310-cp310-win_amd64.whl"

REM Python実行ファイルのパス
set "PYTHON=%VENV_DIR%Scripts\python.exe"

echo ==================================================
echo Target Python: %PYTHON%
echo Target WHL: %LLAMA_WHL_PATH%
echo ==================================================

REM --- 1/4 pip をアップグレード ---
echo [1/4] Checking and upgrading pip...
"%PYTHON%" -m pip install --upgrade pip || goto :error

REM --- 2/4 既存の llama-cpp-python をアンインストール ---
echo [2/4] Uninstalling existing llama-cpp-python...
REM -y を付けて確認プロンプトをスキップ。エラーでも続行させるため `||` は付けない
"%PYTHON%" -m pip uninstall -y llama-cpp-python

REM --- 3/4 ローカルのwheelファイルをインストール ---
echo [3/4] Installing %LLAMA_WHL_PATH%...
REM --no-deps を付けて、他の依存パッケージが更新されないようにする
"%PYTHON%" -m pip install "%LLAMA_WHL_PATH%" --force-reinstall --no-deps || goto :error

REM --- 4/4 インストール検証 (修正版) ---
echo [4/4] Verifying installation...
"%PYTHON%" -c "import llama_cpp; print('llama_cpp version:', llama_cpp.__version__)" || goto :error_validation

echo.
echo ==================================================
echo Succeeded! Installation and verification complete.
echo ==================================================
pause
exit /b 0

:error
echo.
echo ERROR: An error occurred during installation.
echo Please check if the wheel file path is correct and exists.
pause
exit /b 1

:error_validation
echo.
echo ERROR: Verification failed after installation.
echo The package may not have been installed correctly.
pause
exit /b 2

これでStability Matrixにビルドしたllama cpp pythonがインストールされます。

いいなと思ったら応援しよう!