Further Reading

Welcome to Hastlayer's blog! It contains the latest news and announcements.

v2.1.1 is released

The v2.1.0 version of Hastlayer was the first one that made it usable from NuGet packages as well, making it a lot easier for you to use it from your app. The new v2.1.1 release published today builds on top of that, adding some bug fixes. Check out the details of this release on GitHub.

Hastlayer now available on NuGet

Previously, you had to use Hastlayer from source. But not anymore! We've just published Hastlayer on NuGet: https://www.nuget.org/packages/Hast.Layer/. This of course makes it a lot easier for you to add Hastlayer to your project. We've also updated the getting started guide so check it out and start accelerating your .NET apps! So, are you writing hardware-accelerated .NET apps for satellites yet? (Yep, this is one of the things Hastlayer makes possible!)

Hastlayer is now fully open-source!

We at Lombiq are quite fond of open-source: The company was born out of open-source, and we have a huge amount of open-source activities. However, until now, Hastlayer wasn't fully open-source. This is because the hardware transformation, so the secret sauce that turns your .NET apps into their own processors, was, well, secret. Not anymore though! We recognized that building a business model of Hastlayer where we license closed-source software goes against our DNA. It's not something that aligns with how we work otherwise, we don't like it, and it doesn't go as smoothly as it can with open-source. So, back to what we believe in the most: Great software, out in the open. If you want Hastlayer to support new hardware devices (FPGAs), then we have good news too: The Hastlayer Timing Tester app is now open-source as well. You can use this to create the timing values required for hardware designs, which is at the core of creating a driver for a new device. Do you want to deep dive into the magic of what makes Hastlayer tick? Just head over to the SDK repository! We're really excited to see where you, the development community, will steer Hastlayer!

Supporting large Catapult FPGAs - Hastlayer v1.1 is here!

It's been a long time without a release, but now we're finally there: Hastlayer v1.1 is out with a lot of improvements! The biggest one is the support for the large FPGAs of Microsoft's Catapult platform. Hastlayer is now ready for complex high-performance applications! At one point a small and brave team at Microsoft thought about using FPGAs to accelerate Bing searches. This experiment proved to be a success, and thus the Project Catapult was born. Later these Catapult FPGAs found their way into all Microsoft datacenters, being used first for networking tasks and then also to build a Machine Learning accelerator, Project Brainwave. Due to its availability on Windows Catapult picked our interest and we started to make Hastlayer compatible with it. After the small development board that Hastlayer initially supported this was promising to be a huge leap in performance - but also a much harder task to complete than we initially thought. With the help of Andrew Putnam and others from Microsoft Research, and the Texas Advanced Computing Center, where Catapult nodes are available, we eventually got it done: Now it's ready and you can use these powerful FPGAs too! Everything you need to know is written in the getting started guide of the SDK. Catapult is not the only thing that ships with this release, however: there are a wealth of other shiny new parts of Hastlayer for you to check out. There are several new examples (also a Monte Carlo simulation and one written in F#), new pseudo-random number generators, tons of performance improvements and bugfixes. Check out the full release notes on GitHub. What are you gonna build if you have the power of bare metal hardware?

New timing values and why you should care - Hastlayer v1.0.10 released

Today we've released v1.0.10 of Hastlayer. This is mostly a bugfix release, but there is one important detail we've changed: Timing values. What are timing values and why is this a good thing? Basic operations can take a various amounts of time on the hardware that Hastlayer generates. Some operations are fast and take less than a clock cycle (like adding two 8b integers) while some other operations take more than one (like multiplying two 32b integers). Hastlayer can calculate how long an operation (or rather, a chain of operations) will take, and thus can create the best suitable hardware implementation: It will pack as many operations as possible into a single clock cycle. This is one of the reasons behind the hardware implementation's improved clock cycle (and power) efficiency: Even without parallel execution a lot can happen in a single clock cycle. How long operations take is based on hardware timing values. With this release we've updated these values after improving how we measure them. The result is that while in certain cases hardware execution will be slightly slower (and in some cases slightly faster) in all cases it will be more reliable: While previously it could happen that the hardware implementation gave a wrong result due to timing issues, now this should be very rare. As a cherry on top most hardware implementations now use fewer resources on the FPGA, so you can fit more logic onto the same chip. You can grab the new version from GitHub, or if you have the SDK repository cloned, just pull the changes. We hope you'll see your Hastlayer hardware implementations fly even better now! And if you have any issues, get in touch with us!

v1.0.9 released with many fixes and a new sample

Hastlayer v1.0.9 is out! Not many new features but you'll love these bugfixes! Here are the most important changes: Binary operator expressions (like 1 + 2) could in some cases give incorrect results, as could remainder operations (e.g. 9 % 4). These are all fixed now. When you try to transform a piece of code with Hastlayer which Hastlayer doesn't support now better error messages will be surfaced, hinting you what exactly the problem is. And there is also a new Loopback sample that just sends back what you send it from the host PC. This is to test connectivity and use as a generic testbed. Hope you'll like these! We've been working on features too, for example adding floating point support, which is mostly done now. We'll talk about it at various conference, starting with ones in Singapore this week!

Method inlining, fixed point arithmetic and more - Hastlayer v1.0.8 released

New year, new Hastlayer version - and we think this one is quite exciting, a lot of improvements arrived! Let's see the highlights: Hastlayer now supports method inlining. Method inlining is when a compiler basically copies the implementation of the method to the place where it's called, thus avoiding the overhead of a method call but making the program bigger. We've added support for the AggressiveInlining attribute so you can instruct Hastlayer to inline methods, just as you'd do the same with the .NET compiler. Since method calls in hardware are also an overhead you can vastly improve the performance of your Hastlayer-using code if it contains many small methods that are frequently called. In our tests with the posit floating point type we cut down execution time by about 40%! Added a 64b fixed-point arithmetic library and made it Hastlayer-compatible. Why is this good? Although making computations with integers is very efficient (and fast), sometimes you need to use fractions. Before the only option with Hastlayer was to scale up your floating point numbers (multiplying them by 10000 for example so there will be no digits after the decimal point), let Hastlayer do the work, then scale them back down. But now we added a 64b number type that can also handle fractions, it's just that there are 31 bits for the digits before the decimal point and 32 bits for the ones after it. But still, the computations will be quite efficient. Nevertheless we're also working on floating point support. Added support for ref and out parameters and made configuration of parallelized code a bit easier. So Hastlayer just got a lot better for a lot of programs! For more details and the corresponding downloads visit the Hastlayer SDK and Hastlayer Hardware Framework - Xilinx repos on GitHub. Be sure to also check out the updated documentation on how to utilize these new features.

Hastlayer v1.0.7 released with a scientific computing example

The new version of Hastlayer is out! Apart from nice Transformer improvements this also includes one huge example: An implementation of the 3D Kardar-Parisi-Zhang surface growth simulation algorithm. This algorithm simulates how the surface of a material (like a silicon wafer used in chip manufacturing) changes over time. We created the KPZ example in collaboration with the Wigner Research Centre for Physics to test against an existing GPU implementation (testing is upcoming). Also, don't forget that the Hastlayer World Tour is still on with three events coming up!

World Tour, release, floating point support and more - short news

Some short news around Hastlayer: what happened in the last month or so? Hastlayer goes on a World Tour! If you attend a .NET-related meetup somewhere then there's a good chance we'll showcase Hastlayer there too! Version 1.0.6 is released with some important debug improvements and bugfixes. While Hastlayer lacks floating point support we've been working on it for a while. While we've implemented a proof of concept for Unums it turned out to be less then ideal. It's an interesting concept but for now we won't pursue it as the core of Hastlayer floating point support and instead we'll implement Posits. With this we'll have float and double-like, but better floating point support shortly. Some new Hastlayer videos uploaded to YouTube.

The Hastlayer SDK and hardware project is now open source!

You may have noticed that GitHub link above. It means Hastlayer goes open source! Both components that you use locally to utilize Hastlayer are now up on GitHub; you can start with the Hastlayer SDK project. Source code, documentation and a visibility of project progress and direction in form of issues is now all transparent. How does this sound?