12.1. Generating Artifacts for Hostless DDR-Free Operation
When a graph is compiled with an architecture file that has the enable_parameter_rom FPGA AI Suite IP block configuration option enabled, the FPGA AI Suite compiler (dla_compiler) produces a set of memory initialization (.mif) files in a directory called parameter_rom under the export directory specified by the --dumpdir compiler command option. These files are required to build the bitstream for DDR-free operation and to run software inference. You do not need to specify any additional compiler options when compiling an architecture with DDR-free operation enabled.
- ./ddrfree_filter_hw*.mif
Contain the graph filters that are used to build the bitstream for DDR-free operation.
- ./ddrfree_bias_scale_hw*.mif
Contain the graph biases and scaling factors used to build the bitstream for DDR-free operation
- ./ddrfree_filter_emu*.mif
Contain the graph filters in software emulator form.
- ./ddrfree_bias_scale_emu*.mif
Contains the graph biases and scaling factors in software emulator format
- ./ddrfree_config.mif
Stores the FPGA AI Suite instructions for the compiled graph.
The filter and bias/scale .mif files are postfixed with an integer that represents the PE that the parameters are loaded into.
These files are generated using the dla_compiler tool that takes the architecture definition (.arch file) and the target neural network graph as inputs.
A total of k_vector DDR-free filter .mif files are generated. Each file is postfixed with an integer that represents which PE the filter is to be loaded to. Similarly, a total of k_vector DDR-free bias and scale files are generated, using the same postfix scheme to indicate the PE that should load this file.
The FPGA AI Suite IP requires a stream of instructions that describe the order in which convolutions, activations, and other operations are performed. This instruction stream is stored in a single .mif file (ddrfree_config.mif).
You must also enable input and output streaming when using DDR-free operation. The graph must have a large enough stream buffer depth to accommodate all of the intermediate results during inference.