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.

J721EXSOMXEVM: Compiling edgeai-gst-apps for TDA4VM EVM

Part Number: J721EXSOMXEVM
Other Parts Discussed in Thread: TDA4VM

Hi,

I am trying to compile and use edgeai-gst-apps and optiflow for the TDA4VM EVM (J721EXSOMG01EVM) running SDK Linux and SDK RTOS 11.02. However I am getting the following errors and would like to confirm whether I need to change anything in the process.

What I have done so far:

  1. Install PSDK Linux Version: 11.02.00.04 
  2. Compile and flash PSDK RTOS Version: 11.02.00.06
  3. Test whether vision apps work
  4. clone edgeai-gst-apps
  5. clone edgeai-tidl-tools
  6. clone edgeai-gst-plugins

Errors and solutions I have tried.

  1. When running setup_script.sh from edgeai-gst-apps I get the following output 
    root@j721e-evm:/opt/edgeai-gst-apps# ./setup_script.sh 
    edgeai-apps-utils
    -- The C compiler identification is GNU 13.4.0
    -- The CXX compiler identification is GNU 13.4.0
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Check for working C compiler: /usr/bin/cc - skipped
    -- Detecting C compile features
    -- Detecting C compile features - done
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Check for working CXX compiler: /usr/bin/c++ - skipped
    -- Detecting CXX compile features
    -- Detecting CXX compile features - done
    -- CMAKE_BUILD_TYPE = Release PROJECT_NAME = edgeai-apps-utils
    SOC=j721e
    TARGET_CPU=A72
    -- Configuring done (1.2s)
    -- Generating done (0.0s)
    -- Build files have been written to: /opt/edgeai-apps-utils/build
    [ 22%] Building C object CMakeFiles/edgeai-apps-utils.dir/src/edgeai_dl_pre_proc_armv8_utils.c.o
    [ 22%] Building C object CMakeFiles/edgeai-apps-utils.dir/src/edgeai_dl_color_convert_armv8_utils.c.o
    [ 33%] Building C object CMakeFiles/edgeai-apps-utils.dir/src/edgeai_dl_scaler_armv8_utils.c.o
    [ 44%] Building C object CMakeFiles/edgeai-apps-utils.dir/src/edgeai_nv12_drawing_utils.c.o
    [ 55%] Building C object CMakeFiles/edgeai-apps-utils.dir/src/edgeai_nv12_font_utils.c.o
    [ 66%] Building C object CMakeFiles/edgeai-apps-utils.dir/src/edgeai_perf_stats_utils.c.o
    [ 77%] Building C object CMakeFiles/edgeai-apps-utils.dir/src/edgeai_overlay_perf_stats_utils.c.o
    /opt/edgeai-apps-utils/src/edgeai_overlay_perf_stats_utils.c: In function 'overlay_graph':
    /opt/edgeai-apps-utils/src/edgeai_overlay_perf_stats_utils.c:209:25: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
      209 |         char *cpuName = appIpcGetCpuName(j);
          |                         ^~~~~~~~~~~~~~~~
    /opt/edgeai-apps-utils/src/edgeai_overlay_perf_stats_utils.c: In function 'overlay_text':
    /opt/edgeai-apps-utils/src/edgeai_overlay_perf_stats_utils.c:422:25: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
    
    
    ****   LOTS OF BUILD WARNINGS   ********
    
    
    /opt/edgeai-apps-utils/src/edgeai_dl_pre_proc_armv8_utils.c: In function 'dlPreProcess_NV12_image':
    /opt/edgeai-apps-utils/src/edgeai_dl_pre_proc_armv8_utils.c:15112:54: note: 'V_s' was declared here
    15112 |                             int32x4_t U_f, U_s, V_f, V_s;
          |                                                      ^~~
    [100%] Linking C shared library /opt/edgeai-apps-utils/lib/Release/libedgeai-apps-utils.so
    [100%] Built target edgeai-apps-utils
    [100%] Built target edgeai-apps-utils
    Install the project...
    -- Install configuration: "Release"
    -- Installing: /usr/lib/libedgeai-apps-utils.so.0.1.0
    -- Up-to-date: /usr/lib/libedgeai-apps-utils.so
    -- Up-to-date: /usr/include/edgeai-apps-utils/edgeai_arm_neon_utils.h
    -- Up-to-date: /usr/include/edgeai-apps-utils/edgeai_dl_color_convert_armv8_utils.h
    -- Up-to-date: /usr/include/edgeai-apps-utils/edgeai_dl_pre_proc_armv8_utils.h
    -- Up-to-date: /usr/include/edgeai-apps-utils/edgeai_dl_scaler_armv8_utils.h
    -- Up-to-date: /usr/include/edgeai-apps-utils/edgeai_image_params.h
    -- Up-to-date: /usr/include/edgeai-apps-utils/edgeai_nv12_drawing_utils.h
    -- Up-to-date: /usr/include/edgeai-apps-utils/edgeai_nv12_font_utils.h
    -- Up-to-date: /usr/include/edgeai-apps-utils/edgeai_overlay_perf_stats_utils.h
    -- Up-to-date: /usr/include/edgeai-apps-utils/edgeai_perf_stats_utils.h
    Cloning into 'edgeai-dl-inferer'...
    fatal: unable to access 'git.ti.com/.../': The requested URL returned error: 403
    Setup FAILED! : Make sure you have active network connection
    Current solution that worked: changing from 'https://git.ti.com/cgit/edgeai/edgeai-dl-inferer/' to  git://git.ti.com/edgeai/edgeai-dl-inferer.git 
  2. When switching to the above link and running the setup again, I got the following error 
    Cloning into 'edgeai-dl-inferer'...
    warning: Could not find remote branch EDGEAI_APP_STACK_11_02_00_00 to clone.
    fatal: Remote branch EDGEAI_APP_STACK_11_02_00_00 not found in upstream origin
    Setup FAILED! : Make sure you have active network connection
    
    Solution: Searching through the branches/tags revealed that 'EDGEAI_APP_STACK_11_02_00_00' does not exist. Therefore I cloned the branch myself from the working link (git instead of https) and switched to the main branch. This makes the script bypass the cloning of  the Repository as the directory already exists.
  3. Once the script passes through the cloning step and starts compiling dl-inferer, I get the following error 
    edgeai-dl-inferer
    -- The C compiler identification is GNU 13.4.0
    -- The CXX compiler identification is GNU 13.4.0
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Check for working C compiler: /usr/bin/cc - skipped
    -- Detecting C compile features
    -- Detecting C compile features - done
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Check for working CXX compiler: /usr/bin/c++ - skipped
    -- Detecting CXX compile features
    -- Detecting CXX compile features - done
    -- CMAKE_BUILD_TYPE = Release PROJECT_NAME = edgeai_dl_inferer
    SOC=j721e
    -- CMAKE_BUILD_TYPE = Release PROJECT_NAME = edgeai_dl_inferer_python
    SOC=j721e
    -- CMAKE_BUILD_TYPE = Release PROJECT_NAME = edgeai_post_process
    SOC=j721e
    -- CMAKE_BUILD_TYPE = Release PROJECT_NAME = edgeai_pre_process
    SOC=j721e
    -- CMAKE_BUILD_TYPE = Release PROJECT_NAME = dump_model_info
    SOC=j721e
    -- CMAKE_BUILD_TYPE = Release PROJECT_NAME = app_dl_inferer_test
    SOC=j721e
    -- Configuring done (1.2s)
    -- Generating done (0.0s)
    -- Build files have been written to: /opt/edgeai-dl-inferer/build
    [  8%] Building CXX object post_process/CMakeFiles/edgeai_post_process.dir/src/ti_post_process.cpp.o
    [  8%] Building CXX object dl_inferer/CMakeFiles/edgeai_dl_inferer.dir/src/ti_dl_inferer.cpp.o
    [ 13%] Building CXX object post_process/CMakeFiles/edgeai_post_process.dir/src/ti_post_process_config.cpp.o
    /opt/edgeai-dl-inferer/post_process/src/ti_post_process_config.cpp:68:10: fatal error: yaml-cpp/yaml.h: No such file or directory
       68 | #include <yaml-cpp/yaml.h>
          |          ^~~~~~~~~~~~~~~~~
    compilation terminated.
    make[2]: *** [post_process/CMakeFiles/edgeai_post_process.dir/build.make:90: post_process/CMakeFiles/edgeai_post_process.dir/src/ti_post_process_config.cpp.o] Error 1
    make[1]: *** [CMakeFiles/Makefile2:214: post_process/CMakeFiles/edgeai_post_process.dir/all] Error 2
    make[1]: *** Waiting for unfinished jobs....
    [ 17%] Building CXX object dl_inferer/CMakeFiles/edgeai_dl_inferer.dir/src/ti_dl_inferer_config.cpp.o
    /opt/edgeai-dl-inferer/dl_inferer/src/ti_dl_inferer_config.cpp:67:10: fatal error: yaml-cpp/yaml.h: No such file or directory
       67 | #include <yaml-cpp/yaml.h>
          |          ^~~~~~~~~~~~~~~~~
    compilation terminated.
    make[2]: *** [dl_inferer/CMakeFiles/edgeai_dl_inferer.dir/build.make:90: dl_inferer/CMakeFiles/edgeai_dl_inferer.dir/src/ti_dl_inferer_config.cpp.o] Error 1
    make[2]: *** Waiting for unfinished jobs....
    make[1]: *** [CMakeFiles/Makefile2:188: dl_inferer/CMakeFiles/edgeai_dl_inferer.dir/all] Error 2
    make: *** [Makefile:136: all] Error 2
    

     

    This also happens if I try to compile directly from the edgeai-dl-inferer directory.

My question therefore is whether I am missing some steps in between? 

How do I compile the edgeai stack for the EVM?

Is it at all possible to use the EVM for Optiflow workflow?

TIA.

Charanjit