CHai-v2 provides support for a variety of networks for classification, object detection and segmentation. Please refer to Model Zoo for list of networks and Supported layers for list of layers that are required for these networks. While we believe that we have addressed most of the frequently-used heavy-lifting layers required in networks, we also understand that there might be some networks which might require support for some additional layers. We encourage users to add support for these layers and you could use the software plugin methodology or the methodology described here for efficient hardware software partitioning. But from a system design perspective, we understand that it might be useful to understand the performance of CHai on the layers that are already supported for a given network. We describe an API in this section which can be used to achieve this. For example, if a network is built with 50 layers and the support is missing for only two layers on CHai, then you could get a ball-park estimate on the latency of the 48 layers which are supported. Please note that these latency numbers are only an estimate and they could be optimistic or pessimistic based on the structure of the network. The reason for this is that the runtime of the accelerator fuses some layers for latency optimization.
API
xiEval()
evaluates the performance of given layers and logs them in a CSV file.
Syntax
int xiEval (std::string &layerspec_csv);
Parameters
layerspec_csv
: Input CSV file containing list of layers with respective input arguments. See Eval CSV format for more details.
Example
Below is the argument sequence in CSV, which needs to be followed for all the supported layers.
The output of the API is logged into another CSV file. Example input and output CSV files will look as depicted below.
Input CSV :
Output CSV :