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.

AM6411: Migration of a TensorFlow Lite application from TDA4VM

Part Number: AM6411
Other Parts Discussed in Thread: TDA4VM, AM6412

Hello,

My customer currently develop a vision application around TDA4VM, and they also use the TDA4VM deep learning capabilities to process some other sensor data. This additional processing has very low memory and processing requirements. They say that in some cases, they will need 2 physically separate systems, so the vision would remain on TDA4VM, and the additional processing would have to run on a cheap processor like AM6411 in a separate box. They are confident that the A53 core in AM6411 has enough performance.

I see that the AM64x SDK machine learning capability is around TF Lite, which is also supported in the TDA4VM SDK although that's heterogeneous execution (Cortex A core + C7x/MMA) in the latter.

What would it take to migrate a TF Lite application from TDA4VM to AM6411? Are there any restrictions to account for in the TDA4VM application so to make this migration possible?


Best regards,
François.

  • Francois,

    The AM64x family machine learning inference support in the AM64x 7.2 SDK is based on TensorFlow Lite 1.15, which uses just the A53 cores and their SIMD/NEON vector for acceleration across the up to two A53's. From a functionality perspective all TFLite operators are supported, so an arbitrary .tfite model will run. I've run some simple image classification models (Mobilinetv1 and v2 at 224x224x3 pixels) at about 250-350milliseconds latency (3-4 images per second) on AM6412 (two A53 cores). TDA4VM will be something like 100-200x faster for these for quantized (int8) models. For AM64x floating point models run about as fast as int8 quantized models as the load/store and SIMD has been balanced for 32-bit floating point, not 8-bit integers.

    So porting in the direction of TDA4VM to AM6411 should be very simple, just take the original .tflite model (most likely the floating point model will be best compromise on accuracy and performance) and run. You can ignore all the steps related to TIDL or quantization in the TDA4VM documentation. Just note the performance in inference latency will be two orders of magnitude less than on TDA4VM for typical quantized models designed for vision.

    https://www.ti.com/lit/pdf/spracv1 shows two examples of running int8 and float32 Mobilenetv1 models hosted on https://www.tensorflow.org/lite/guide/hosted_models . Any other .tflite model will run as well, the label_image script is setup for the classification models.

      Pekka

  • Hi Pekka,

    Thank you very much for the quick answer!


    Best regards,
    François.