1. 11 Jan, 2024 3 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
      DRY out the Dockefile.build · 052b33b8
      Daniel Hiltgen authored
      052b33b8
    • 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
  2. 05 Jan, 2024 1 commit
  3. 22 Dec, 2023 1 commit
  4. 20 Dec, 2023 1 commit
    • Daniel Hiltgen's avatar
      Revamp the dynamic library shim · 7555ea44
      Daniel Hiltgen authored
      This switches the default llama.cpp to be CPU based, and builds the GPU variants
      as dynamically loaded libraries which we can select at runtime.
      
      This also bumps the ROCm library to version 6 given 5.7 builds don't work
      on the latest ROCm library that just shipped.
      7555ea44
  5. 19 Dec, 2023 3 commits
    • Daniel Hiltgen's avatar
      Build linux using ubuntu 20.04 · 89bbaafa
      Daniel Hiltgen authored
      This changes the container-based linux build to use an older Ubuntu
      distro to improve our compatibility matrix for older user machines
      89bbaafa
    • 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
  6. 13 Oct, 2023 2 commits
  7. 03 Oct, 2023 1 commit
  8. 29 Sep, 2023 1 commit
  9. 22 Sep, 2023 1 commit