1. 09 Jan, 2026 1 commit
    • Daniel Hiltgen's avatar
      Add experimental MLX backend and engine with imagegen support (#13648) · 33ee7168
      Daniel Hiltgen authored
      
      
      * WIP - MLX backend with gemma3
      
      * MLX: add cmake and go tag build toggles
      
      To build the new MLX backend code:
        cmake --preset MLX
        cmake --build --preset MLX --parallel
        cmake --install build --component MLX
        go build -tags mlx .
      
      Note: the main.go entrypoint for the MLX engine will change in a follow up commit.
      
      * add experimental image generation runtime
      
      * add experimental image generation runtime
      
      * MLX: wire up cuda build for linux
      
      * MLX: get dependencies correct and dedup
      
      This is still too large for a unified github artifact, but is now "correct" for the mlx_cuda_v13
      directory.
      
      * fix relative link bug in dedup
      
      * Add darwin build and readme
      
      * add go build tag for mlx dependent code and wire up build_darwin.sh
      
      * lint cleanup
      
      * macos: build mlx for x86
      
      This will be CPU only.
      
      * cuda build instructions and fix drift from mlx bump
      
      * stale comment
      
      * Delete agent helper doc
      
      * Clean up readme.md
      
      * Revise README for tokenizer clarity and details
      
      Updated README to clarify tokenizer functionality and removed correctness section.
      
      ---------
      Co-authored-by: default avatarjmorganca <jmorganca@gmail.com>
      33ee7168
  2. 08 Jan, 2026 1 commit
    • Daniel Hiltgen's avatar
      Linux: switch to zstd compression (#13651) · 34d0c55e
      Daniel Hiltgen authored
      With the upcoming addition of MLX, the linux bundle will exceed the
      maximum github artifact size of 2G.  This change will bring the size
      back down.
      
      The install.sh changes support backwards compatibility for prior versions
      thus should be safe to merge concurrently with this change.
      34d0c55e
  3. 12 Nov, 2025 1 commit
  4. 04 Nov, 2025 2 commits
  5. 23 Oct, 2025 1 commit
    • Daniel Hiltgen's avatar
      DRY out the runner lifecycle code (#12540) · 3258a89b
      Daniel Hiltgen authored
      * DRY out the runner lifecycle code
      
      Now that discovery uses the runners as well, this unifies the runner spawning code
      into a single place.  This also unifies GPU discovery types with the newer ml.DeviceInfo
      
      * win: make incremental builds better
      
      Place build artifacts in discrete directories so incremental builds don't have to start fresh
      
      * Adjust sort order to consider iGPUs
      
      * handle cpu inference oom scenarios
      
      * review comments
      3258a89b
  6. 15 Oct, 2025 1 commit
  7. 14 Oct, 2025 1 commit
    • Thomas Stocker's avatar
      Vulkan based on #9650 (#11835) · 2aba569a
      Thomas Stocker authored
      * implement the vulkan C backend
      
      * add support in gpu.go
      
      * add support in gen_linux.sh
      
      * it builds
      
      * fix segfault
      
      * fix compilation
      
      * fix free memory monitor
      
      * fix total memory monitor
      
      * update gpu.go
      
      * fix build
      
      * fix check_perfmon len
      
      * remove cap_get_bound check
      
      * fix vulkan handle releasing
      
      * fix build on federa 40
      
      * fix vulkan on windows
      
      * making amdgpu work on arm achitecutre with vulkan
      
      * add x86_64 lines in VulkanGlobs and capLinuxGlobs
      
      * add aarch64 lines in vulkanGlobs and capLinuxGlobs
      
      * Fix variable name
      
      * Add vulkan build patch from @jmorganca
      
      * Sync vendored ggml to add Vulkan support
      
      * Updated dockerfile
      
      https://github.com/whyvl/ollama-vulkan/issues/7#issuecomment-2660836871
      
      Signed-off-by: default avatarVadim Grinco <vadim@grinco.eu>
      
      * Installing rocm library
      Signed-off-by: default avatarVadim Grinco <vadim@grinco.eu>
      
      * This version works well
      
      built based on this: https://github.com/whyvl/ollama-vulkan/issues/7#issuecomment-2660836871
      
      Signed-off-by: default avatarVadim Grinco <vadim@grinco.eu>
      
      * Applied 00-fix-vulkan-building.patch
      
      Work done by McBane87 here: https://github.com/whyvl/ollama-vulkan/issues/7#issuecomment-2660836871
      
      Signed-off-by: default avatarVadim Grinco <vadim@grinco.eu>
      
      * Fixed the "detached head" issues
      Signed-off-by: default avatarVadim Grinco <vadim@grinco.eu>
      
      * Merged in the right direction
      Signed-off-by: default avatarVadim Grinco <vadim@grinco.eu>
      
      * Merging the latest stable (#2)
      
      * Applied 00-fix-vulkan-building.patch
      
      * Implemented vulkan backend based on the work done by whyvl, Dts0, McBane87 and others
      
      Tested on AMD Ryzen 7 8845HS w/ Radeon 780M Graphics with ROCm disabled
      
      ```
      [GIN-debug] POST   /v1/chat/completions      --> github.com/ollama/ollama/server.(*Server).ChatHandler-fm (6 handlers)
      [GIN-debug] POST   /v1/completions           --> github.com/ollama/ollama/server.(*Server).GenerateHandler-fm (6 handlers)
      [GIN-debug] POST   /v1/embeddings            --> github.com/ollama/ollama/server.(*Server).EmbedHandler-fm (6 handlers)
      [GIN-debug] GET    /v1/models                --> github.com/ollama/ollama/server.(*Server).ListHandler-fm (6 handlers)
      [GIN-debug] GET    /v1/models/:model         --> github.com/ollama/ollama/server.(*Server).ShowHandler-fm (6 handlers)
      time=2025-03-11T13:00:40.793Z level=INFO source=gpu.go:199 msg="vulkan: load libvulkan and libcap ok"
      time=2025-03-11T13:00:40.877Z level=INFO source=gpu.go:421 msg="error looking up vulkan GPU memory" error="device is a CPU"
      time=2025-03-11T13:00:40.878Z level=WARN source=amd_linux.go:443 msg="amdgpu detected, but no compatible rocm library found.  Either install rocm v6, or follow manual install instructions at https://github.com/ollama/ollama/blob/main/docs/linux.md#manual-install"
      time=2025-03-11T13:00:40.878Z level=WARN source=amd_linux.go:348 msg="unable to verify rocm library: no suitable rocm found, falling back to CPU"
      time=2025-03-11T13:00:40.879Z level=INFO source=types.go:137 msg="inference compute" id=0 library=vulkan variant="" compute=1.3 driver=1.3 name="AMD Radeon Graphics (RADV GFX1103_R1)" total="15.6 GiB" available="15.6 GiB"
      ```
      
      ```
       # ollama run phi4:14b
      >>> /set verbose
      Set 'verbose' mode.
      >>> how's it going?
      Hello! I'm here to help you with any questions or tasks you have. How can I assist you today? 😊
      
      
      
      total duration:       3.341959745s
      load duration:        18.165612ms
      prompt eval count:    15 token(s)
      prompt eval duration: 475ms
      prompt eval rate:     31.58 tokens/s
      eval count:           26 token(s)
      eval duration:        2.846s
      eval rate:            9.14 tokens/s
      >>>
      ```
      
      * This is no longer needed
      Signed-off-by: default avatarVadim Grinco <vadim@grinco.eu>
      
      * Fixes SIGSEGV: segmentation violation running gemma3 models on ollama 0.6.0 #21
      
      Patch provided by McBane87 on https://github.com/whyvl/ollama-vulkan/issues/21
      
      Signed-off-by: default avatarVadim Grinco <vadim@grinco.eu>
      
      * Applied 04-disable-mmap-vulkan.patch
      
      From: https://github.com/whyvl/ollama-vulkan/issues/7#issuecomment-2660836871
      
      Signed-off-by: default avatarVadim Grinco <vadim@grinco.eu>
      
      * Pulled new upstream code for ggml-bulkan backend
      Signed-off-by: default avatarVadim Grinco <vadim@grinco.eu>
      
      * Merged latest ollama 0.6.2 and nasrally's Flash Attention patches (#5)
      
      * readme: add Ellama to list of community integrations (#9800)
      
      * readme: add screenpipe to community integrations (#9786)
      
      * Add support for ROCm gfx1151 (#9773)
      
      * conditionally enable parallel pipelines
      
      * sample: make mutations in transforms explicit (#9743)
      
      * updated minP to use early exit making use of sorted tokens
      
      * ml/backend/ggml: allocate memory with malloc when loading model (#9822)
      
      * runner: remove cache prompt flag from ollama runner (#9826)
      
      We do not need to bypass the prompt caching in the ollama runner yet, as
      only embedding models needed to bypass the prompt caching. When embedding
      models are implemented they can skip initializing this cache completely.
      
      * ollamarunner: Check for minBatch of context space when shifting
      
      Models can specify that a group of inputs need to be handled a single
      batch. However, context shifting didn't respect this and could trigger
      a break anyways. In this case, we should instead trigger a context
      shift earlier so that it occurs before the grouped batch.
      
      Note that there still some corner cases:
       - A long prompt that exceeds the context window can get truncated
         in the middle of an image. With the current models, this will
         result in the model not recognizing the image at all, which is
         pretty much the expected result with truncation.
       - The context window is set less than the minimum batch size. The
         only solution to this is to refuse to load the model with these
         settings. However, this can never occur with current models and
         default settings.
      
      Since users are unlikely to run into these scenarios, fixing them is
      left as a follow up.
      
      * Applied latest patches from McBane87
      
      See this for details: https://github.com/whyvl/ollama-vulkan/issues/7#issuecomment-2708820861
      
      Signed-off-by: default avatarVadim Grinco <vadim@grinco.eu>
      
      * Add ability to enable flash attention on vulkan (#4
      
      )
      
      * discover: add flash attention handling for vulkan
      * envconfig: fix typo in config.go
      
      As part of the process some code was refactored and I added a new field
      FlashAttention to GpuInfo since the previous solution didn't allow for a
      granular check via vulkan extensions. As a side effect, this now allows
      for granular per-device FA support checking in other places
      
      ---------
      Signed-off-by: default avatarVadim Grinco <vadim@grinco.eu>
      Co-authored-by: default avatarzeo <108888572+zeozeozeo@users.noreply.github.com>
      Co-authored-by: default avatarLouis Beaumont <louis.beaumont@gmail.com>
      Co-authored-by: default avatarDaniel Hiltgen <dhiltgen@users.noreply.github.com>
      Co-authored-by: default avatarMichael Yang <mxyng@pm.me>
      Co-authored-by: default avatarParth Sareen <parth.sareen@ollama.com>
      Co-authored-by: default avatarJeffrey Morgan <jmorganca@gmail.com>
      Co-authored-by: default avatarBruce MacDonald <brucewmacdonald@gmail.com>
      Co-authored-by: default avatarJesse Gross <jesse@ollama.com>
      Co-authored-by: default avatarNikita <50599445+nasrally@users.noreply.github.com>
      
      * Revert Readme changes
      
      * Revert
      
      * Revert changes in amd_linux.go
      
      * Revert changes in amd_linux.go
      
      * Remove flashattention setting gpu.go
      
      * Revert whitespace changes in gpu.go
      
      * Revert changes in transforms_test.go
      
      * Revert changes in runner.go
      
      * Revert changes in Makefile.sync
      
      * Revert some unintented changes in Dockerfile
      
      * Revert vulkan copy changes in Dockerfile
      
      * Update Vulkan Code to de4c07f93783a1a96456a44dc16b9db538ee1618
      
      * Fixed duplicate sync in ggml.go
      
      * Revert changes in ggml.go
      
      * Revert chnages in ggml.go
      
      * enable falsh attention on vulkan
      
      * revert remove parenthesis
      
      * fixed flash attention logic enabling
      
      * vk_check_flash_attention 0 means supported
      
      * Update gpu.go
      
      * Add vulkan to Windows Build script
      
      * Remove commented out code
      
      * Enable Vulkan Flash attention in FlashAttentionSupported
      
      * Fix logging
      
      * Update Vulkan backend to e54d41befcc1575f4c898c5ff4ef43970cead75f
      
      * Removed libcap related code
      
      libcap is not directly related to Vulkan and should be added by its own PR. It adds additional library dependencies for building and also requires users to run setcap or run ollama as root, which is not ideal for easy use
      
      * Fix Unit Test (Add Vulkan Library)
      
      * Add vulkan to TestHomogeneousGPUs
      Test
      
      * vulkan: get GPU ID (ollama v0.11.5)
      Signed-off-by: default avatarXiaodong Ye <xiaodong.ye@mthreads.com>
      
      * disable mmap for vulkan
      
      * Reduce Changes remove TestHomogeneousGPUs (doesn't exist on master)
      
      * Update vulkan version to the version used in llama.cpp
      
      * rename gpu patch to correct number
      
      * added Vulkan API to get correct Device UUID
      
      current UUID from pipelineCacheUUID does not match CUDA
      
      * Fix GPU ID Patch
      
      * Remove Code not in llama.cpp
      
      * modified UUID code inside ggml
      
      * Fix Patch
      
      * Copied minimal definition from vulkan header
      
      * Fix compile error in Mac
      
      Metal is preferred so we're disabling Vulkan for now
      
      * Removed unused code
      
      Fix linter error in CI
      
      * Fix patches apply
      
      * fixing lint error
      
      * Removed unneeded function call
      
      Somehow removing this call fixed the crashing when Vulkan header was removed
      
      * added missing NL
      
      * Fixed missing members in Vulkan header
      
      also added zero clear for some structs
      
      * Fixed wrong structure ID
      
      * Fixed Vulkan header
      
      More aligned with official header definition now
      
      * buildvulkanAsSeperateFunction
      
      * Vulkan on Windows Test
      
      * temporarly comment out gate to run windows task
      
      * use temporarly windows-latest for build
      
      * Commenting out other presets to build vulkan
      
      * reenable cpu
      
      * commenting out error action stop
      
      * temporarly commenting out rocm
      
      * set vulkan path
      
      * comment out cude for faster turnaround
      
      * correct vulkan install
      
      * correct vulkan silent install
      
      * fixed install command
      
      * revert debugging changes (vulkan builds on windows)
      
      * revert windows-latest
      
      * trying to build vulkan for linux
      
      * temporarly disable cuda and rocm
      
      * try again linux build
      
      * fix version
      
      * trying to fix
      
      * trying again
      
      * trying again
      
      * fix version
      
      * fixed vulkan-sdk name
      
      * try again
      
      * trying again
      
      * try without version number
      
      * try again
      
      * add some more extra
      
      * trying to use version 1.4.313
      
      * revert debugging changes
      
      * Filter out already supported gpus
      
      * revert debug code
      
      * Use runners for GPU discovery
      
      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.
      
      * timing info for runner
      
      * WIP - wire up Vulkan with the new engine based discovery
      
      Not a complete implementation - free VRAM is better, but not accurate on
      windows
      
      * fix - trust the library paths from discovery when starting runner
      
      * fix index bug
      
      * fix vulkan ids to be underlying
      
      * fix - give bootstrapping more time on slow systems
      
      * Test if Vulkan device is supported
      
      * vk_check_flash_attention is not needed (coompat2 coopmapt and scalar implementation exist)
      
      * Handle GGML_VK_VISIBLE_DEVICES
      
      * ask for supported first
      
      * win: fix CPU query buffer handling
      
      Try in a short loop until we get the size right.
      
      * test: harden integration tests for slow start
      
      If the server takes a while to start up, block
      tests from starting until it's online to avoid
      setting large timeouts in individual test cases.
      
      * gofumpt fix
      
      * fix build
      
      * merge fixes
      
      * merge fixes
      
      * fixed build
      
      * merge fixes
      
      * fixing build
      
      * fixed build
      
      * fixed formatting
      
      * fixed build
      
      * fix vulkan gpu id patch
      
      * sync llama.cpp vulkan code
      
      * update build windows script
      
      * merge fixes
      
      * fix format
      
      * fixed vulkan casing
      
      * handle igpu as gpu
      
      * improve case
      
      * print out unknown library
      
      * rturn Vulkan for vulkan library
      
      * Revert "rturn Vulkan for vulkan library"
      
      This reverts commit 690461a12fd5e93295d174c97edefb2bc33285b1.
      
      * fixed patch number
      
      * return Library Name
      
      * remvoe debug code
      
      * return integrated in vulkan backend
      
      * Return pci Properties
      
      * update patch
      
      * directly get pci proeprties without parsing
      
      * workaround for filtering devices. Correct way is to have a LibraryPosition Parameter in the deviceInfo
      
      * Revert "directly get pci proeprties without parsing"
      
      This reverts commit 8e0624851f5ed7d9f74518f574dfb422e4dd4dc2.
      
      * Set FilteredID for Environment Filtering
      
      * ROCm Library is named ROCm
      
      * revert changes in patch
      
      * Create 0028-vulkan-pci-and-memory.patch
      
      * vulkan memory patch
      
      * casing fix
      
      * Add more pci properties
      
      * Added better memory management
      
      * Added better memory managament
      
      * fixed patch
      
      * Fixed patch
      
      * FilterID creation group by library
      
      * filter out vulkan supported by other gpu
      
      * fixing deviceid compare
      
      * Vulkan Fix FA coopmat1 invalid array indexing
      
      * Use everywhere the same Vulkan Version 1.4.321.1
      
      * Remove unneeded patch
      
      * vulkan update
      
      * sync vulkan glsl files
      
      * only use for vulkan the filteredid (numeric device number)
      
      * simplify code
      
      ---------
      Signed-off-by: default avatarVadim Grinco <vadim@grinco.eu>
      Signed-off-by: default avatarXiaodong Ye <xiaodong.ye@mthreads.com>
      Co-authored-by: default avatarpufferffish <github@bandersnatch.anonaddy.com>
      Co-authored-by: KOISHI KOMEIJI FROM TOUHOU 11 <fuck>
      Co-authored-by: default avatarDSLstandard <qgeneral35@gmail.com>
      Co-authored-by: default avatarpufferffish <me@windtfw.com>
      Co-authored-by: default avataryeongbba <yeongmo.lee@logpresso.com>
      Co-authored-by: default avatartomaThomas <tomathomas@mailbox.org>
      Co-authored-by: default avatarAntoine Viallon <antoine@lesviallon.fr>
      Co-authored-by: default avatarVadim Grinco <vadim@grinco.eu>
      Co-authored-by: default avatarzeo <108888572+zeozeozeo@users.noreply.github.com>
      Co-authored-by: default avatarLouis Beaumont <louis.beaumont@gmail.com>
      Co-authored-by: default avatarDaniel Hiltgen <dhiltgen@users.noreply.github.com>
      Co-authored-by: default avatarMichael Yang <mxyng@pm.me>
      Co-authored-by: default avatarParth Sareen <parth.sareen@ollama.com>
      Co-authored-by: default avatarJeffrey Morgan <jmorganca@gmail.com>
      Co-authored-by: default avatarBruce MacDonald <brucewmacdonald@gmail.com>
      Co-authored-by: default avatarJesse Gross <jesse@ollama.com>
      Co-authored-by: default avatarNikita <50599445+nasrally@users.noreply.github.com>
      Co-authored-by: default avatarMasato Nakasaka <masato.nakasaka@intel.com>
      Co-authored-by: default avatarXiaodong Ye <xiaodong.ye@mthreads.com>
      Co-authored-by: default avatarDaniel Hiltgen <daniel@ollama.com>
      2aba569a
  8. 06 Oct, 2025 1 commit
  9. 02 Oct, 2025 1 commit
  10. 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
  11. 18 Sep, 2025 1 commit
    • Daniel Hiltgen's avatar
      build: avoid unbounded parallel builds (#12319) · 0c3d0e75
      Daniel Hiltgen authored
      With the addition of cuda v13, on a clean setup, the level of parallelism
      was causing docker desktop to become overwhelmed and compilers
      were crashing.  This limits to 8 parallel per build stage, with the ability
      to override if you have many more cores available.
      0c3d0e75
  12. 10 Sep, 2025 1 commit
    • Daniel Hiltgen's avatar
      Add v12 + v13 cuda support (#12000) · 17a023f3
      Daniel Hiltgen authored
      * Add support for upcoming NVIDIA Jetsons
      
      The latest Jetsons with JetPack 7 are moving to an SBSA compatible model and
      will not require building a JetPack specific variant.
      
      * cuda: bring back dual versions
      
      This adds back dual CUDA versions for our releases,
      with v11 and v13 to cover a broad set of GPUs and
      driver versions.
      
      * win: break up native builds in build_windows.ps1
      
      * v11 build working on windows and linux
      
      * switch to cuda v12.8 not JIT
      
      * Set CUDA compression to size
      
      * enhance manual install linux docs
      17a023f3
  13. 24 Jun, 2025 1 commit
    • Daniel Hiltgen's avatar
      ci: rocm parallel builds on windows (#11187) · 405d2f62
      Daniel Hiltgen authored
      The preset CMAKE_HIP_FLAGS isn't getting used on Windows.
      This passes the parallel flag in through the C/CXX flags, along
      with suppression for some log spew warnings to quiet down the build.
      405d2f62
  14. 23 Jun, 2025 1 commit
    • Daniel Hiltgen's avatar
      Re-remove cuda v11 (#10694) · 1c6669e6
      Daniel Hiltgen authored
      * Re-remove cuda v11
      
      Revert the revert - drop v11 support requiring drivers newer than Feb 23
      
      This reverts commit c6bcdc42.
      
      * Simplify layout
      
      With only one version of the GPU libraries, we can simplify things down somewhat.  (Jetsons still require special handling)
      
      * distinct sbsa variant for linux arm64
      
      This avoids accidentally trying to load the sbsa cuda libraries on
      a jetson system which results in crashes.
      
      * temporary prevent rocm+cuda mixed loading
      1c6669e6
  15. 13 May, 2025 1 commit
  16. 07 May, 2025 1 commit
    • Daniel Hiltgen's avatar
      remove cuda v11 (#10569) · fa393554
      Daniel Hiltgen authored
      This reduces the size of our Windows installer payloads by ~256M by dropping
      support for nvidia drivers older than Feb 2023.  Hardware support is unchanged.
      
      Linux default bundle sizes are reduced by ~600M to 1G.
      fa393554
  17. 03 May, 2025 1 commit
    • Daniel Hiltgen's avatar
      win: ensure ollama paths come first (#10549) · 6a74bba7
      Daniel Hiltgen authored
      For all search path env vars make sure our dirs are first
      to avoid potentially finding other incompatible libraries
      on the users system.
      
      Also fixes a minor build script glitch for windows rocm
      6a74bba7
  18. 14 Mar, 2025 1 commit
  19. 11 Mar, 2025 1 commit
  20. 03 Mar, 2025 1 commit
  21. 27 Feb, 2025 1 commit
    • Daniel Hiltgen's avatar
      Windows ARM build (#9120) · 688925ac
      Daniel Hiltgen authored
      * Windows ARM build
      
      Skip cmake, and note it's unused in the developer docs.
      
      * Win: only check for ninja when we need it
      
      On windows ARM, the cim lookup fails, but we don't need ninja anyway.
      688925ac
  22. 26 Feb, 2025 1 commit
    • Daniel Hiltgen's avatar
      Add cuda Blackwell architecture for v12 (#9350) · e12af460
      Daniel Hiltgen authored
      * Add cuda Blackwell architecture for v12
      
      * Win: Split rocm out to separate zip file
      
      * Reduce CC matrix
      
      The 6.2 and 7.2 architectures only appear on Jetsons, so they were wasting space.
      The 5.0 should be forward compatible with 5.2 and 5.3.
      e12af460
  23. 25 Feb, 2025 1 commit
  24. 08 Feb, 2025 1 commit
    • Michael Yang's avatar
      ci: use windows-2022 to sign and bundle (#8941) · 1f766c36
      Michael Yang authored
      ollama requires vcruntime140_1.dll which isn't found on 2019. previously
      the job used the windows runner (2019) but it explicitly installs
      2022 to build the app. since the sign job doesn't actually build
      anything, it can use the windows-2022 runner instead.
      1f766c36
  25. 04 Feb, 2025 2 commits
  26. 03 Feb, 2025 2 commits
  27. 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
  28. 18 Dec, 2024 1 commit
  29. 17 Dec, 2024 1 commit
    • Daniel Hiltgen's avatar
      darwin: restore multiple runners for x86 (#8125) · 8f805dd7
      Daniel Hiltgen authored
      In 0.5.2 we simplified packaging to have avx only for macos x86.  It looks like
      there may still be some non-AVX systems out there, so this puts back the prior
      logic of building no-AVX for the primary binary, and now 2 runners for avx and avx2.
      These will be packaged in the App bundle only, so the stand-alone binary will now be
      without AVX support on macos.  On arm, we'll also see these runners reported
      as available in the log, but they're dormant and will never be used at runtime.
      8f805dd7
  30. 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
  31. 21 Nov, 2024 1 commit
  32. 19 Nov, 2024 1 commit
  33. 18 Nov, 2024 1 commit
  34. 16 Nov, 2024 1 commit
  35. 08 Nov, 2024 1 commit
  36. 02 Nov, 2024 1 commit
  37. 30 Oct, 2024 1 commit