Design Analysis - 2022.1 English

AI Engine Kernel Coding Best Practices Guide (UG1079)

Document ID
Release Date
2022.1 English

A finite impulse response (FIR) filter is a filter whose impulse response is of finite duration:

Following is an example of 32 taps filter.

Each output takes 32 multiplications. If we take cint16 as the data type and coefficient type, it takes 4 cycles to compute a sample in a kernel, since each AI Engine can perform 8 MAC operations a cycle. If data is streaming from one stream port (32 bits), one data can produce one output (in the middle of processing).

So, the design is compute bound. We'll see how to split the kernel into 4 cascaded kernels to process one sample per cycle.