Skip to content

Tech Notes

llama.cpp ネイティブ環境構築とTesla V100フル稼働の記録

Ollamaのようなラッパー(ブラックボックス)を排除し、C/C++ネイティブの llama.cpp をソースからビルドして、Tesla V100(32GB)の性能を限界まで引き出す。エッジAI・組み込みAIの基礎になる「量子化」や「ローレベルな推論制御」を自分の手で握るためのベース環境を作った記録。

前提環境

  • OS: Ubuntu Server(Proxmox VM101)
  • GPU: NVIDIA Tesla V100(VRAM 32GB)
  • 目的: AIのアーキテクチャ階層を直接操作し、フィジカルAI・エージェントAIの基盤技術(量子化・推論制御)を検証する

1. 依存関係とCUDA Toolkitの導入

C++ソースからGPU用プログラムをコンパイルするため、ビルドツールとCUDA Toolkit(nvcc等)を導入する。

# ビルドツールと依存ライブラリ
sudo apt update
sudo apt install build-essential cmake git -y

# CUDA Toolkit(nvccコンパイラ等)
sudo apt install nvidia-cuda-toolkit -y

# 確認(バージョンが出ればOK)
nvcc --version

2. llama.cpp のクローンとビルド

公式リポジトリを取得し、CUDA(GPU高速化)を有効化してネイティブバイナリをコンパイルする。

git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp

# CUDA有効化 + 全コアでビルド
cmake -B build -DGGML_CUDA=ON
cmake --build build --config Release -j$(nproc)

ビルド成功後、build/bin/ に推論エンジン llama-cli が生成される。

3. モデルのダウンロード(Hugging Face CLI)

URLのリダイレクトやリンク切れを避けるため、pipx でHugging Face公式のダウンローダーを導入して取得する。

# pipx と Hugging Face CLI
sudo apt install pipx -y
pipx install huggingface_hub[cli]
pipx ensurepath
source ~/.bashrc

# GGUFモデル(Qwen2.5 7B の 4bit量子化版)を取得
hf download bartowski/Qwen2.5-7B-Instruct-GGUF Qwen2.5-7B-Instruct-Q4_K_M.gguf --local-dir models/

4. 推論の実行(V100フル稼働テスト)

GPUレイヤーのオフロードを最大化して推論する。

./build/bin/llama-cli \
  -m models/Qwen2.5-7B-Instruct-Q4_K_M.gguf \
  -p "AIのアーキテクチャについて、技術的な視点で短く語ってください。" \
  -n 400 -c 4096 -ngl 99

主なパラメータ:

  • -m: モデルファイル(GGUF)のパス
  • -p: プロンプト
  • -n 400: 最大生成トークン数(無限生成の防止)
  • -c 4096: コンテキストサイズ。大きくするとVRAM消費が増える
  • -ngl 99: GPUオフロード層数。99のように大きな値で全レイヤーをV100のVRAMに載せきり、最高速(約108 tokens/s)を記録した

まとめ

ラッパーを介さずソースからビルドすることで、量子化・KVキャッシュ・GPUオフロードといった推論の低レベル制御を自分で握れるようになった。この環境が、以降の自作量子化やマルチエージェント基盤の土台になる。