1. 16 Dec, 2025 1 commit
  2. 12 Dec, 2025 1 commit
    • Daniel Hiltgen's avatar
      flash attn: add auto mode for llama engine (#13052) · bd6c1d6b
      Daniel Hiltgen authored
      * flash attn: add auto mode for llama engine
      
      If the user does not specify fa in the environment, use auto-mode.
      
      * review comments
      
      * ensure kv cache quantized types have FA explicitly enabled
      
      additional review comments
      bd6c1d6b
  3. 11 Dec, 2025 1 commit
    • nicole pardal's avatar
      embeddings: modified batch size (#13429) · 3475d915
      nicole pardal authored
      
      
      This PR detects embedding models and sets batch_size = context_size so the full input fits in a single batch.
      Previously, if batch size was smaller than the input, tokens could be split across batches and cause a SIGTRAP crash.
      This change ensures all tokens stay in one batch and prevents crashes.
      Fixes: #12938 #13054
      Co-authored-by: default avatarJesse Gross <jesse@ollama.com>
      3475d915
  4. 10 Dec, 2025 1 commit
  5. 09 Dec, 2025 1 commit
  6. 06 Dec, 2025 1 commit
  7. 04 Dec, 2025 1 commit
    • Daniel Hiltgen's avatar
      ggml update to b7108 (#12992) · 0cf7794b
      Daniel Hiltgen authored
      * Revert "vulkan: temporary cary of vulkan fixes (#12971)"
      
      This reverts commit 3a9e8e9f.
      
      * ggml update to b7087
      
      * fix argsort on metal
      
      * update to b7108
      
      * fix bakllava regression
      
      This model lacks the metadata for the projector type.
      
      * update to b7209
      
      * fix TopK perf
      
      * only build arm code on arm
      0cf7794b
  8. 19 Nov, 2025 2 commits
    • Daniel Hiltgen's avatar
      win: exit instead of abort (#13138) · 485da9fd
      Daniel Hiltgen authored
      Calling abort on windows triggers the C++ runtime to attempt a debugger
      attach, which causes the crashed runners to hang instead of exit, leading
      to a timeout instead of a fast failure during discovery.
      485da9fd
    • Michael Yang's avatar
      cuda: skip large batches · 0796d79d
      Michael Yang authored
      cuda panics on batches larger than 1024 so skip those and fallback to
      cpu
      0796d79d
  9. 17 Nov, 2025 1 commit
    • Daniel Hiltgen's avatar
      bring back sysfs based VRAM information for AMD (#12871) · 2f36d769
      Daniel Hiltgen authored
      * build: optimize dockerfile context for iterating
      
      This moves the copy of the source into the layer AFTER
      doing software installs so we don't have to go through
      the RPM install for cuda, etc. every time you touch a
      source file.
      
      * amd: implement linux sysfs based VRAM lookup
      
      This adds a C++ implementation of sysfs DRM VRAM discovery
      for more accurate free VRAM data on linux for AMD GPUs.
      2f36d769
  10. 16 Nov, 2025 1 commit
  11. 12 Nov, 2025 1 commit
  12. 11 Nov, 2025 2 commits
    • Jesse Gross's avatar
      llamarunner: Respect device ordering for offloaded layers · 4372d0bf
      Jesse Gross authored
      We used to control the way that llama.cpp saw devices using
      CUDA_VISIBLE_DEVICES or similar. This would ensure that the layers
      offloaded to a device were actually the ones intended. This is
      particularly important because we might reorder devices based on
      free memory or performance.
      
      When we started explicitly scheduling layers, this logic went
      away but the llamarunner didn't have any way to set the correct
      order of devices. This meant that the correct number of layers
      would be assigned to a device but not necessarily the layers
      that were expected. This change sets up the devices correctly
      based on the offload information.
      4372d0bf
    • Baptiste Jamin's avatar
      server: add logprobs and top_logprobs support to Ollama's API (#12899) · 59241c5b
      Baptiste Jamin authored
      
      
      Adds logprobs support to Ollama's API including support for Ollama's
      OpenAI-compatible API. By specifying the new 'logprobs' boolean parameter
      in the API, Ollama will return the log probabilities for each token generated.
      'top_logprobs', an integer value can also be specified up to the value 20.
      When specified, the API will also provide the number of most likely tokens to
      return at each token position
      Co-authored-by: default avatarBaptiste Jamin <baptiste@crisp.chat>
      59241c5b
  13. 06 Nov, 2025 2 commits
  14. 04 Nov, 2025 2 commits
    • Daniel Hiltgen's avatar
      discovery: only retry AMD GPUs (#12894) · 27f1fde4
      Daniel Hiltgen authored
      * discovery: only retry AMD GPUs
      
      CUDA and Vulkan don't crash on unsupported devices, so retry isn't necessary.
      This also refactors the code to shift the Library specific logic into the ml
      package.
      
      * review comments
      27f1fde4
    • virajwad's avatar
      vulkan: Add memory detection for Intel GPU using DXGI+PDH (#12664) · 220e133f
      virajwad authored
      * PDH free memory skeleton
      
      * Add PDH printing
      
      * Add LUID support for Vulkan
      
      * wire luid from ggml-vulkan to mem-dxgi-pdh file
      
      * Fix to ggml-impl
      
      * Continue skeleton
      
      * Implemented ggml_dxgi_pdh_get_device_memory
      
      * fix comments
      
      * Fix - change value GB to bytes
      
      * add ifdefs to only support windows and not linux
      
      * modify error codes
      
      * Finished ggml_dxgi_pdh_init() function
      
      * completed ggml_dxgi_pdh_release()
      
      * Formatting changes, add static to functions
      
      * fix build errors
      
      * fix go build error
      
      * fix luid - now should match between dxgi and vulkan
      
      * Fix the free memory reporting (was using copy by value, change to reference)
      
      * keep only dxgi1_2.h
      
      * Modifications based on PR feedback
      
      * fix merge conflicts (2) and fix desc1.description printout
      
      * move dxgi + pdh api calls to before the vendor specific library calls
      
      * change from 3 samples to 1 sample for PDH
      
      * modify when old_mode is set
      
      * add fix for building MacOS
      
      * fix release and returns for other vendors
      
      * add patch file
      220e133f
  15. 31 Oct, 2025 1 commit
    • Jesse Gross's avatar
      ggml: Avoid cudaMemsetAsync during memory fitting · 392a2702
      Jesse Gross authored
      We pass invalid pointers when we check the size of the required
      compute graph before fitting. Some CUDA APIs validate these pointers
      but we can just skip them during this phase. cudaMemsetAsync is one
      of these that we weren't skipping but never took the code path that
      used it. Now that we have enabled op_offload, we can hit it in
      memory pressured situations.
      392a2702
  16. 30 Oct, 2025 2 commits
    • Jesse Gross's avatar
      ggml: Enable op_offload to improve partial offload performance · afaf7ce8
      Jesse Gross authored
      When a model is partially offloaded to system RAM, we can either
      do the calculations on the CPU or we can temporarily transfer the
      data to the GPU to do the calculations there. Small batches tend
      to be better on the CPU, large batches on the GPU.
      
      The llamarunner used the GPU in most cases and the ollamarunner
      used the CPU. Although the ollamarunner saw an improvement in
      token generation performance, there was a large performance hit
      in prompt processing (3-10x).
      
      There is an existing heuristic to dynamically switch between these
      two modes but in practice it doesn't have enough information to
      accurately make that decision. This adds authoritative data to make
      the check work to get the best of both worlds.
      
      Fixes #12037
      afaf7ce8
    • Michael Yang's avatar
      interleaved mrope (#12807) · f67a6df1
      Michael Yang authored
      * ml(ggml): mrope
      * interleave mrope
      f67a6df1
  17. 28 Oct, 2025 1 commit
    • Daniel Hiltgen's avatar
      Fix vulkan PCI ID and ID handling (#12775) · 14977a93
      Daniel Hiltgen authored
      * Fix vulkan PCI ID and ID handling
      
      Intel GPUs may not report PCI IDs which was leading to incorrect overlap
      detection.  Switch to using the existing PCI IDs, however AMD GPUs claim not to
      report PCI IDs, but actually do, so try anyway, as this is required for ADLX to
      find the GPUs on Windows. Numeric IDs lead to scheduling problems, so this also
      switches Vulkan to use UUID based IDs. The GPU discovery patches have been
      squashed into a single patch to simplify future rebases.
      
      * review comments
      14977a93
  18. 20 Oct, 2025 1 commit
  19. 18 Oct, 2025 1 commit
    • Daniel Hiltgen's avatar
      win: more verbose load failures (#12683) · ba2253dc
      Daniel Hiltgen authored
      When loading the dynamic libraries, if something goes wrong report some
      details.  Unfortunately this wont explain which dependencies are missing,
      but this breadcrumb in the logs should help us diagnose GPU discovery
      failures.
      ba2253dc
  20. 16 Oct, 2025 1 commit
  21. 15 Oct, 2025 2 commits
    • Daniel Hiltgen's avatar
      75d17fc6
    • Santosh Bhavani's avatar
      ml/backend/ggml: NVML fallback for unified memory GPUs (#12619) · 8fafc8af
      Santosh Bhavani authored
      * Simplify NVML fallback for unified memory GPUs
      
      Remove device-specific checks and environment variable dependency for
      NVML_ERROR_NOT_SUPPORTED fallback. When NVML doesn't support memory
      queries, unconditionally use /proc/meminfo instead of checking device
      names or OLLAMA_UNIFIED_MEMORY environment variable.
      
      This provides better memory reporting by using MemAvailable which
      accounts for reclaimable memory, avoiding the underreporting issue
      described in NVIDIA support article a_id/5728.
      
      Tested on NVIDIA GB10 unified memory iGPU with consistent and accurate
      memory reporting across multiple model load/unload cycles.
      
      * Add NVML fallback patch for unified memory GPUs
      8fafc8af
  22. 14 Oct, 2025 2 commits
    • Daniel Hiltgen's avatar
      logs: fix bogus "0 MiB free" log line (#12590) · 850da848
      Daniel Hiltgen authored
      On the llama runner, after the recent GGML bump a new log line reports
      incorrect 0 MiB free after our patch to remove memory from the props.  This
      adjusts the llama.cpp code to fetch the actual free memory of the active device.
      850da848
    • 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
  23. 13 Oct, 2025 1 commit
  24. 10 Oct, 2025 1 commit
  25. 02 Oct, 2025 1 commit
    • Daniel Hiltgen's avatar
      Update GGML to b6646 (#12245) · c68f367e
      Daniel Hiltgen authored
      Notable EOLs with this change:
      - MacOS v12 and v13 are no longer supported (v14+ required)
      - AMD gfx900 and gfx906 are no longer supported
      c68f367e
  26. 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
  27. 30 Sep, 2025 3 commits
    • Jesse Gross's avatar
      ggml: Preallocate CUDA pool memory · 3d0b1734
      Jesse Gross authored
      The GGML CUDA backend allocates additional memory for intermediate
      results during calculation. This memory isn't currently allocated
      during worst case graph reservation and therefore not included in
      scheduling. This means that as these buffers potentially grow
      with context length, we could crash.
      
      This extends the memory allocation system down layer from the GGML
      graph to the CUDA layer, preallocating the worst case memory there
      as well.
      
      Fixes #11753
      3d0b1734
    • Jesse Gross's avatar
      ggml: Backport scale kernel fixes · efaee8c2
      Jesse Gross authored
      The GGML scale kernel uses signed 32-bit ints to represent
      the number of elements in the tensor. For large images,
      mistral-small3.2 overflows this, triggering CUDA errors due
      to negative arguments.
      
      Currently, this can happen when the user passes a large image
      to mistral-small3.2. However, with upcoming changes to reserve
      CUDA memory, it happens every time mistral-small is loaded as
      we reserve using a worst case batch.
      
      This patch is part of an upstream GGML commit and should be removed
      after GGML is updated past 0a1b398 "ggml: add ops for WAN video model
      (cuda && cpu) (#15669)".
      
      Fixes #10388
      efaee8c2
    • Jesse Gross's avatar
      ggml: Remove allocation status reporting · 734b57da
      Jesse Gross authored
      For each memory allocation we report the size of the (attempted)
      allocation and whether it succeeded or failed. The latter status
      reporting proved to be not that useful in practice as systems
      such as Windows can automatically overflow from VRAM into RAM,
      resultings in successful allocations even when there isn't
      enough memory where we wanted.
      
      As a result, this information is only used for debug logging,
      which isn't worthwhile enough for the amount of code. It
      also isn't fully accurate, as multiple allocations may result
      in partial failures.
      734b57da
  28. 12 Sep, 2025 1 commit
    • tc-mb's avatar
      Fix image cannot be seen with slice image on llama engine · 05309218
      tc-mb authored
      Ollama's recent engine update, llama.cpp, caused all models requiring a slice schema to not display images. As a result, the value of numTokens isn't always the length of the sliced ​​image embed, but rather the end length of the schema. This causes the image embed to not be correctly included during all slice processing.
      05309218
  29. 02 Sep, 2025 1 commit
  30. 27 Aug, 2025 1 commit
    • Jesse Gross's avatar
      ggml: Avoid allocating CUDA primary context on unused GPUs · 9d97e6a9
      Jesse Gross authored
      The recent memory management changes caused all GPUs to be visible
      to the runner, regardless of whether they are ultimately used. This
      caused CUDA devices to allocate a primary context (~300 MB VRAM) on
      each GPU, for each model. This is unnecessary, so we can both avoid
      touching GPUs that we exclude in the early stage of allocation and
      freeing the memory for any that we touch but don't use.
      
      The issue will continue to exist for the old engine, since it touches
      all devices during initialization.
      9d97e6a9
  31. 19 Aug, 2025 1 commit