Releases: Lombiq/Hastlayer-SDK
Releases · Lombiq/Hastlayer-SDK
v2.1.1
What's Changed
- HAST-175: NuGet releases by @Piedone in #106
- HAST-321: Fix that array size passing is too eager with assignments by @Piedone in #111
- HAST-314: ⭐ Hast.Samples.Consumer GUI bug fixes and documentation housekeeping by @DAud-IcI in #107
- HAST-325: Exception when running Hastlayer from VS Code by @DAud-IcI in #115
Full Changelog: v2.1.0...v2.1.1
v2.1.0
v2.0.0
- Hastlayer is now fully open-source! Previously
Hast.Core
(the core logic that did the .NET-to-hardware transformation) was private. But now the whole of Hastlayer is available for you as fully open source software! - The consumer sample app now uses Terminal.Gui to provide an easy to use GUI within a terminal window. Command-line configurability remains and is even extended.
- CI builds now happen publicly with GitHub Actions. In a related manner, the full solution is now cross-platform, so no need for a separate Windows and Linux solution.
- ImageSharp image processing sample and benchmarks, although sadly with disappointing results.
- .NET version upgraded to .NET 6 (we only upgrade to LTS versions).
- Support for the Zynq 7000 family of devices that are widely used in embedded systems, including robots, drones, and satellites.
What's Changed
- HAST-159: New benchmarks for Vitis by @DAud-IcI in #48
- HAST-176: Updating ILSpy by @Piedone in #52
- HAST-166: Azure NP support by @DAud-IcI in #51
- HAST-179: Remote Worker startup bug fix and Daemon rewrite by @DAud-IcI in #55
- HAST-180: Use Terminal.Gui in Hast.Samples.Consumer by @DAud-IcI in #59
- HAST-180: Zynq specific improvements. by @DAud-IcI in #60
- HAST-164: SDK static code analysis integration by @DAud-IcI in #65
- HAST-186: Update Analyzers by @DAud-IcI in #66
- HAST-186: Remove finalizers. by @DAud-IcI in #67
- HAST-185: Use Terminal.Gui NuGet package by @DAud-IcI in #69
- HAST-174: Create a 32-bit binary and other Zynq fixes by @DAud-IcI in #50
- HAST-187: Upgrade to .NET 6 ⭐ by @Piedone in #70
- OSOE-173: Adding workflow to create Jira issues for GitHub community activities by @Piedone in #75
- HAST-170: Create parallelized ImageSharp sample by @Luko6 in #53
- HAST-171: ImageSharp sample hardware testing, measurement cleanup and bugfixing by @DAud-IcI in #88
- HAST-290: Move build from TeamCity to GitHub Actions by @Piedone in #91
- HAST-292: Fix errors when executing tests under Linux by @DAud-IcI in #95
- HAST-292: CRLF replacement by @DAud-IcI in #96
- HAST-295: Open-source Hast.Core by @Piedone in #98
New Contributors
- @DAud-IcI made their first contribution in #48
- @Piedone made their first contribution in #52
- @Luko6 made their first contribution in #53
Full Changelog: 1.0.10...v2.0.0
v1.2.1
v1.2
- Added support for the high-end Xilinx Alveo U50, U200, U250 or U280 Data Center Accelerator Cards. These are suitable hardware for any kind of demanding production-level workload. Apart from using such devices on-premise they're also available in the cloud.
- Added support for the high-end AWS EC2 F1 FPGA cloud instances.
- Added support for Azure NP-series VMs that use Xilinx Alveo U250s.
- Generating the hardware for the new high-end FPGAs is fully automatic, including driving the Xilinx toolchain.
- Migrated the code generating Transformer to the latest version of ILSpy, see the issue. Hastlayer uses the .NET decompilation tool ILSpy in the background to process .NET assemblies. Previously Hastlayer depended on an old version of ILSpy, 2.3.1, which came out in 2015. Now ILSpy is at version 7 so you can imagine all the changes such a jump brings! This Hastlayer release is updated to the most recent ILSpy binaries, bringing better support for .NET language features. Shoutout to the ILSpy developers for their awesome work!
- Migrated to .NET Core (see issue). Now not only can Hastlayer process .NET Standard assemblies as before but now the whole projects is built on .NET Core.
- Improved how hardware is generated for Xilinx devices a lot. This means that the resulting hardware implementations fit better on devices, there is a smaller chance for incorrect hardware results and the hardware implementation phase (with the Xilinx tools) is faster too.
- Added support for extension methods.
- Added support for inlining methods with multiple return statements.
- Added a documentation page with benchmarks.
- Various smaller bugfixes and improvements.
Note that running Hastlayer now requires Visual Studio 2019 or greater (any edition will work)
v1.1
After a lot of work we're finally ready with support for much larger FPGAs that can provide acceleration for much more complex applications! Apart from this there are a lot of other news as well so we've bumped up Hastlayer's version number to v1.1. Check the details out below!
- Support for Microsoft's FPGA platform, Project Catapult. These FPGAs are vastly more resourceful than the Nexys with fast PCIe communication. Thus Hastlayer is now suitable in selected HPC use-cases.
- New samples:
MonteCarloPiEstimator
: A Monte Carlo simulation computing the value of Pi in a highly parallelized manner.MemoryTest
: A test algorithm similar to theLoopback
sample to test basic operations of a hardware device.FSharpParallelAlgorithm
: Not a C# but an F# sample, showcasing the same basic parallelization features as seen inParallelAlgorithm
. See the issue.
- New linear-feedback shift register pseudo random number generator:
RandomLfsr
(check out theMonteCarloPiEstimator
sample on how it can be useful). This is a simpler PRNG than theRandomMwc64X
implementation we had before solely, and has lower resource usage, but produces lower quality random numbers. Also included the 16bRandomLfsr16
and a xorshift version,RandomXorshiftLfsr16
. - Optimizing InternalInvocationProxy , thus dramatically lowering the resource usage of certain parallel algorithms as well as recursive algorithms while making their execution faster too.
- Adding transformation warning for too large arrays and displaying such arrays in the Consumer sample.
- Adding the ability to configure methods to be inlined without an attribute.
- Adding option to enable or disable constant substitution.
- Implement workaround for an ILSpy bug.
- Fixing SimdCalculator hardware execution.
- Improving documentation.
- Simplifying samples: no more extension methods for wrappers to be called by external consumers (all methods can be in the same classes).
- Various smaller bugfixes and improvements.
v1.0.10
- Updating and fixing hardware timing values, making hardware execution more reliable, but in certain cases slightly slower, however also causing lower FPGA resource usage.
- Fixing that hardware description caching didn't work with certain programs.
- Improved documentation.
v1.0.9
- New Loopback sample to test FPGA connectivity and Hastlayer Hardware Framework resource usage.
- Fixing that binary operator expressions (like
1 + 2
) calculated with wrongly sized number types and could cause different results on the hardware than in software. - Fixing remainder calculations (
9 % 4
). - Making the lack of support for certain language features more apparent with specific exceptions.
- Various smaller bugfixes and improvements.
- Improved documentation.
Note that running Hastlayer now requires Visual Studio 2017 or greater (any edition will work).
1.0.8
- Adding ability to inline methods to vastly improve performance if the method is small but called a lot of times.
- Adding support for
ref
andout
parameters, see the issue. Fix64
fixed-point number type added for computations with fractions.- Simplified configuration of parallelized code: no need to manually specify the degree of parallelism any more in most cases (see
ParallelAlgorithmSampleRunner
for example:Configure()
is just one line now). - Various smaller bugfixes and improvements.
For all publicly tracked issues resolved with this release see the corresponding milestone.
1.0.7
- Adding sample with an implementation of the 3D Kardar-Parisi-Zhang surface growth simulation algorithm. Made in collaboration with the Wigner Research Centre for Physics to test against an existing GPU implementation (testing is upcoming).
- Fixing behavior of binary operator expressions were the operands were cast.
- Fixing exception when using public fields in certain cases.
- More helpful exception when a type was not found.
- The Hastlayer Hardware Framework - Xilinx project got some scripts to automate updating the Vivado project with a new generated hardware design and to program the FPGA and launch the Xilinx SDK. From now on the project has a release cycle independent of the SDK.