stanford-ppl / spatial-lang

Spatial: "Specify Parameterized Accelerators Through Inordinately Abstract Language"
MIT License
99 stars 12 forks source link

Spatial compiler crashes when cgra+ is enabled #238

Closed yaqiz01 closed 6 years ago

yaqiz01 commented 6 years ago

Update: Full list of apps. Look for Spatial column with "X". It does seems they are costed by the same bug.

https://docs.google.com/spreadsheets/d/1YJHh8pWWpvoMI3SHsu6Nx5XAsnuHi4bqKZc3zWFxV_U/edit?usp=sharing

spatial LogReg --cgra+ [info] Compiling 1 Scala source to /Users/Yaqi/spatial-lang/spatial/core/target/scala-2.12/classes... [info] Running LogReg --cgra+ Loaded RoutingLUTs model from file Loaded FanoutRegisters model from file Loaded UnavailableALMs model from file Loaded TileLoadModel model from file Compiling LogReg to /Users/Yaqi/spatial-lang/gen/LogReg [warn] Block((b37,b38) => x1988) on b37 and b38 does not match any reduce type! [error] Ambiguous metapipes for readers/writers of logregY (x5904) defined here: [error] x5904 = SRAMNew(ArrayBuffer(Const(64))) [error] val logregY = SRAMT [error] [error] metapipe: (x6514,-1) [error] accesses: (x6296,(x6304,0)) / (x5960,(x5961,0)),(x6284,(x6292,0)) / (x5960,(x5961,0)),(x6272,(x6280,0)) / (x5960,(x5961,0)),(x6260,(x6268,0)) / (x5960,(x5961,0)),(x6248,(x 6256,0)) / (x5960,(x5961,0)),(x6236,(x6244,0)) / (x5960,(x5961,0)),(x6224,(x6232,0)) / (x5960,(x5961,0)),(x6212,(x6220,0)) / (x5960,(x5961,0)),(x6200,(x6208,0)) / (x5960,(x5961,0)), (x6188,(x6196,0)) / (x5960,(x5961,0)) [error] x6514 = UnrolledForeach(List(b2105, b2099),x5902,Block(Const(())),List(List(b2110)),List(List(b2111))) [error] Foreach(N by BN){ i => [error] [error] [error] metapipe: (x6513,-1) [error] accesses: (x6296,(x6304,0)) / (x6284,(x6292,0)),(x6296,(x6304,0)) / (x6272,(x6280,0)),(x6296,(x6304,0)) / (x6260,(x6268,0)),(x6296,(x6304,0)) / (x6248,(x6256,0)),(x6296,(x 6304,0)) / (x6236,(x6244,0)),(x6296,(x6304,0)) / (x6224,(x6232,0)),(x6296,(x6304,0)) / (x6212,(x6220,0)),(x6296,(x6304,0)) / (x6200,(x6208,0)),(x6296,(x6304,0)) / (x6188,(x6196,0)),(x6284,(x6292,0)) / (x6272,(x6280,0)),(x6284,(x6292,0)) / (x6260,(x6268,0)),(x6284,(x6292,0)) / (x6248,(x6256,0)),(x6284,(x6292,0)) / (x6236,(x6244,0)),(x6284,(x6292,0)) / (x6224,(x6232,0)),(x6284,(x6292,0)) / (x6212,(x6220,0)),(x6284,(x6292,0)) / (x6200,(x6208,0)),(x6284,(x6292,0)) / (x6188,(x6196,0)),(x6272,(x6280,0)) / (x6260,(x6268,0)),(x6272,(x6280,0)) / (x6248,(x6256,0)),(x6272,(x6280,0)) / (x6236,(x6244,0)),(x6272,(x6280,0)) / (x6224,(x6232,0)),(x6272,(x6280,0)) / (x6212,(x6220,0)),(x6272,(x6280,0)) / (x6200,(x6208,0)),(x6272,(x6280,0)) / (x6188,(x6196,0)),(x6260,(x6268,0)) / (x6248,(x6256,0)),(x6260,(x6268,0)) / (x6236,(x6244,0)),(x6260,(x6268,0)) / (x6224,(x6232,0)),(x6260,(x6268,0)) / (x6212,(x6220,0)),(x6260,(x6268,0)) / (x6200,(x6208,0)),(x6260,(x6268,0)) / (x6188,(x6196,0)),(x6248,(x6256,0)) / (x6236,(x6244,0)),(x6248,(x6256,0)) / (x6224,(x6232,0)),(x6248,(x6256,0)) / (x6212,(x62 20,0)),(x6248,(x6256,0)) / (x6200,(x6208,0)),(x6248,(x6256,0)) / (x6188,(x6196,0)),(x6236,(x6244,0)) / (x6224,(x6232,0)),(x6236,(x6244,0)) / (x6212,(x6220,0)),(x6236,(x6244,0)) / (x6200,(x6208,0)),(x6236,(x6244,0)) / (x6188,(x6196,0)),(x6224,(x6232,0)) / (x6212,(x6220,0)),(x6224,(x6232,0)) / (x6200,(x6208,0)),(x6224,(x6232,0)) / (x6188,(x6196,0)),(x6212,(x6220 ,0)) / (x6200,(x6208,0)),(x6212,(x6220,0)) / (x6188,(x6196,0)),(x6200,(x6208,0)) / (x6188,(x6196,0)) [error] x6513 = UnrolledReduce(List(b2111, b2105, b2099),x5964,x5899,Block((x5899) => Const(())),List(List(b2183, b2184, b2185, b2186, b2187, b2188, b2189, b2190, b2191, b2192)),Lis t(List(b2193, b2194, b2195, b2196, b2197, b2198, b2199, b2200, b2201, b2202))) [error] }{+}