🎉 Reconfigure.io v0.13.0 is released 🎉


#1

New Release v0.13.0

This release delivers significant performance improvements.

Upgrading

This release doesn’t require you to upgrade at all, as long as you’re using a recent version of our tooling. To check, run the following:

$ reco version
reco version: v0.2.0
Go version: go1.8.3
Build Time: 2017-10-06T19:59:40Z
Built By: Travis CI User <travis@example.org>

If you don’t see this, you can update using our installation instructions.

Performance Improvements

Building on our previous optimizations through combining operators, our compiler team have introduced further latch reduction, leading to a 30% - 50% kernel speed increase. They achieved this by re-evaluating the way we structure our primitives. Before this release, our compiler would retain latches to avoid some circular logic errors, but now the compiler is more aggressive in removing unnecessary latches in these areas, and then performs an extra ‘safety’ pass to ensure no errors were incurred.

Take this example:


  func main(){
  	a := 0
  	for {
  		a += 1
  	}
  }

And here are the dataflow graphs for this function:

The previous graph is on the left, showing 4 latches - latches equate to clock cycle latency. But, with our new latch reduction optimization, the latency is down to 1 clock cycle. To help you make sense of the graph, latches are built-in to addition operators, leading to the one clock cycle for the second graph.

Other Features

For a full list of changes, see our release notes.