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: EdgeAI Cloud TIDL with EVM

Part Number: TDA4VM

Hi Experts,

Our customer plans to use "PROCESSOR-SDK-RTOS-J721E" and "EdgeAI cloud" with TDA4VM EVMs ( J721EXSOMG01EVM and J721EXCP01EVM ) and has a few questions.
a) Are there any other tools they have to install?
b) Is there any SW license fee needed?
c) Regarding the three Machine Learning engine TensorFlowLite, ONNX, TVM/Neo, please let us know the difficulty level and the differences for the  processing speed for each? It would be helpful if there is the selectin criteria.
d) What is done at Train/Refine?  Do they convert the created model data by PC to the data for TDA4VM?


e) They would like to know the processing speed vs. the algorisms for the object detection. It might be related to c).

Thank you in advance for your kind help.
Best regards,
Hitoshi



  • Hi Sugawara-san,

     

    Assuming customers want to use the TDA4VM EVM like "EdgeAI Cloud" where they have machine learning models and Jupyter notebook installed.

    a) I would recommend installing the SK-TDA4VM https://www.ti.com/tool/download/PROCESSOR-SDK-LINUX-SK-TDA4VM#downloads. This is a prebuilt image that includes everything needed to run deep learning AI on our TDA4VM processors including on the TDA4VM EVMs.

    b) No SW license fee is required when using software from TI. As a general rule, all software developed by TI is free and does not need licensing fee. The machine learning engine such as TensorFlowLite, ONNX, and TVM/Neo are open source and free too.

    c) https://github.com/TexasInstruments/edgeai-modelzoo/tree/master/models/vision/detection - This has the performance benchmarks of the different models that are in TIDL (TI Deep Learning) for object detection that has been optimized for the TDA4VM. The github should have benchmarks for other use cases such as semantic segmentation or image classification in other folder if they are needed.

    d) Yes, they convert the model data to make it more into a form that gives you better performance for TDA4VM. I recommend reading this documentation over quantization: https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-jacinto7/06_01_01_12/exports/docs/tidl_j7_01_00_01_00/ti_dl/docs/user_guide_html/md_tidl_fsg_quantization.html

    e) Link for c) should have performance speed for each model for object detection.

     

    Hopefully this answered all your questions!

     

    Regards,

    Takuma

  • Hi Takuma-san,

    Thank you so much for your prompt and clear explanation.
    will convey the answers to the customer and come back here if there would be further questions.

    Best regards,
    Hitoshi

  • Hi Takuma-san,
    One additional question. Please let us know how we could select TensorFlowLite, ONNX, or TVM/Neo. Is there any speciality for each? 
    The customer would like to now the criteria how to choose them.
    Best regards,
    Hitoshi Sugawara

  • Hi Sugawara-san,

    I will check with the team whether there is a typical use case for each run-time and if there is a procedure to select between TensorFlowLite, ONNX, or TVM/Neo other than performing benchmarks on all the models using datasets for specific customer use cases. I will update you tomorrow with the response I get.


    In the meantime, I have found a few tools and documentation that may be of interest to you.

    For conducting benchmarks on the different models: https://github.com/TexasInstruments/edgeai-benchmark

    For learning more about TensorFlowLite, ONNX, or TVM/Neo: 

    "

    tensorflow: TensorFlow is an end-to-end open source platform for machine learning. It has a comprehensive, flexible ecosystem of tools, libraries, and community resources that lets researchers push the state-of-the-art in ML and developers easily build and deploy ML-powered applications. Please see the branch tidl-j7 for changes specific to our device.

    onnxruntime: ONNX Runtime is a cross-platform inference and training machine-learning accelerator. Please see the branch tidl-j7 for changes specific to our device.

    neo-ai-dlr: DLR is a compact, common runtime for deep learning models and decision tree models compiled by AWS SageMaker Neo, TVM, or Treelite. Please see the branch tidl-j7 for changes specific to our device.

    tvm: Apache TVM (incubating) is a compiler stack for deep learning systems. It is designed to close the gap between the productivity-focused deep learning frameworks, and the performance- and efficiency-focused hardware backends. TVM works with deep learning frameworks to provide end to end compilation to different backends. Please see the branch tidl-j7 for changes specific to our device.

    "

    I found the above from here: (https://github.com/TexasInstruments/edgeai/blob/master/readme_sdk.md)

    Regards,

    Takuma

  • Hi Sugawara-san,

    I need some more time to gather information about the different runtimes to answer your question about the specialty of each runtime and what criteria customers typically use to choose between them. I will respond back to you by end of Tuesday.

    Regards,

    Takuma

  • Hi Takuma-san,

    Thank you for your kind support. Will look forward to having the info.

    Best regards,
    Hitoshi

  • Hi Sugawara-san,

    Apologies for the delay. I was able to gather information from the experts on TIDL (TI Deep Learning). I will quote their response here:

    "

    • If TIDL supports all the layers of the model on hardware accelerator, the entire model is delegated to TIDL, and in this case the performance will be the same irrespective of runtime used. This is the best case scenario for the customer in terms of performance. In case some of the layers in the models are not supported by TIDL, these layers will be delegated to ARM and in this case, performance may slightly differ across runtimes based on their implementations of these layers.
    • I think you also must be aware of our Model Selection Tool as part of our Edge AI offering (https://dev.ti.com/edgeai/) which helps customers in model selection from a pre compiled set of models.

    "

    Also from their explanation, the three runtimes are usually chosen when:

    • Tensorflow-lite runtime: Model is trained using tensorflow framework
    • ONNX runtime: Model is trained using pytorch or similar frameworks which can be exported to ONNX format
    • TVM/Neo runtime: Some layers cannot be delegated to TIDL, and are delegated to ARM processor running Linux. Additionally TVM generated code gives better performance than respective tensorflow-lite or ONNX runtime.

    Regards,

    Takuma

  • Hi Takuma-san,

    Thank you so much for your quick support. I have conveyed the answer to the customer.
    Please close this inquiry. If there is another question comes, will issue a new thread onto e2e.

    Thank you again and best regards,
    Hitoshi