There are no performance profiling mechanisms on these small devices, and the timers are rather coarse.
But it is easily possible to estimate the execute time:
- mulacc of one weight takes 11 clock cycles.
- There are 1696 weights in the model, each one is only touched once.
- We can assume ~25%-50% overhead for loops and housekeeping (1:4 unrolled)
=> ~23000-28000 clock cycles per inference, which is less than 2ms at 16MHz
Since this is an MLP, the inference time directly scales with the number of weights. (This would be different for a CNN)
As per veryfing on PMC150C - I considered using an LED for valid/nonvalid output. But iterating with OTP devices is quite tedious when you do not have an emulator. Since both devices are code compatible, we can assume that the code works on the smaller devices, though.