Profiling Information

Overview

The quadric SDK’s output contains profiling information. Namely, it contains a breakdown of execution cycles by type, which looks like something like this, created by executing this network in the SDK:

TotalCycles: 18,387,722

predication  : ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1,981,324
compute      : ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 3,616,340
data_array   : ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 5,207,348
mac          : ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 5,901,120
data_external: ▇▇▇ 400,937
data_ocm     : ▇▇▇▇▇▇▇▇▇▇ 1,280,653

Below are explanations of each of these categories:

Category

Meaning

Predication

Branching (i.e. if/else)

Compute

Computational operations (e.g addition, subtraction, multiplication, division)

data_array

Movement between core registers

MAC

Multiply accumulates, used in convolutions and blurs

data_external

Movement of data between DDR and On-chip Memory (OCM)

data_ocm

Movement of data between On-chip Memory (OCM) and core array