This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TDA4VM: TIDL Execution Target in PROCESSOR-SDK-LINUX-J721E: MMA or ARM?

Part Number: TDA4VM

Tool/software:

Dear Team.

I'm using PROCESSOR-SDK-LINUX-J721E (Edge AI Linux SDK) on the TDA4VM EVM platform for AI inference using TIDL (TI Deep Learning).

I’d like clarification on the following: Does TIDL inference, by default, run on the MMA (Matrix Multiply Accelerator) or on the ARM Cortex-A72 cores?

In case a model or certain layers are not supported by MMA, does TIDL fall back to C7x DSP or ARM CPU?

Is it possible to configure or force inference to run on MMA instead of ARM for testing or validation purposes?


Thanks and Regards
Firdose

  • Hi Firdose,

    TIDL will run everything on the C7x if it can.  When we say it runs on the C7x, we mean on the C7x+MMA combo.   Some ONNX (and TFL) layers are not supported in TIDL, and those layers run on the ARM core.  


    If your model is fully supported by TIDL (all layers are supported), it will run everything in the C7x (and MMA) by default. There is no forcing to run on the C7x/MMA as that is the default.  You can run some layers on the ARM by adding the layer names in the deny = list.   These layers will run on the ARM even if they are supported in TIDL.  You only want to do this if the layer is not behaving correctly on the C7x, as the ARM is about 30X slower.  

    There is no direct control of the MMA, as it is "owned" by the C7x, and TIDL assumes the C7x is in complete control of the MMA. When you send a layer to the C7x, it will automatically run part of the layer on the MMA—nothing you need to do for this to occur.

    Regards,

    Chris