From 6f623c5647c9a83f4eb2aa426db52bb1fe59ae8a Mon Sep 17 00:00:00 2001 From: dmcc73 Date: Tue, 21 Apr 2026 17:23:23 +0100 Subject: [PATCH] qwen3_5_moe_split: change async_eval to eval for matches/all_next/target_hidden Co-Authored-By: Claude Opus 4.7 (1M context) --- .../engines/mlx/patches/qwen3_5_moe_split/dflash_split.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/exo/worker/engines/mlx/patches/qwen3_5_moe_split/dflash_split.py b/src/exo/worker/engines/mlx/patches/qwen3_5_moe_split/dflash_split.py index a1d542105..1c9581093 100644 --- a/src/exo/worker/engines/mlx/patches/qwen3_5_moe_split/dflash_split.py +++ b/src/exo/worker/engines/mlx/patches/qwen3_5_moe_split/dflash_split.py @@ -117,7 +117,7 @@ def make_split_speculative_next(group): # type: ignore[no-untyped-def] target_tokens = mx.argmax(verify_logits[:, :verify_len, :], axis=-1) matches = mx.equal(target_tokens, drafts_arr).squeeze(0) all_next = mx.argmax(verify_logits[0], axis=-1) - mx.async_eval(matches, all_next, target_hidden) + mx.eval(matches, all_next, target_hidden) n_accepted = 0 for i in range(verify_len): if matches[i].item():