github ggml-org/llama.cpp b11070

pre-releaseone hour ago
Details

hexagon: overhaul of buffer and DMA handling to support 64bit mappings + improvements (#29197)

  • hex-dma64: enable support extended buffer mappings and 64bit dma

hex-dma64: expand binary ops to support more DMA scenarios

hex-dma64: add binary-ops.h

hex-dma64: add --hex-dma64 to run.py and fix minor issues

hex-dma64: update SSM_CONV to use dma with proper support for 64bit

hex-ops: remove obsolete gate for % 128 in binary ops

hex-l2: dont check weight tensors against dirty ranges

hex-dma64: most binary ops now support dma

hex-dma: use dma_addr_t instead of plain uint64_t to avoid overhead on older targets

hex-dma: update all dma users to use dma_data (instead of pointers)

hex-dma64: simplify lazy buffer mapping and clonning

hex-fusion: factor out try_fuse_common that checks for dma64 buffers

hex-bufs: minor cleanup for mmaping logic

hex-bufs: simplify buffer clonning

hex-ssm-conv: tighten gating checks and check vtcm size in kparams

hex-binary: fix incorred mod/wrap in scalar ops

hex-binary: make sure to call precompute kparams in support checks

hex-dma64: update addr handling in mm,concat,binary

hex-dma64: fixing up leftover of dma_addr_t conversion

hex-binary: redo the kernel selection again and fix regressions in MOEs

hex-binary: specialize per-type/per-op

hex-binary: vtcm-layout and per-src dma-queue

hex-dma64: update dma_push to transparently handle 64bit/extended

  • hex-cpy: fix improper rebase with the fixes for cont. tensors

  • hex-dma-cpy: update CPY to use safe dma rows/size limits

  • hex-mmap: bump number of mmaps to 64 to allow avoid eviction in larger models

  • hex-dma: add support for the secondary ring as a fallback for too-large transactions

  • hex-rope: fix freq_factors access with 64bit dma

  • hex-dma: audit all ops for proper use/gards for 64bit addresses

  • hex-dma64: uninline glu-compute funcs to avoid register pressure due to 64bit addr math

  • hex-dma64: refactor binary ops to separate dma loops

  • hex-devel: add inspect script to help with dbg and analysis

  • hex-dma: refactor dma-pipelines in unary-ops

  • hex-dma: rewrite softmax to use dma

  • hex-dma: rewrite GDN dma loops and improve HVX register usage

  • hex-gdn: fuse GDN+CPY

  • hex-mm: factor out HVX solver

  • hex-mm: remove hvx-flat kernels, the chunked version now handles vtcm limits much better

  • hex-buffs: reject huge buffer allocations that we cannot memory map

  • hex-inspect: add logic to look for float promo calls

  • hex-mm: reduce HVX register spills in HVX prompt kernels

  • hex-bufs: do not double count buffers from tensors in the same op

  • hex-roll: fix merge conflict

  • hex-dma: reroute all matmul ddr kernels to new chunked dma/vtcm kernels

  • hex-dev: update developer docs to include inspection for register spils and float promos

  • hex-ops: forgot to add new headers

  • hex-softmax: fix gpt-oss dims

  • hex-dma64: cleanup dma_addr_t casts

  • hex-dma64: add support for dma/vtcm for flash-atten with sinks

  • hex-mm-add: fix MUL_MAT+ADD fusion with bias.weights in extended bufs

  • hex-add-id: add support for dma for src1 (exp. table)

  • hex-dma: imrpove v73 fallback paths

  • hex-bufs: do not drop extended mappings during va defrag

  • hex-scripts: fix flake8 warnings

  • hex-docs: fix editor-config warnings

  • hex-inspect: fix warnings from ty

Website:

Attestations:

macOS/iOS:

Linux:

Android:

Windows:

openEuler:

  • DISABLED
  • openEuler x86 (310p)
  • openEuler x86 (910b, ACL Graph)
  • openEuler aarch64 (310p)
  • openEuler aarch64 (910b, ACL Graph)

UI:

Don't miss a new llama.cpp release

NewReleases is sending notifications on new releases.