開発
前提条件をインストールします:
- Go
- CMake 3.24 以降
- C/C++ コンパイラ: macOS では Clang、Windows では Visual Studio 2022 C++ ツール、Linux では GCC/Clang
- Ninja を
PATHに追加することを推奨します(特に Windows の場合)
既存のネイティブペイロードに対して純粋な Go で反復処理するには、リポジトリのルートから Ollama を実行します:
shell
go run . serveNOTE
Ollama には CGO でコンパイルされたネイティブコードが含まれています。これらのデータ構造は時々変更されることがあり、CGO が同期されなくなり、予期しないクラッシュが発生することがあります。最初に go clean -cache を実行することで、ネイティブコードの完全なビルドを強制できます。
ネイティブビルドモデル
新しいチェックアウトの場合、またはネイティブコードを変更した後は、リポジトリのルートからビルドします。macOS arm64 では、これは Metal 推論をビルドします。その他のすべてのプラットフォームでは、CPU のみの推論をビルドします。リポジトリのルートに Go バイナリをビルドし、ネイティブランタイムペイロードを build/lib/ollama の下にインストールします。
shell
cmake -B build .
cmake --build build --parallel 8
./ollama serve標準のプレフィックスレイアウトにインストールするには:
shell
cmake --install build --prefix /path/to/installmacOS arm64 を除くすべてのプラットフォームで、GPU バックエンドをビルドするには、バックエンドを明示的に選択します:
shell
cmake -B build . -DOLLAMA_LLAMA_BACKENDS="cuda_v13;vulkan"
cmake --build build --parallel 8サポートされているバックエンド値は cuda_v12、cuda_v13、rocm_v7_1、rocm_v7_2、vulkan、cuda_jetpack5、cuda_jetpack6 です。
ローカルのハードウェア向けに GPU ビルドを絞り込むには、標準の CMake アーキテクチャオーバーライドを使用します:
shell
# CUDA
cmake -B build . -DOLLAMA_LLAMA_BACKENDS=cuda_v13 -DCMAKE_CUDA_ARCHITECTURES=native
# ROCm / HIP
cmake -B build . -DOLLAMA_LLAMA_BACKENDS=rocm_v7_2 -DCMAKE_HIP_ARCHITECTURES=gfx1100設定時に GGML_* 値を設定することで、GGML のビルドオプションを調整できます。例えば、ローカルデバッグのために CUDA フラッシュアテンションカーネルを無効にするには:
shell
cmake -B build . -DOLLAMA_LLAMA_BACKENDS=cuda_v12 -DGGML_CUDA_FA=OFFmacOS (Apple Silicon)
追加の前提条件:
MLX Metal には Metal ツールチェーンが必要です。最初に Xcode をインストールし、次に:
shell
xcodebuild -downloadComponent MetalToolchainWindows
追加の前提条件:
- Visual Studio 2022(ネイティブデスクトップワークロードを含む)
- (オプション) AMD GPU サポート
- (オプション) NVIDIA GPU サポート
- (オプション) Vulkan GPU サポート
- Vulkan SDK - AMD/Intel GPU で役立ちます
- (オプション) MLX エンジンサポート
Ninja ビルドの場合、Visual Studio コンパイラが利用可能な開発者用 PowerShell/コマンドプロンプト、または他のシェルから CMake を実行します。
Vulkan 向けにビルドするには、VULKAN_SDK 環境変数が必要です:
PowerShell
powershell$env:VULKAN_SDK="C:\VulkanSDK\<version>"CMD
cmdset VULKAN_SDK=C:\VulkanSDK\<version>
Windows (ARM)
現在のところ、Windows ARM は追加のアクセラレーションライブラリをサポートしていません。
Linux
追加の前提条件:
- (オプション) AMD GPU サポート
- (オプション) NVIDIA GPU サポート
- (オプション) Vulkan GPU サポート
- Vulkan SDK - AMD/Intel GPU で役立ちます
- またはパッケージマネージャーでインストール:
sudo apt install vulkan-sdk(Ubuntu/Debian) またはsudo dnf install vulkan-sdk(Fedora/CentOS)
- (オプション) MLX エンジンサポート
- CUDA 13+ SDK
- cuDNN 9+
- OpenBLAS/LAPACK:
sudo apt install libopenblas-dev liblapack-dev liblapacke-dev(Ubuntu/Debian)
IMPORTANT
CMake を実行する前に、前提条件が PATH に含まれていることを確認してください。
MLX エンジン (オプション)
MLX エンジンは、safetensor ベースのモデルを実行可能にします。macOS arm64 では、MLX はデフォルトで有効になっています。その他のプラットフォームでは、OLLAMA_MLX_BACKENDS で MLX バックエンドを選択します。
CUDA
CUDA 13 以上と cuDNN 9 以上が必要です。
shell
cmake -B build . -DOLLAMA_MLX_BACKENDS=cuda_v13
cmake --build build --parallel 8ローカルの MLX ソースオーバーライド
開発に便利な、ローカルの MLX および/または MLX-C のチェックアウトに対してビルドするには、CMake を実行する前に環境変数を設定します:
shell
export OLLAMA_MLX_SOURCE=/path/to/mlx
export OLLAMA_MLX_C_SOURCE=/path/to/mlx-cmacOS arm64 の場合:
shell
OLLAMA_MLX_SOURCE=../mlx OLLAMA_MLX_C_SOURCE=../mlx-c cmake -B build .
cmake --build build --parallel 8CUDA の場合:
powershell
$env:OLLAMA_MLX_SOURCE="../mlx"
$env:OLLAMA_MLX_C_SOURCE="../mlx-c"
cmake -B build . -DOLLAMA_MLX_BACKENDS=cuda_v13
cmake --build build --parallel 8Docker
shell
docker build .ROCm
shell
docker build --build-arg FLAVOR=rocm .テストの実行
テストを実行するには、go test を使用します:
shell
go test ./...ライブラリ検出
Ollama は、インストール済みおよびローカルの開発レイアウトでネイティブヘルパーバイナリとアクセラレーションライブラリを検索します:
../lib/ollama(ollamaがbin/の下にある標準インストールの場合)./lib/ollama(Windows リリース形式のペイロードおよびローカルの dist 出力の場合).(ヘルパーをollamaと同じ場所に配置する macOS リリースアーティファクトの場合)build/lib/ollamaおよびdist/<platform>/lib/ollama(ローカルの開発ビルドの場合)
ライブラリが見つからない場合、Ollama はアクセラレーションライブラリなしでは実行されません。