1. 11 Mar, 2024 1 commit
  2. 10 Mar, 2024 1 commit
    • Daniel Hiltgen's avatar
      Add ollama executable peer dir for rocm · 00ec2693
      Daniel Hiltgen authored
      This allows people who package up ollama on their own to place
      the rocm dependencies in a peer directory to the ollama executable
      much like our windows install flow.
      00ec2693
  3. 09 Mar, 2024 2 commits
    • Jeffrey Morgan's avatar
      tidy cleanup logs · 0bd0f4a2
      Jeffrey Morgan authored
      0bd0f4a2
    • Daniel Hiltgen's avatar
      Finish unwinding idempotent payload logic · 4a5c9b80
      Daniel Hiltgen authored
      The recent ROCm change partially removed idempotent
      payloads, but the ggml-metal.metal file for mac was still
      idempotent.  This finishes switching to always extract
      the payloads, and now that idempotentcy is gone, the
      version directory is no longer useful.
      4a5c9b80
  4. 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
  5. 29 Feb, 2024 1 commit
  6. 25 Feb, 2024 1 commit
  7. 17 Feb, 2024 1 commit
  8. 12 Feb, 2024 1 commit
  9. 28 Jan, 2024 2 commits
  10. 27 Jan, 2024 1 commit
  11. 26 Jan, 2024 3 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
    • Daniel Hiltgen's avatar
      Fix crash on cuda ml init failure · 5d9c4a5f
      Daniel Hiltgen authored
      The new driver lookup code was triggering after init failure due to a missing return
      5d9c4a5f
  12. 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
  13. 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
  14. 20 Jan, 2024 3 commits
  15. 19 Jan, 2024 2 commits
  16. 18 Jan, 2024 1 commit
  17. 14 Jan, 2024 1 commit
  18. 11 Jan, 2024 6 commits
  19. 10 Jan, 2024 1 commit
    • Daniel Hiltgen's avatar
      Harden GPU mgmt library lookup · 3c49c3ab
      Daniel Hiltgen authored
      When there are multiple management libraries installed on a system
      not every one will be compatible with the current driver.  This change
      improves our management library algorithm to build up a set of discovered
      libraries based on glob patterns, and then try all of them until we're able to
      load one without error.
      3c49c3ab
  20. 09 Jan, 2024 8 commits