FAQ
Do you have some questions about Hastlayer? You're not alone, so we've compiled the most frequent questions with answers here. Hope this clears some things up.
What is this?
Hastlayer is a tool that can automatically turn your .NET software into a hardware implementation, so basically a computer chip. This way your algorithm can potentially run much faster but still consume less power, especially if it's massively parallelizable. How much, you ask? Check out the benchmarks.
All this happens with a kind of device called FPGAs: These are computer chips that can be dynamically "re-wired" to behave like any other chip (within their limits). You can also think of FPGAs as a kind of special computing device with unique advantages (like being massively parallel and power efficient), a bit similar to GPUs. With Hastlayer you can write your programs as usual but utilize FPGAs as a kind of application-specific coprocessor/accelerator card.
It's more involved than this, but you can watch the Hastlayer session of .NET Conf to get the full picture. If you want to see Hastlayer in action here's a much shorter demo video too. If you want to see the code, examples, and documentation then head over to GitHub.
Who is behind Hastlayer?
Some ambitious people at Lombiq, a software services company from Hungary, EU, work on Hastlayer. Lombiq otherwise does custom .NET web development for clients like the Smithsonian Institution, .NET Foundation and Microsoft itself.
What can I use Hastlayer for?
Generally Hastlayer can make .NET programs (or parts of them) faster and use less power if the algorithm is massively parallelizable and compute bound (CPU bound). We're actively working on field-testing Hastlayer with some real-world applications but there are also some examples in the SDK.
We think that Hastlayer can be used to accelerate the following types of applications, but we haven't tested all of them yet (FPGAs are already employed for such use-cases):
- Machine learning and artificial intelligence
- Image processing, video processing and computer vision
- Algorithmic trading on the stock market, financial computations
- Data compression and analysis
- Cryptocurrency mining
- Cryptography
- Embedded systems (robots and drones, IoT, satellites)
What kind of FPGAs can I use?
Be aware that you can't just use any FPGA board with Hastlayer: Due to the constraints of FPGA development we have to support selected FPGAs specifically. Check out the "Getting started" documentation page on which ones are supported.
Will Hastlayer remain free forever?
Yes! Hastlayer is fully free and open-source. We at Lombiq have been committed to open-source for over a decade.
Can I mine Bitcoin with this?
You can, but you shouldn't :). FPGA mining is not competitive any more for Bitcoin, hard-wired hardware boards (Application-Specific Integrated Circuits, ASICs) are more efficient and the scale of Bitcoin mining made creating them feasible.
But there is not just Bitcoin and FPGAs can be used to mine Dash, Zcash, and possibly other altcoins.
We haven't tested Hastlayer for cryptocurrency mining yet, but with Hastlayer you have the advantage of being able to change implementations as fast as developing software. So you can relatively quickly create mining hardware for new coins.
What are the limitations on the code I can write?
FPGAs aren't limitless, so too complex algorithms just won't fit. How much you can fit on an FPGA greatly depends on the FPGA's resources and your algorithm, but you can check out to the samples to get an idea of what fits on the FPGAs tested by us. We're also working on supporting bigger, faster FPGAs.
The code Hastlayer is able to process can only use a limited subset of .NET. On what you can and can't use see the "Working with Hastlayer" documentation page.
Do you have floating point support?
We do! Floating point is not very efficient on FPGAs, so if you don't want to use fixed point (which we also provide a 64b number type for) you can use our experimental posit implementation. Posit is a floating point number type with better accuracy and other advantages over standard floats. For details see the Next Generation Arithmetic page.
Can I use a Hastlayer FPGA implementation without a host PC, in an embedded system?
You can, but this is not something we officially support yet: The current model is that with Hastlayer the host PC gets an application-specific coprocessor that works under the CPU. However the hardware component Hastlayer generates has a very simple interface, and thus in theory can be plugged into other hardware designs relatively easily. This means that the hardware logic generated by Hastlayer can possibly also be used in embedded systems and other FPGA-based hardware designs.
Can I create a hard-wired chip too?
While in theory you could also create an actual custom-manufactured chip (Application-Specific Integrated Circuits, ASIC) from a modified version of Hastlayer's generated hardware component this would be very difficult and expensive to do. The advantage of FPGAs is that you can create a hardware implementation with a relatively low cost (and with Hastlayer, within minutes). With ASICs you need months of rigorous development and a couple million dollars to begin with.
I'd like to keep updated, what should I do?
The best way to keep up-to-date with Hastlayer is to follow us on Twitter and subscribe to our newsletter.
I'm still confused, who can I write to?
Don't worry, we can help you! Check out the contact options.