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: MMA on C7X

Part Number: TDA4VM

Dear Sir,

We would be interested to use the MMA in C7x and we have already run the demo vision on c7x_kernel.

Where is the demo for MMA included and would like to know how running it from A72 is linked to TIRTOS (e.g. make file structure, execution through TIRTOS )

Is it also using the user and target kernel API from TIOVX ?

Regards

Manish

  • MMA is a accelerator inside C7x which uses C7x resources such as streaming engine, registers, functional units, L1/L2 memory systems etc. Its as good as writing a c7x program. If you wish to program MMA everything remains the same like vision_apps/apps/basic_demos/app_c7x_kernel. Just on the target.c file you will have program MMA or call one of the functions from MMALIB.

    Regards,
    Shyam

  • Hello Shyam,

    Thanks a lot for the info.

    which target.c file are you referring to ? Is it the app_c7x_target_kernel_img_add.cpp file you are referring to ? 

    Can you please share any example with program MMA and where is this MMALIB located ?

    Also, can we use the TIOVX API to access the HWA in serial production ?

    Regards

    Manish

  • Yes you can take a look at vision_apps/apps/basic_demos/app_c7x_kernel/c7x/app_c7x_target_kernel_img_add.cpp, You can call a MMALIB function in place of the C7xVXLIB_add_i8u_i8u_o8u_cn() function.

    MMALIB is present in the SDK psdk_rtos_auto_j7_06_02_00_21\mmalib_01_01_00_00

    I didn't understand your serial production question. Can you start a new thread and provide some more details?

    Regards,
    Shyam

  • Hello Shyam,

    I can see that inside ti/mmalib/src we have folders for cnn , dsp and also fft which depends on user application (for e.g we want to do some Matrix multiplication in C7x ), here i think we need to use the function in dsp_c7xmma ".h" files. 

    It would be great if you can give us some example of the usage of this function as i see lot of functions there in .h files and not sure which one i could add .

    Ok I open another thread for serial production licensing question.

    Regards

    Manish

  • Hi Shyam,

    Let me put my question in a different way :

    We were able to create and compile  the "app_c7x_kernel"  standalone for C7x by only taking the dependencies and similarly we would like to do it for C6x and MMA. 

    This is something i found as an example  --> https://e2e.ti.com/support/processors/f/791/t/851565

    I am clear that i need to call a MMALIB function in place of the C7xVXLIB_add_i8u_i8u_o8u_cn() function but would be great if you can be more precise with the function which one would fit best for matrix multiplication. Also, how can i use this example thread ? The dependency graph would also definitely need to change.

    Regards

    Manish

  • Manish,

    You can take a look at LINALG (linear algebra kernels) and see what fits your use-case. As such from OpenVx point of view, you can modify the node to pass either vx_image objects or a vx_user_data_object (if you are passing a data structure containing matrix elements) or even a vx_tensor 

    Please take a look at this,

    psdk_rtos_auto_j7_06_02_00_docs_only/mmalib_01_01_00_00/docs/user_guide/group__MMALIB__LINALG.html

    Regards,
    Shyam

  • Hello Shyam ,

    I am using the PYTIOVX to create the kernel here --> http://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-jacinto7/latest/exports/docs/tiovx/docs/user_guide/PYTIOVX.html#KERNEL_SCRIPT

    kernel.setParameter(Type.IMAGE, Direction.INPUT, ParamState.REQUIRED, "IN", ['VX_DF_IMAGE_U8']). I can provide here Tensor instead of IMAGE as argument but the last one VX_DF_IMAGE_U8 , what will be this one ?

    Regards

    Manish

  • Hi Manish,

    Please take a look at the below file for usage.

    psdk_rtos_auto_j7_06_02_00_21/tiovx/tools/PyTIOVX/tiovx/tensor.py file.

    Also I highly encourage you to file separate tickets for a new topic. This will help get replies quicker and also make it easy for others to search for a similar issue on e2e.

    Regards,
    Shyam

  • Hello Shyman.

    We are already one step ahead here and i think the ticket can be closed.

    Thanks a lot for your reply.

    Regards

    Manish