1. 17 Apr, 2024 2 commits
  2. 11 Apr, 2024 1 commit
  3. 01 Apr, 2024 1 commit
    • Daniel Hiltgen's avatar
      Switch back to subprocessing for llama.cpp · 58d95cc9
      Daniel Hiltgen authored
      This should resolve a number of memory leak and stability defects by allowing
      us to isolate llama.cpp in a separate process and shutdown when idle, and
      gracefully restart if it has problems.  This also serves as a first step to be
      able to run multiple copies to support multiple models concurrently.
      58d95cc9
  4. 28 Mar, 2024 1 commit
  5. 26 Mar, 2024 2 commits
  6. 25 Mar, 2024 1 commit
    • Daniel Hiltgen's avatar
      Switch arm cuda base image to centos 7 · 5dacc1eb
      Daniel Hiltgen authored
      We had started using rocky linux 8, but they've updated to GCC 10.3,
      which breaks NVCC.  10.2 is compatible (or 10.4, but that's not
      available from rocky linux 8 repos yet)
      5dacc1eb
  7. 21 Mar, 2024 1 commit
  8. 15 Mar, 2024 1 commit
  9. 11 Mar, 2024 1 commit
  10. 10 Mar, 2024 1 commit
  11. 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
    • Jeffrey Morgan's avatar
      update go to 1.22 in other places (#2975) · d481fb3c
      Jeffrey Morgan authored
      d481fb3c
  12. 29 Feb, 2024 1 commit
  13. 26 Jan, 2024 2 commits
  14. 21 Jan, 2024 2 commits
    • Daniel Hiltgen's avatar
      Make CPU builds parallel and customizable AMD GPUs · df54c723
      Daniel Hiltgen authored
      The linux build now support parallel CPU builds to speed things up.
      This also exposes AMD GPU targets as an optional setting for advaced
      users who want to alter our default set.
      df54c723
    • Daniel Hiltgen's avatar
      Combine the 2 Dockerfiles and add ROCm · da72235e
      Daniel Hiltgen authored
      This renames Dockerfile.build to Dockerfile, and adds some new stages
      to support 2 modes of building - the build_linux.sh script uses
      intermediate stages to extract the artifacts for ./dist, and the default
      build generates a container image usable by both cuda and rocm cards.
      This required transitioniing the x86 base to the rocm image to avoid
      layer bloat.
      da72235e
  15. 19 Dec, 2023 2 commits
    • Daniel Hiltgen's avatar
      35934b2e
    • 65a's avatar
      Use build tags to generate accelerated binaries for CUDA and ROCm on Linux. · f8ef4439
      65a authored
      The build tags rocm or cuda must be specified to both go generate and go build.
      ROCm builds should have both ROCM_PATH set (and the ROCM SDK present) as well
      as CLBlast installed (for GGML) and CLBlast_DIR set in the environment to the
      CLBlast cmake directory (likely /usr/lib/cmake/CLBlast). Build tags are also
      used to switch VRAM detection between cuda and rocm implementations, using
      added "accelerator_foo.go" files which contain architecture specific functions
      and variables. accelerator_none is used when no tags are set, and a helper
      function addRunner will ignore it if it is the chosen accelerator. Fix go
      generate commands, thanks @deadmeu for testing.
      f8ef4439
  16. 01 Dec, 2023 1 commit
  17. 13 Oct, 2023 1 commit
  18. 03 Oct, 2023 1 commit
  19. 30 Sep, 2023 2 commits
  20. 29 Sep, 2023 1 commit
  21. 27 Sep, 2023 1 commit
  22. 22 Sep, 2023 1 commit
  23. 14 Sep, 2023 1 commit
  24. 06 Sep, 2023 1 commit
  25. 12 Jul, 2023 1 commit
  26. 08 Jul, 2023 1 commit
  27. 06 Jul, 2023 2 commits
  28. 30 Jun, 2023 2 commits