Users Guide#

Install#

You can install the ElasticAI.creator as a dependency using pip:

python3 -m pip install "elasticai.creator"

On PyPi the latest tagged version is published.

Currently, we do not automatically pack and push the code to PyPi. If you want to make sure to use the latest version from the main branch, you can install the ElasticAI.creator as a dependency via git:

python3 -m pip install git+https://github.com/es-ude/elastic-ai.creator.git@main

Minimal Example#

In examples you can find a minimal example. It shows how to use the ElasticAI.creator to define and translate a machine learning model to VHDL. It will save the generated VHDL code to a directory called build_dir. Furthermore, it will generate a skeleton for the Elastic Node V5 that you can use to interface with your machine learning model on the FPGA via a C stub (defined in the elastic-ai.runtime.enV5).

Features#

  • Modular architecture for adding new custom VHDL components

  • Translation from IR to VHDL (combinatorial)

  • Builtin VHDL components:

    • time multiplexed networks

    • counter

    • shift registers

    • sliding window

    • grouped filters

Supported network architectures and layers#

  • all sequential network architectures representable with torch.nn.Sequential

  • fixed-point quantized:

    • layers: linear, linear with batch normalization, LSTM

    • activations: hard sigmoid, hard tanh, ReLU

      • precomputed: sigmoid, tanh, adaptable SiLU

Planned network architectures and layers supported in the future#

  • integer-only linear quantization

  • 1D convolutional layers (fixed-point)

  • gated recurrent unit (fixed-point)

Modules in development:#

  • elasticai.creator.nn.fixed_point.conv1d

Deprecated modules (removal up to discussion):#

  • elasticai.creator.nn.binary (binary quantization)

  • elasticai.creator.nn.float (limited-precision floating-point quantization)

  • elasticai.creator.nn.fixed_point.mac

General limitations#