개발
사전 요구 사항 설치:
- Go
- CMake 3.24 이상
- C/C++ 컴파일러: macOS의 경우 Clang, Windows의 경우 Visual Studio 2022 C++ 도구, Linux의 경우 GCC/Clang
PATH에 Ninja가 있는 것을 권장하며, 특히 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 지원
- AMD/Intel GPU에 유용한 Vulkan SDK
- (선택 사항) 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 지원
- AMD/Intel GPU에 유용한 Vulkan SDK
- 또는 패키지 관리자를 통해 설치:
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는 설치된 및 로컬 개발 레이아웃에서 네이티브 헬퍼 바이너리와 가속 라이브러리를 찾습니다:
ollama가bin/아래에 있는 표준 설치의 경우../lib/ollama- Windows 릴리스 스타일 페이로드 및 로컬 dist 출력의 경우
./lib/ollama - 헬퍼를
ollama와 동일한 위치에 배치하는 macOS 릴리스 아티팩트의 경우. - 로컬 개발 빌드의 경우
build/lib/ollama및dist/<platform>/lib/ollama
라이브러리를 찾을 수 없으면 Ollama는 가속 라이브러리 없이 실행되지 않습니다.