1. 14 Jun, 2024 3 commits
  2. 13 Jun, 2024 1 commit
  3. 04 Jun, 2024 1 commit
  4. 02 Jun, 2024 1 commit
  5. 24 May, 2024 2 commits
  6. 10 May, 2024 1 commit
    • Daniel Hiltgen's avatar
      Bump VRAM buffer back up · 30a7d709
      Daniel Hiltgen authored
      Under stress scenarios we're seeing OOMs so this should help stabilize
      the allocations under heavy concurrency stress.
      30a7d709
  7. 09 May, 2024 1 commit
    • Daniel Hiltgen's avatar
      Record more GPU information · 8727a9c1
      Daniel Hiltgen authored
      This cleans up the logging for GPU discovery a bit, and can
      serve as a foundation to report GPU information in a future UX.
      8727a9c1
  8. 07 May, 2024 1 commit
  9. 06 May, 2024 1 commit
    • Daniel Hiltgen's avatar
      Use our libraries first · 380378cc
      Daniel Hiltgen authored
      Trying to live off the land for cuda libraries was not the right strategy.  We need to use the version we compiled against to ensure things work properly
      380378cc
  10. 05 May, 2024 1 commit
    • Daniel Hiltgen's avatar
      Centralize server config handling · f56aa200
      Daniel Hiltgen authored
      This moves all the env var reading into one central module
      and logs the loaded config once at startup which should
      help in troubleshooting user server logs
      f56aa200
  11. 03 May, 2024 1 commit
  12. 01 May, 2024 1 commit
  13. 23 Apr, 2024 1 commit
    • Daniel Hiltgen's avatar
      Request and model concurrency · 34b9db5a
      Daniel Hiltgen authored
      This change adds support for multiple concurrent requests, as well as
      loading multiple models by spawning multiple runners. The default
      settings are currently set at 1 concurrent request per model and only 1
      loaded model at a time, but these can be adjusted by setting
      OLLAMA_NUM_PARALLEL and OLLAMA_MAX_LOADED_MODELS.
      34b9db5a
  14. 10 Apr, 2024 1 commit
  15. 01 Apr, 2024 3 commits
  16. 25 Mar, 2024 1 commit
  17. 07 Mar, 2024 2 commits
    • Daniel Hiltgen's avatar
      Revamp ROCm support · 6c5ccb11
      Daniel Hiltgen authored
      This refines where we extract the LLM libraries to by adding a new
      OLLAMA_HOME env var, that defaults to `~/.ollama` The logic was already
      idempotenent, so this should speed up startups after the first time a
      new release is deployed.  It also cleans up after itself.
      
      We now build only a single ROCm version (latest major) on both windows
      and linux.  Given the large size of ROCms tensor files, we split the
      dependency out.  It's bundled into the installer on windows, and a
      separate download on windows.  The linux install script is now smart and
      detects the presence of AMD GPUs and looks to see if rocm v6 is already
      present, and if not, then downloads our dependency tar file.
      
      For Linux discovery, we now use sysfs and check each GPU against what
      ROCm supports so we can degrade to CPU gracefully instead of having
      llama.cpp+rocm assert/crash on us.  For Windows, we now use go's windows
      dynamic library loading logic to access the amdhip64.dll APIs to query
      the GPU information.
      6c5ccb11
    • Daniel Hiltgen's avatar
      Allow setting max vram for workarounds · be330174
      Daniel Hiltgen authored
      Until we get all the memory calculations correct, this can provide
      and escape valve for users to workaround out of memory crashes.
      be330174
  18. 17 Feb, 2024 1 commit
  19. 12 Feb, 2024 1 commit
  20. 28 Jan, 2024 2 commits
  21. 26 Jan, 2024 2 commits
    • Daniel Hiltgen's avatar
      Detect lack of AVX and fallback to CPU mode · 667a2ba1
      Daniel Hiltgen authored
      We build the GPU libraries with AVX enabled to ensure that if not all
      layers fit on the GPU we get better performance in a mixed mode.
      If the user is using a virtualization/emulation system that lacks AVX
      this used to result in an illegal instruction error and crash before this
      fix.  Now we will report a warning in the server log, and just use
      CPU mode to ensure we don't crash.
      667a2ba1
    • Daniel Hiltgen's avatar
      Ignore AMD integrated GPUs · 9d7b5d6c
      Daniel Hiltgen authored
      Detect and ignore integrated GPUs reported by rocm.
      9d7b5d6c
  22. 24 Jan, 2024 1 commit
    • Daniel Hiltgen's avatar
      More logging for gpu management · 013fd071
      Daniel Hiltgen authored
      Fix an ordering glitch of dlerr/dlclose and add more logging to help
      root cause some crashes users are hitting. This also refines the
      function pointer names to use the underlying function names instead
      of simplified names for readability.
      013fd071
  23. 23 Jan, 2024 1 commit
    • Daniel Hiltgen's avatar
      Report more information about GPUs in verbose mode · 987c16b2
      Daniel Hiltgen authored
      This adds additional calls to both CUDA and ROCm management libraries to
      discover additional attributes about the GPU(s) detected in the system, and
      wires up runtime verbosity selection.  When users hit problems with GPUs we can
      ask them to run with `OLLAMA_DEBUG=1 ollama serve` and share the results.
      987c16b2
  24. 20 Jan, 2024 3 commits
  25. 19 Jan, 2024 2 commits
  26. 18 Jan, 2024 1 commit
  27. 14 Jan, 2024 1 commit
  28. 11 Jan, 2024 2 commits
    • Daniel Hiltgen's avatar
      Build multiple CPU variants and pick the best · d88c527b
      Daniel Hiltgen authored
      This reduces the built-in linux version to not use any vector extensions
      which enables the resulting builds to run under Rosetta on MacOS in
      Docker.  Then at runtime it checks for the actual CPU vector
      extensions and loads the best CPU library available
      d88c527b
    • Daniel Hiltgen's avatar
      Support multiple variants for a given llm lib type · 8da7bef0
      Daniel Hiltgen authored
      In some cases we may want multiple variants for a given GPU type or CPU.
      This adds logic to have an optional Variant which we can use to select
      an optimal library, but also allows us to try multiple variants in case
      some fail to load.
      
      This can be useful for scenarios such as ROCm v5 vs v6 incompatibility
      or potentially CPU features.
      8da7bef0