1. 07 Oct, 2025 1 commit
    • Daniel Hiltgen's avatar
      Bring back escape valve for llm libraries and fix Jetpack6 crash (#12529) · bd15eba4
      Daniel Hiltgen authored
      * Bring back escape valve for llm libraries
      
      If the new discovery logic picks the wrong library, this gives users the
      ability to force a specific one using the same pattern as before. This
      can also potentially speed up bootstrap discovery if one of the libraries
      takes a long time to load and ultimately bind to no devices.  For example
      unsupported AMD iGPUS can sometimes take a while to discover and rule out.
      
      * Bypass extra discovery on jetpack systems
      
      On at least Jetpack6, cuda_v12 appears to expose the iGPU, but crashes later on in
      cublasInit so if we detect a Jetpack, short-circuit and use that variant.
      bd15eba4
  2. 01 Oct, 2025 1 commit
    • Daniel Hiltgen's avatar
      Use runners for GPU discovery (#12090) · bc8909fb
      Daniel Hiltgen authored
      This revamps how we discover GPUs in the system by leveraging the Ollama
      runner.  This should eliminate inconsistency between our GPU discovery and the
      runners capabilities at runtime, particularly for cases where we try to filter
      out unsupported GPUs.  Now the runner does that implicitly based on the actual
      device list.  In some cases free VRAM reporting can be unreliable which can
      leaad to scheduling mistakes, so this also includes a patch to leverage more
      reliable VRAM reporting libraries if available.
      
      Automatic workarounds have been removed as only one GPU leveraged this, which
      is now documented. This GPU will soon fall off the support matrix with the next
      ROCm bump.
      
      Additional cleanup of the scheduler and discovery packages can be done in the
      future once we have switched on the new memory management code, and removed
      support for the llama runner.
      bc8909fb
  3. 17 Sep, 2025 1 commit
  4. 29 Aug, 2025 1 commit
  5. 13 Aug, 2025 1 commit
    • Daniel Hiltgen's avatar
      discovery: fix cudart driver version (#11614) · 837379a9
      Daniel Hiltgen authored
      We prefer the nvcuda library, which reports driver versions. When we
      dropped cuda v11, we added a safety check for too-old drivers.  What
      we missed was the cudart fallback discovery logic didn't have driver
      version wired up.  This fixes cudart discovery to expose the driver
      version as well so we no longer reject all GPUs if nvcuda didn't work.
      837379a9
  6. 12 May, 2025 1 commit
  7. 31 Jan, 2025 1 commit
  8. 30 Jan, 2025 1 commit
  9. 29 Jan, 2025 1 commit
    • Michael Yang's avatar
      next build (#8539) · dcfb7a10
      Michael Yang authored
      
      
      * add build to .dockerignore
      
      * test: only build one arch
      
      * add build to .gitignore
      
      * fix ccache path
      
      * filter amdgpu targets
      
      * only filter if autodetecting
      
      * Don't clobber gpu list for default runner
      
      This ensures the GPU specific environment variables are set properly
      
      * explicitly set CXX compiler for HIP
      
      * Update build_windows.ps1
      
      This isn't complete, but is close.  Dependencies are missing, and it only builds the "default" preset.
      
      * build: add ollama subdir
      
      * add .git to .dockerignore
      
      * docs: update development.md
      
      * update build_darwin.sh
      
      * remove unused scripts
      
      * llm: add cwd and build/lib/ollama to library paths
      
      * default DYLD_LIBRARY_PATH to LD_LIBRARY_PATH in runner on macOS
      
      * add additional cmake output vars for msvc
      
      * interim edits to make server detection logic work with dll directories like lib/ollama/cuda_v12
      
      * remove unncessary filepath.Dir, cleanup
      
      * add hardware-specific directory to path
      
      * use absolute server path
      
      * build: linux arm
      
      * cmake install targets
      
      * remove unused files
      
      * ml: visit each library path once
      
      * build: skip cpu variants on arm
      
      * build: install cpu targets
      
      * build: fix workflow
      
      * shorter names
      
      * fix rocblas install
      
      * docs: clean up development.md
      
      * consistent build dir removal in development.md
      
      * silence -Wimplicit-function-declaration build warnings in ggml-cpu
      
      * update readme
      
      * update development readme
      
      * llm: update library lookup logic now that there is one runner (#8587)
      
      * tweak development.md
      
      * update docs
      
      * add windows cuda/rocm tests
      
      ---------
      Co-authored-by: default avatarjmorganca <jmorganca@gmail.com>
      Co-authored-by: default avatarDaniel Hiltgen <daniel@ollama.com>
      dcfb7a10
  10. 03 Jan, 2025 1 commit
  11. 10 Dec, 2024 1 commit
    • Daniel Hiltgen's avatar
      build: Make target improvements (#7499) · 4879a234
      Daniel Hiltgen authored
      * llama: wire up builtin runner
      
      This adds a new entrypoint into the ollama CLI to run the cgo built runner.
      On Mac arm64, this will have GPU support, but on all other platforms it will
      be the lowest common denominator CPU build.  After we fully transition
      to the new Go runners more tech-debt can be removed and we can stop building
      the "default" runner via make and rely on the builtin always.
      
      * build: Make target improvements
      
      Add a few new targets and help for building locally.
      This also adjusts the runner lookup to favor local builds, then
      runners relative to the executable, and finally payloads.
      
      * Support customized CPU flags for runners
      
      This implements a simplified custom CPU flags pattern for the runners.
      When built without overrides, the runner name contains the vector flag
      we check for (AVX) to ensure we don't try to run on unsupported systems
      and crash.  If the user builds a customized set, we omit the naming
      scheme and don't check for compatibility.  This avoids checking
      requirements at runtime, so that logic has been removed as well.  This
      can be used to build GPU runners with no vector flags, or CPU/GPU
      runners with additional flags (e.g. AVX512) enabled.
      
      * Use relative paths
      
      If the user checks out the repo in a path that contains spaces, make gets
      really confused so use relative paths for everything in-repo to avoid breakage.
      
      * Remove payloads from main binary
      
      * install: clean up prior libraries
      
      This removes support for v0.3.6 and older versions (before the tar bundle)
      and ensures we clean up prior libraries before extracting the bundle(s).
      Without this change, runners and dependent libraries could leak when we
      update and lead to subtle runtime errors.
      4879a234
  12. 12 Nov, 2024 1 commit
  13. 02 Nov, 2024 1 commit
  14. 17 Oct, 2024 1 commit
  15. 15 Oct, 2024 1 commit
  16. 14 Oct, 2024 1 commit
  17. 21 Sep, 2024 1 commit
  18. 12 Sep, 2024 1 commit
    • Daniel Hiltgen's avatar
      Optimize container images for startup (#6547) · cd5c8f64
      Daniel Hiltgen authored
      * Optimize container images for startup
      
      This change adjusts how to handle runner payloads to support
      container builds where we keep them extracted in the filesystem.
      This makes it easier to optimize the cpu/cuda vs cpu/rocm images for
      size, and should result in faster startup times for container images.
      
      * Refactor payload logic and add buildx support for faster builds
      
      * Move payloads around
      
      * Review comments
      
      * Converge to buildx based helper scripts
      
      * Use docker buildx action for release
      cd5c8f64
  19. 27 Aug, 2024 1 commit
  20. 23 Aug, 2024 1 commit
  21. 19 Aug, 2024 5 commits
  22. 09 Aug, 2024 1 commit
  23. 02 Aug, 2024 1 commit
  24. 22 Jul, 2024 3 commits
  25. 11 Jul, 2024 1 commit
  26. 09 Jul, 2024 1 commit
    • Daniel Hiltgen's avatar
      Detect CUDA OS Overhead · f6f759fc
      Daniel Hiltgen authored
      This adds logic to detect skew between the driver and
      management library which can be attributed to OS overhead
      and records that so we can adjust subsequent management
      library free VRAM updates and avoid OOM scenarios.
      f6f759fc
  27. 03 Jul, 2024 1 commit
    • Daniel Hiltgen's avatar
      Better nvidia GPU discovery logging · ef757da2
      Daniel Hiltgen authored
      Refine the way we log GPU discovery to improve the non-debug
      output, and report more actionable log messages when possible
      to help users troubleshoot on their own.
      ef757da2
  28. 19 Jun, 2024 2 commits
  29. 17 Jun, 2024 2 commits
  30. 14 Jun, 2024 3 commits