Pengembangan
Instal prasyarat:
- Go
- CMake 3.24 atau lebih baru
- Kompiler C/C++: Clang di macOS, Visual Studio 2022 C++ tools di Windows, atau GCC/Clang di Linux
- Ninja yang ada di
PATHdisarankan, terutama di Windows
Untuk iterasi murni Go terhadap payload native yang sudah ada, jalankan Ollama dari akar repositori:
shell
go run . serve[!CATATAN] Ollama menyertakan kode native yang dikompilasi dengan CGO. Dari waktu ke waktu struktur data ini dapat berubah dan CGO bisa menjadi tidak sinkron yang mengakibatkan crash yang tidak diharapkan. Anda bisa memaksa build penuh kode native dengan menjalankan
go clean -cacheterlebih dahulu.
Model build native
Untuk checkout baru, atau setelah mengubah kode native, build dari akar repositori. Di macOS arm64, ini akan membangun inferensi Metal. Di semua platform lainnya ini akan membangun inferensi hanya CPU. Ini akan membangun biner Go di akar repositori dan menginstal payload runtime native di bawah build/lib/ollama.
shell
cmake -B build .
cmake --build build --parallel 8
./ollama serveUntuk menginstal ke dalam layout prefix standar:
shell
cmake --install build --prefix /path/to/installDi semua platform kecuali macOS arm64, untuk membangun backend GPU pilih backend secara eksplisit:
shell
cmake -B build . -DOLLAMA_LLAMA_BACKENDS="cuda_v13;vulkan"
cmake --build build --parallel 8Nilai backend yang didukung adalah cuda_v12, cuda_v13, rocm_v7_1, rocm_v7_2, vulkan, cuda_jetpack5, dan cuda_jetpack6.
Gunakan override arsitektur CMake standar untuk menyempitkan build GPU untuk perangkat keras lokal:
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=gfx1100Anda bisa menyesuaikan opsi build GGML dengan mengatur nilai GGML_* selama konfigurasi. Sebagai contoh, untuk menonaktifkan kernel CUDA flash attention untuk debugging lokal:
shell
cmake -B build . -DOLLAMA_LLAMA_BACKENDS=cuda_v12 -DGGML_CUDA_FA=OFFmacOS (Apple Silicon)
Prasyarat tambahan:
MLX Metal memerlukan toolchain Metal. Instal Xcode terlebih dahulu, kemudian:
shell
xcodebuild -downloadComponent MetalToolchainWindows
Prasyarat tambahan:
- Visual Studio 2022 termasuk Native Desktop Workload
- (Opsional) Dukungan GPU AMD
- (Opsional) Dukungan GPU NVIDIA
- (Opsional) Dukungan GPU Vulkan
- Vulkan SDK - berguna untuk GPU AMD/Intel
- (Opsional) Dukungan mesin MLX
Untuk build dengan Ninja, jalankan CMake dari Developer PowerShell/Command Prompt atau shell lain tempat kompiler Visual Studio tersedia.
Membangun untuk Vulkan memerlukan variabel lingkungan VULKAN_SDK:
PowerShell
powershell$env:VULKAN_SDK="C:\VulkanSDK\<version>"CMD
cmdset VULKAN_SDK=C:\VulkanSDK\<version>
Windows (ARM)
Windows ARM saat ini tidak mendukung pustaka akselerasi tambahan.
Linux
Prasyarat tambahan:
- (Opsional) Dukungan GPU AMD
- (Opsional) Dukungan GPU NVIDIA
- (Opsional) Dukungan GPU Vulkan
- Vulkan SDK - berguna untuk GPU AMD/Intel
- Atau instal melalui manajer paket:
sudo apt install vulkan-sdk(Ubuntu/Debian) atausudo dnf install vulkan-sdk(Fedora/CentOS)
- (Opsional) Dukungan mesin MLX
- CUDA 13+ SDK
- cuDNN 9+
- OpenBLAS/LAPACK:
sudo apt install libopenblas-dev liblapack-dev liblapacke-dev(Ubuntu/Debian)
[!PENTING] Pastikan prasyarat ada di
PATHsebelum menjalankan CMake.
Mesin MLX (Opsional)
Mesin MLX memungkinkan menjalankan model berbasis safetensor. Di macOS arm64, MLX diaktifkan secara default. Di platform lainnya, backend MLX dipilih dengan OLLAMA_MLX_BACKENDS.
CUDA
Memerlukan CUDA 13+ dan cuDNN 9+.
shell
cmake -B build . -DOLLAMA_MLX_BACKENDS=cuda_v13
cmake --build build --parallel 8Override sumber MLX lokal
Untuk membangun berdasarkan checkout lokal MLX dan/atau MLX-C (berguna untuk pengembangan), atur variabel lingkungan sebelum menjalankan CMake:
shell
export OLLAMA_MLX_SOURCE=/path/to/mlx
export OLLAMA_MLX_C_SOURCE=/path/to/mlx-cDi macOS arm64:
shell
OLLAMA_MLX_SOURCE=../mlx OLLAMA_MLX_C_SOURCE=../mlx-c cmake -B build .
cmake --build build --parallel 8Untuk CUDA:
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 .Menjalankan uji
Untuk menjalankan uji, gunakan go test:
shell
go test ./...Deteksi pustaka
Ollama mencari biner pembantu native dan pustaka akselerasi di layout pengembangan terinstal dan lokal:
../lib/ollamauntuk instalasi standar di manaollamaberada di bawahbin/./lib/ollamauntuk payload gaya rilis Windows dan output dist lokal.untuk artefak rilis macOS yang menempatkan pembantu bersama denganollamabuild/lib/ollamadandist/<platform>/lib/ollamauntuk build pengembangan lokal
Jika pustaka tidak ditemukan, Ollama tidak akan berjalan dengan pustaka akselerasi apa pun.