Skip to content

Running models on simulator feed input, weights, retrieve output

Aayush Ankit edited this page Sep 13, 2018 · 5 revisions

Simulator consists of one I/O tile - Tile0 (no computation i.e. no core), to send input data to the respective compute tiles mapped to the first layer, and collect output data from the tiles mapped to the final layer.

The following is the illustration to feed input and retrieve output from the simulator with an example compiler model large (test/testasm/large directory in training branch).

Input:

  1. Simulator expects the input data stored in input.npy file stored in test/testasm/large.
  2. One way is to create an input.py file that reads the input data and writes it to a .npy file.

Weights (will formalize once compiler implementation is done):

  1. Simulator expects the weight stored in a directory structure in test/testasm/large/weights.
  2. Within weights directory weights within each tile and core are required.
  3. Refer lines 106-122 in dpe.py to see how weight directory is read by the simulator.

Output:

  1. Simulator produces output traces (data stored in different memory units - core register file, tile shared memory) for debugging purposes, hardware results (performance, energy, time) and output in test/traces/large.
  2. The shared memory data of Tile0, can be seen in the file memsim.txt within tile0 directory.