From 0d92eb65d4a73916b0f0b57381db6762fb84dd8e Mon Sep 17 00:00:00 2001 From: Hansung Kim Date: Wed, 18 Oct 2023 15:19:11 -0700 Subject: [PATCH] Increase sourceWidth to fix vx_wspawn sync bug With sourceWidth = 1, we hit an unsynchronized vx_wspawn bug, where the previously spawned warps get killed and overridden by a new vx_wspawn call before all the warps complete execution. Setting sourceWidth = 1 somehow slows down the progress of the spawned warps in relation to warp 0 (presumably because fetch stalls, but not sure why they would slow down more than warp 0) and results in this bug. sourceWidth = 4 seems to work for vecadd. --- src/main/scala/tile/VortexTile.scala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/scala/tile/VortexTile.scala b/src/main/scala/tile/VortexTile.scala index 5b9cfa4..bd86ba5 100644 --- a/src/main/scala/tile/VortexTile.scala +++ b/src/main/scala/tile/VortexTile.scala @@ -91,7 +91,7 @@ class VortexTile private ( minLatency = 1)))*/ val numLanes = 4 // TODO: use Parameters for this - val sourceWidth = 1 // TODO: use Parameters for this + val sourceWidth = 4 // TODO: use Parameters for this val imemNodes = Seq.tabulate(1) { i => TLClientNode( @@ -99,7 +99,7 @@ class VortexTile private ( TLMasterPortParameters.v1( clients = Seq( TLMasterParameters.v1( - sourceId = IdRange(0, 1 << 10), // TODO: magic numbers + sourceId = IdRange(0, 1 << sourceWidth), name = s"Vortex Core ${vortexParams.hartId} I-Mem $i", requestFifo = true, supportsProbe =