You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hey @Basten7, following up on something your rig is uniquely suited to test.
ToshLLM 0.83.1 ships an opt-in feature: for multi-GPU layer splits, when two AMD GPUs sit in the same Metal peer group (the two dies of an Infinity Fabric-bridged module), layer activations copy directly GPU→GPU over the Infinity Fabric Link instead of round-tripping through system RAM. It's off by default because it has never run on real bridged hardware yet, and a peer copy that silently returns wrong data has no fallback. Your Mac Pro is the one machine I know of with exactly the right hardware:
2× W6800X Duo (dies [5]+[6] and [7]+[8]), wave32 / RDNA2
1× Vega II Duo (dies [1]+[2]), wave64 / GCN
Each Duo has an on-module Infinity Fabric bridge, so its two dies should share a peerGroupID and light up this path.
How to enable
Set the env var before launching, same way you ran TOSH_MGPU_EVENTS=1 on #31:
TOSH_MGPU_PEER=1
Test 1: W6800X Duo (do this one first, it's the low-risk case)
The W6800X Duos are wave32, the same architecture I develop on, so the compute kernels are already well-tested here... the only new thing is the transport. That makes this the clean isolation test.
In Settings → Multi-GPU, restrict the split to exactly the 2 dies of one W6800X Duo (e.g. devices [5] and [6]), nothing else. That way every layer boundary crosses the on-module bridge.
Model: a dense model that needs both dies, e.g. Llama-3.3-70B-Instruct Q4_K_M (~40 GB, splits nicely across the 2×31 GB) or any dense 30 to 70B Q4 you already have. Please avoid MoE and avoid the 397B for this test... the 397B has that separate wave64 batch bug (Benchmark - AMD Radeon Pro Vega II - v0.81.61 vs v0.81.62 over differents quant #31), and MoE muddies the hand-off pattern.
Run a normal chat, a few hundred tokens.
Repeat the exact same run withoutTOSH_MGPU_PEER=1, and once more with TOSH_MGPU_EVENTS=1 instead, for comparison.
What to look for
Log line: Infinity Fabric peer transfer enabled: <src> -> <dst> (peer group N). If it appears, the two dies matched a peer group and the path engaged. If it does not appear, they didn't share a peerGroupID and it fell back to staging (that's data too, not a failure).
Output coherent? It must be identical quality to default. If it garbles or 0000, that's the bug: drop the token and report.
tg (t/s) with the flag vs without vs TOSH_MGPU_EVENTS=1.
Test 2: Vega II Duo (only after Test 1)
Same procedure on dies [1]+[2], but heads-up: these are wave64, which has a separate, still-open batch/perplexity issue (#48), so if output garbles here it may be the wave64 path rather than the peer transport. That's why Test 1 (wave32) is the isolation baseline. For the model, use something you've already confirmed coherent on a single Vega die first (a normal dense model, not the 397B), then repeat split across the two Vega dies with and without the flag.
What I'd love back
A small table is plenty:
config
peer log line?
coherent?
tg (t/s)
W6800X Duo, default
n/a
W6800X Duo, TOSH_MGPU_PEER=1
yes/no
W6800X Duo, TOSH_MGPU_EVENTS=1
Vega II Duo, default
n/a
Vega II Duo, TOSH_MGPU_PEER=1
yes/no
No need for a big sweep, one dense model and a couple of configs per Duo. If the peer path is coherent and tg holds or improves on the W6800X Duo, that's enough to graduate it out of opt-in. Thanks as always for the hardware and the patience.
Hey @Basten7, following up on something your rig is uniquely suited to test.
ToshLLM 0.83.1 ships an opt-in feature: for multi-GPU layer splits, when two AMD GPUs sit in the same Metal peer group (the two dies of an Infinity Fabric-bridged module), layer activations copy directly GPU→GPU over the Infinity Fabric Link instead of round-tripping through system RAM. It's off by default because it has never run on real bridged hardware yet, and a peer copy that silently returns wrong data has no fallback. Your Mac Pro is the one machine I know of with exactly the right hardware:
[5]+[6]and[7]+[8]), wave32 / RDNA2[1]+[2]), wave64 / GCNEach Duo has an on-module Infinity Fabric bridge, so its two dies should share a
peerGroupIDand light up this path.How to enable
Set the env var before launching, same way you ran
TOSH_MGPU_EVENTS=1on #31:Test 1: W6800X Duo (do this one first, it's the low-risk case)
The W6800X Duos are wave32, the same architecture I develop on, so the compute kernels are already well-tested here... the only new thing is the transport. That makes this the clean isolation test.
[5]and[6]), nothing else. That way every layer boundary crosses the on-module bridge.TOSH_MGPU_PEER=1, and once more withTOSH_MGPU_EVENTS=1instead, for comparison.What to look for
Infinity Fabric peer transfer enabled: <src> -> <dst> (peer group N). If it appears, the two dies matched a peer group and the path engaged. If it does not appear, they didn't share a peerGroupID and it fell back to staging (that's data too, not a failure).0000, that's the bug: drop the token and report.TOSH_MGPU_EVENTS=1.Test 2: Vega II Duo (only after Test 1)
Same procedure on dies
[1]+[2], but heads-up: these are wave64, which has a separate, still-open batch/perplexity issue (#48), so if output garbles here it may be the wave64 path rather than the peer transport. That's why Test 1 (wave32) is the isolation baseline. For the model, use something you've already confirmed coherent on a single Vega die first (a normal dense model, not the 397B), then repeat split across the two Vega dies with and without the flag.What I'd love back
A small table is plenty:
TOSH_MGPU_PEER=1TOSH_MGPU_EVENTS=1TOSH_MGPU_PEER=1No need for a big sweep, one dense model and a couple of configs per Duo. If the peer path is coherent and tg holds or improves on the W6800X Duo, that's enough to graduate it out of opt-in. Thanks as always for the hardware and the patience.