llama.cpp
hexagon: support for multi-device model split (aka row-split)
#28589
Merged

hexagon: support for multi-device model split (aka row-split) #28589

max-krasnyansky
github-actions github-actions added documentation
github-actions github-actions added ggml
github-actions github-actions added Hexagon
max-krasnyansky max-krasnyansky force pushed from 59bca487 to 131bba51 4 days ago
max-krasnyansky max-krasnyansky force pushed from 0d72d030 to 5d6959ea 3 days ago
alexlu-qc hex-row-split: add support for multi-device row spliting
71fcfedc
max-krasnyansky hex-mdev: add work splitting to fused kernels
0abdcee9
max-krasnyansky hex-mdev: use mdev_ prefix for all multi-device state
e13454cf
max-krasnyansky hex-mdev: make device configuration more expressive to support device…
dd241755
max-krasnyansky hex-mdev: fix mdev session init
f7a6d7f6
max-krasnyansky hex-mdev: fused nx (2x,3x) matmuls must update row counts for each w/o
89aa7359
max-krasnyansky hex-mdev: fix MUL_MAT work partitioning bugs introduced by mdev
fbd86417
max-krasnyansky hex-cont: fix crashes with new tests due to wrong striding
cd3f00ae
max-krasnyansky hex-mdev: move fences after l2flushes
20c1f986
max-krasnyansky hex-cont: fix work splitting for mnpu -- align chunks to cachelines
35c9f7b6
max-krasnyansky hex-mdev: fix CPY tests with multi-dev
9bdfc495
max-krasnyansky hex-mmid: fix work partitioning with mnpu
60244bb8
max-krasnyansky hex-mm: fix test failures with mdev
428e33f5
max-krasnyansky hex-binary: fix work partitioning for mdev
165a86ca
max-krasnyansky hex-argsort: fix mdev partitioning
5ddb1ad1
max-krasnyansky hex-mdev: fix work partitioning and general updates for all simple ops
01acec12
max-krasnyansky hex-fa: fix mdev work splitting issues
1ad87b40
max-krasnyansky hex-mdev: fixing more failing ops test
d2995e3d
max-krasnyansky hex-mdev: update the rest of the ops
a48a66f3
max-krasnyansky hex-mdev: refactor all mdev splitting logic to be contained within if…
165fbc81
max-krasnyansky hex-mdev: fix macros
26b767a5
max-krasnyansky hex-mdev: simplify session flush logic
446c7d95
max-krasnyansky hex-sync: fix recursion in session flush
ca234602
max-krasnyansky hex-mdev: factor out fence buffer and allocator
b0c236a8
max-krasnyansky hex-fence: make fence allocation more robust with reserved slots for …
7c742bbb
max-krasnyansky hex-mdev: keep all mdev state in htp_mdev_group
c5ea84ea
max-krasnyansky hex-mdev: further cleanup mdev group handling at the host
78cd3617
max-krasnyansky hex-mdev: update group idx in the opbatch before serializing
e4df2c69
max-krasnyansky hex-batch: remove separate op_pending and use batch_req/rsp_seq
007b1df5
max-krasnyansky hex-async: workaround another missing tensor_init in ggml-meta
7c22ca99
max-krasnyansky hex-fence: cleanup and robustify fences and error handling in multi-d…
207076ec
max-krasnyansky hex-ar: improve ALLREDUCE error handling
3c10d6fe
max-krasnyansky hex-async: robust error handling for op_cpy_fence
930917a3
max-krasnyansky hex-async: use seq0 from allreduce context to allocate fence_seq
2dbb1000
max-krasnyansky hex-mdev: fix remaining issues with fence and barrier clearing in CPY…
2dea460c
max-krasnyansky hex-misc: realign macros and fix misplaces trace events
03a5f17d
max-krasnyansky hex-misc: align macros
bd6cc5c7
max-krasnyansky hex-mdev: fix unclone buffer re-entrancy
500641d0
max-krasnyansky hex-glu: fix mdev partitioning logic
b08a823a
max-krasnyansky hex-mdev: make buffer uncloning/cleanup work with tensor-split scenarios
295f70c1
max-krasnyansky hex-mdev: tighten up the can_split check in act-ops
132aab63
max-krasnyansky hex-mdev: factor out common bits of the partitioning logic
647612f5
max-krasnyansky hex-mm: minor realignment of the macros
94eea9fe
max-krasnyansky hex-bufs: fix incorrectly placed assert for MAX_BUFS
ca94ef22
max-krasnyansky hex-pad: tighten up gating checks for PAD
fa1f7dfe
max-krasnyansky hex-kparams: make sure all kernels properly use kparams->n_threads
0e458476
max-krasnyansky hex-docs: update user and developer docs with new features and detail…
01ee3911
max-krasnyansky hex-scripts: update run script to properly parse dev groups
8c983ace
max-krasnyansky hex-misc: formatting
08054ec2
max-krasnyansky hex-sess: minor cleanup for session init
e40f24bf
max-krasnyansky hex-ar: fix vtcm size calc in allreduce kparams
90050320
max-krasnyansky hex-scripts: fix flake8 warnings
d57cb39a
max-krasnyansky hex-rope: update ROPE to support mdev work split
d896ff8a
max-krasnyansky hex-ops: remove redunant checks and minor reformat
97d0ae1d
max-krasnyansky hex-dev-guide: update dev-guide to avoid redundant null checks
ecc59fc8
max-krasnyansky hex-async: improve event_wait, event_sync and fence implementations
11638724
max-krasnyansky hex-async: remove synchronous flush from event_sync
3c3ca80e
max-krasnyansky hex-async: symplify fence recovery protocol and make sync more robust
eb2023c0
max-krasnyansky hex-async: futher simplify error recovery for fences
b752c7cc
max-krasnyansky hex-err: return status instead of just -1
b70b163a
max-krasnyansky hex-async: print all seq nums in hex
1966ad1c
max-krasnyansky hex-async: make sure fences flush dirty ranges
a76241b8
max-krasnyansky hex-async: add dirty ranges merging to reduce fence flushes
d1194be7
max-krasnyansky hex-async: properly sync before freeing the event
2833f168
max-krasnyansky hex-async: make sure fence owner session is not overriden
f733de46
max-krasnyansky hex-async: more fence write order more robust
250e3c96
max-krasnyansky hex-async: make sure not to fuse ALLREDUCE+ADD if their dsts overlap
2a8cb531
max-krasnyansky hex-fusion: cleanup redundant checks
9b9bdf1e
max-krasnyansky max-krasnyansky force pushed from 5d6959ea to 9b9bdf1e 2 days ago
max-krasnyansky max-krasnyansky marked this pull request as ready for review 2 days ago
max-krasnyansky max-krasnyansky requested a review 2 days ago
max-krasnyansky
max-krasnyansky max-krasnyansky added merge ready
lhez
lhez approved these changes on 2026-09-11
pwilkin
max-krasnyansky
jhen0409
jhen0409 approved these changes on 2026-09-12
max-krasnyansky max-krasnyansky merged eafe15a5 into master 1 day ago

Login to write a write a comment.

Login via GitHub

Reviewers
Assignees
No one assigned
Labels
Milestone