[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

MIVisionX - Progress Report II



Hi, I've been working on autopkgtest functionality for MIVisionX!

Given that, I'd like to list my findings here:
- build-dep is enough to build all the packages within MIVisionX (except MIGraphX).
- build-dep is not enough for auto-building of all the tests available for MIVisionX.

For instance, for neural network tests to be build during compilation by default,
"libvx_amd_nn1.so" must be pre-installed. The test suite is different with and without
these packages. Hence, the correct order for successfully building all the tests would be:
<run debuild>
<install all packages>
<run debuild again>
<run tests>

Can a package really depend on itself? I suppose I'll need to set up a "ci.yml" file for
proper handling of those tests. I see two options here:
- either run debuild two times
- or find a way to manually compile those tests.

I'm unsure which would be the most Debian friendly way, so your input is much needed.
Please find below the difference in test names for both cases.

Built tests when all libraries installed:
> Test project /home/utk4r-sh/GSoC_2025/MIVisionX/mivisionx/obj-x86_64-linux-gnu
>  1/13 Test  #1: vx_core_test .......................***Failed    0.41 sec
>       Start  2: vx_amd_media_test
>  2/13 Test  #2: vx_amd_media_test ..................***Failed    0.46 sec
>       Start  3: vx_nn_test
>  3/13 Test  #3: vx_nn_test .........................***Failed    0.47 sec
>       Start  4: vx_opencv_test
>  4/13 Test  #4: vx_opencv_test .....................   Passed    0.43 sec
>       Start  5: vx_rpp_test
>  5/13 Test  #5: vx_rpp_test ........................   Passed    0.51 sec
>       Start  6: runvx_test
>  6/13 Test  #6: runvx_test .........................***Failed    0.40 sec
>       Start  7: openvx_canny
>  7/13 Test  #7: openvx_canny .......................***Failed    1.04 sec
>       Start  8: openvx_channel_extract
>  8/13 Test  #8: openvx_channel_extract .............***Failed    0.97 sec
>       Start  9: openvx_color_convert
>  9/13 Test  #9: openvx_color_convert ...............***Failed    1.03 sec
>       Start 10: openvx_canny_CPU
> 10/13 Test #10: openvx_canny_CPU ...................   Passed    0.12 sec
>       Start 11: openvx_channel_extract_CPU
> 11/13 Test #11: openvx_channel_extract_CPU .........   Passed    0.12 sec
>       Start 12: openvx_color_convert_CPU
> 12/13 Test #12: openvx_color_convert_CPU ...........   Passed    0.12 sec
>       Start 13: openvx_tests_runVisionPython_CPU
> 13/13 Test #13: openvx_tests_runVisionPython_CPU ...   Passed   50.24 sec
> 
> 46% tests passed, 7 tests failed out of 13
> 
> Total Test time (real) =  56.33 sec

Built tests when all libraries not installed:
> Test project /home/utk4r-sh/GSoC_2025/MIVisionX/mivisionx/obj-x86_64-linux-gnu
>  1/13 Test  #1: vx_core_test .......................***Failed    0.52 sec
>       Start  2: runvx_test
>  2/13 Test  #2: runvx_test .........................***Failed    0.47 sec
>       Start  3: openvx_canny
>  3/13 Test  #3: openvx_canny .......................***Failed    1.01 sec
>       Start  4: openvx_channel_extract
>  4/13 Test  #4: openvx_channel_extract .............***Failed    1.06 sec
>       Start  5: openvx_color_convert
>  5/13 Test  #5: openvx_color_convert ...............***Failed    1.05 sec
>       Start  6: openvx_canny_CPU
>  6/13 Test  #6: openvx_canny_CPU ...................   Passed    0.15 sec
>       Start  7: openvx_channel_extract_CPU
>  7/13 Test  #7: openvx_channel_extract_CPU .........***Failed    0.03 sec
>       Start  8: openvx_color_convert_CPU
>  8/13 Test  #8: openvx_color_convert_CPU ...........   Passed    0.12 sec
>       Start  9: openvx_tests_runVisionPython_CPU
>  9/13 Test  #9: openvx_tests_runVisionPython_CPU ...   Passed   53.39 sec
>       Start 10: openvx_canny_GPU
> 10/13 Test #10: openvx_canny_GPU ...................***Failed    0.03 sec
>       Start 11: openvx_channel_extract_GPU
> 11/13 Test #11: openvx_channel_extract_GPU .........***Failed    0.03 sec
>       Start 12: openvx_color_convert_GPU
> 12/13 Test #12: openvx_color_convert_GPU ...........***Failed    0.03 sec
>       Start 13: openvx_tests_runVisionPython_GPU
> 13/13 Test #13: openvx_tests_runVisionPython_GPU ...   Passed   50.83 sec
> 
> 31% tests passed, 9 tests failed out of 13
> 
> Total Test time (real) = 108.73 sec

Please don't mind the failed tests, as its tested on my local hardware without ROCm.

The number of tests are same in both cases. I believe the GPU tests sometimes
show false positives when the libraries are not installed, and the accurate tests
are build only during 2nd compilation having the libraries preinstalled.

I'd like to highlight that setting "AGO_DEFAULT_TARGET=CPU" as environment variable
passes all the tests on my CPU. I've used it to split the tests into CPU tests and
GPU tests.

CPU tests (AGO_DEFAULT_TARGET=CPU"):
> Test project /home/utk4r-sh/GSoC_2025/MIVisionX/mivisionx/obj-x86_64-linux-gnu/tests
>       Start  1: vx_core_test
>  1/11 Test  #1: vx_core_test .......................   Passed    0.46 sec
>       Start  2: vx_opencv_test
>  2/11 Test  #2: vx_opencv_test .....................   Passed    0.41 sec
>       Start  3: vx_rpp_test
>  3/11 Test  #3: vx_rpp_test ........................   Passed    0.44 sec
>       Start  4: runvx_test
>  4/11 Test  #4: runvx_test .........................   Passed    0.42 sec
>       Start  5: openvx_canny
>  5/11 Test  #5: openvx_canny .......................   Passed    0.78 sec
>       Start  6: openvx_channel_extract
>  6/11 Test  #6: openvx_channel_extract .............   Passed    0.79 sec
>       Start  7: openvx_color_convert
>  7/11 Test  #7: openvx_color_convert ...............   Passed    0.75 sec
>       Start  8: openvx_canny_CPU
>  8/11 Test  #8: openvx_canny_CPU ...................   Passed    0.12 sec
>       Start  9: openvx_channel_extract_CPU
>  9/11 Test  #9: openvx_channel_extract_CPU .........   Passed    0.12 sec
>       Start 10: openvx_color_convert_CPU
> 10/11 Test #10: openvx_color_convert_CPU ...........   Passed    0.12 sec
>       Start 11: openvx_tests_runVisionPython_CPU
> 11/11 Test #11: openvx_tests_runVisionPython_CPU ...   Passed   59.90 sec
> 
> 100% tests passed, 0 tests failed out of 11
> 
> Total Test time (real) =  64.30 sec

I'd also like to add why these 2 tests are skipped for now.
> `ctest -E "vx_nn_test|vx_amd_media_test`

vx_nn_test: It checks for ROCm despite setting "AGO_DEFAULT_TARGET=CPU"
vx_amd_media_test: A patch is needed to be applied to change the hardcoded path "/opt/rocm" to "/usr"

These will be fixed in the next commit!

Sincerely,
Utkarsh Raj


Reply to: