Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Test - Upgrades and fixes #1383

Closed
wants to merge 14 commits into from
6 changes: 6 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,12 @@ add_subdirectory(amd_openvx)
add_subdirectory(amd_openvx_extensions)
add_subdirectory(utilities)

# install tests
install(FILES tests/CMakeLists.txt DESTINATION ${CMAKE_INSTALL_DATADIR}/mivisionx/test COMPONENT test)
install(DIRECTORY cmake DESTINATION ${CMAKE_INSTALL_DATADIR}/mivisionx/test COMPONENT test)
install(DIRECTORY tests/openvx_api_tests DESTINATION ${CMAKE_INSTALL_DATADIR}/mivisionx/test COMPONENT test)
install(DIRECTORY tests/vision_tests DESTINATION ${CMAKE_INSTALL_DATADIR}/mivisionx/test COMPONENT test)
# CTests
enable_testing()
include(CTest)
add_subdirectory(tests)
Expand Down
7 changes: 4 additions & 3 deletions amd_openvx_extensions/amd_opencv/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ find_package(OpenCV QUIET)

include_directories(../../amd_openvx/openvx/include
include
)
)

list(APPEND SOURCES
source/internal_dataTranslator.cpp
Expand Down Expand Up @@ -102,9 +102,9 @@ if(${OpenCV_VERSION_MAJOR} EQUAL 3 OR ${OpenCV_VERSION_MAJOR} EQUAL 4)
include_directories(${OpenCV_INCLUDE_DIRS})
target_link_libraries(vx_opencv ${OpenCV_LIBRARIES})
if(${OpenCV_VERSION_MAJOR} EQUAL 4)
target_compile_definitions(vx_opencv PUBLIC USE_OPENCV_4=1)
target_compile_definitions(vx_opencv PUBLIC USE_OPENCV_4=1)
else()
target_compile_definitions(vx_opencv PUBLIC USE_OPENCV_4=0)
target_compile_definitions(vx_opencv PUBLIC USE_OPENCV_4=0)
endif()
else()
message(FATAL_ERROR "OpenCV -- Version-${OpenCV_VERSION_MAJOR}.${OpenCV_VERSION_MINOR}.X Not Supported")
Expand All @@ -120,6 +120,7 @@ install(TARGETS vx_opencv LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT
install(TARGETS vx_opencv LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT asan)
# install MIVisionX include files -- {ROCM_PATH}/include/mivisionx/
install(FILES include/vx_ext_opencv.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/mivisionx COMPONENT dev)
install(DIRECTORY ${CMAKE_SOURCE_DIR}/tests/amd_opencv_tests DESTINATION ${CMAKE_INSTALL_DATADIR}/mivisionx/test COMPONENT test)

if(WIN32)
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MT")
Expand Down
91 changes: 37 additions & 54 deletions cmake/FindMIVisionX.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -23,70 +23,53 @@
# SOFTWARE.
#
################################################################################
if(APPLE)
set(SHARED_LIB_TYPE ".dylib")
else()
set(SHARED_LIB_TYPE ".so")
endif()

find_path(MIVisionX_INCLUDE_DIRS
NAMES vx_ext_amd.h
HINTS
$ENV{MIVisionX_PATH}/include/mivisionx
PATHS
${MIVisionX_PATH}/include/mivisionx
/usr/include
${ROCM_PATH}/include/mivisionx
)
mark_as_advanced(MIVisionX_INCLUDE_DIRS)
include(FindPackageHandleStandardArgs)

# OpenVX
find_library(OPENVX_LIBRARIES
NAMES libopenvx${SHARED_LIB_TYPE}
HINTS
$ENV{MIVisionX_PATH}/lib
PATHS
${MIVisionX_PATH}/lib
/usr/lib
${ROCM_PATH}/lib
find_package_handle_standard_args( MIVISIONX
FOUND_VAR MIVISIONX_FOUND
REQUIRED_VARS
OPENVX_LIBRARY
VX_RPP_LIBRARY
MIVISIONX_INCLUDE_DIR
MIVISIONX_LIBRARIES
)
mark_as_advanced(OPENVX_LIBRARIES)

# VX_RPP
find_library(VXRPP_LIBRARIES
NAMES libvx_rpp${SHARED_LIB_TYPE}
HINTS
$ENV{MIVisionX_PATH}/lib
PATHS
${MIVisionX_PATH}/lib
/usr/lib
${ROCM_PATH}/lib
)
mark_as_advanced(VXRPP_LIBRARIES)
# find OpenVX
find_library(OPENVX_LIBRARY NAMES openvx HINTS ${ROCM_PATH}/lib)
find_library(OPENVXU_LIBRARY NAMES vxu HINTS ${ROCM_PATH}/lib)
find_path(OPENVX_INCLUDE_DIR NAMES VX/vx.h PATHS ${ROCM_PATH}/include/mivisionx)

if(OPENVX_LIBRARY AND OPENVXU_LIBRARY AND OPENVX_INCLUDE_DIR)
set(OPENVX_FOUND TRUE)
set(MIVISIONX_FOUND TRUE CACHE INTERNAL "")
set(MIVISIONX_INCLUDE_DIR ${OPENVX_INCLUDE_DIR} CACHE INTERNAL "")
message("-- ${White}FindMIVISIONX: Using OpenVX -- \n\tLibraries:${OPENVX_LIBRARY} \n\tIncludes:${OPENVX_INCLUDE_DIR}${ColourReset}")
else()
message("-- ${Yellow}FindMIVISIONX: OpenVX Libraries Not Found")
endif()

if(OPENVX_LIBRARIES AND MIVisionX_INCLUDE_DIRS)
set(MIVisionX_FOUND TRUE)
endif( )
# find VX_RPP
find_library(VX_RPP_LIBRARY NAMES vx_rpp HINTS ${ROCM_PATH}/lib)
find_path(VX_RPP_INCLUDE_DIR NAMES vx_ext_rpp.h PATHS ${ROCM_PATH}/include/mivisionx)

include( FindPackageHandleStandardArgs )
find_package_handle_standard_args( MIVisionX
FOUND_VAR MIVisionX_FOUND
REQUIRED_VARS
OPENVX_LIBRARIES
VXRPP_LIBRARIES
MIVisionX_INCLUDE_DIRS
)
if(VX_RPP_LIBRARY AND VX_RPP_INCLUDE_DIR)
set(VX_RPP_FOUND TRUE)
message("-- ${White}FindMIVISIONX: Using VX_RPP -- \n\tLibraries:${VX_RPP_LIBRARY}${ColourReset}")
else()
message("-- ${Yellow}FindMIVISIONX: VX_RPP Libraries Not Found")
endif()

set(MIVisionX_FOUND ${MIVisionX_FOUND} CACHE INTERNAL "")
set(MIVISIONX_FOUND ${MIVISIONX_FOUND} CACHE INTERNAL "")
set(OPENVX_LIBRARIES ${OPENVX_LIBRARIES} CACHE INTERNAL "")
set(VXRPP_LIBRARIES ${VXRPP_LIBRARIES} CACHE INTERNAL "")
set(MIVisionX_INCLUDE_DIRS ${MIVisionX_INCLUDE_DIRS} CACHE INTERNAL "")
set(MIVISIONX_INCLUDE_DIRS ${MIVISIONX_INCLUDE_DIRS} CACHE INTERNAL "")

if(MIVisionX_FOUND)
message("-- ${White}Using MIVisionX -- \n\tLibraries:${OPENVX_LIBRARIES} \n\tIncludes:${MIVisionX_INCLUDE_DIRS}${ColourReset}")
if(MIVISIONX_FOUND)
message("-- ${White}Using MIVISIONX -- \n\tLibraries:${OPENVX_LIBRARIES} \n\tIncludes:${MIVISIONX_INCLUDE_DIRS}${ColourReset}")
else()
if(MIVisionX_FIND_REQUIRED)
message(FATAL_ERROR "{Red}FindMIVisionX -- NOT FOUND${ColourReset}")
if(MIVISIONX_FIND_REQUIRED)
message(FATAL_ERROR "{Red}FindMIVISIONX -- NOT FOUND${ColourReset}")
endif()
message( "-- ${Yellow}NOTE: FindMIVisionX failed to find -- openvx${ColourReset}" )
message( "-- ${Yellow}NOTE: FindMIVISIONX failed to find -- openvx${ColourReset}" )
endif()
120 changes: 88 additions & 32 deletions tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,61 @@
################################################################################
cmake_minimum_required(VERSION 3.5)

# install test cmake
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/ctest_cmakelists/CMakeLists.txt DESTINATION ${CMAKE_INSTALL_DATADIR}/mivisionx/test COMPONENT test)
# Install data indepedent tests
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/openvx_api_tests DESTINATION ${CMAKE_INSTALL_DATADIR}/mivisionx/test COMPONENT test)
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/vision_tests DESTINATION ${CMAKE_INSTALL_DATADIR}/mivisionx/test COMPONENT test)
project(mivisionx-test)

# default run
# make test with CTest
enable_testing()
include(CTest)

# ROCM Path
if(DEFINED ENV{ROCM_PATH})
set(ROCM_PATH $ENV{ROCM_PATH} CACHE PATH "Default ROCm installation path")
elseif(ROCM_PATH)
message("-- ${PROJECT_NAME}: ROCM_PATH Set -- ${ROCM_PATH}")
else()
set(ROCM_PATH /opt/rocm CACHE PATH "Default ROCm installation path")
endif()

list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)

set(Python3_FIND_VIRTUALENV FIRST)
find_package(Python3 QUIET)
find_package(OpenCV QUIET)
find_package(MIVISIONX QUIET)

# set defaults for test
if(NOT DEFINED BACKEND)
set(GPU_SUPPORT ON)
endif()
if(NOT DEFINED BACKEND)
set(BACKEND "HIP")
endif()
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/neural_network_tests")
set(NEURAL_NET ON)
endif()
if(NOT DEFINED ENHANCED_MESSAGE)
string(ASCII 27 Esc)
set(ColourReset "${Esc}[m")
set(Red "${Esc}[31m")
set(Green "${Esc}[32m")
set(Yellow "${Esc}[33m")
set(White "${Esc}[37m")
endif()

# find OpenVX
find_library(OPENVX_LIBRARY NAMES openvx HINTS ${ROCM_PATH}/lib)
find_library(OPENVXU_LIBRARY NAMES vxu HINTS ${ROCM_PATH}/lib)
find_path(OPENVX_INCLUDE_DIR NAMES VX/vx.h PATHS ${ROCM_PATH}/include/mivisionx)

if(OPENVX_LIBRARY AND OPENVXU_LIBRARY AND OPENVX_INCLUDE_DIR)
set(OPENVX_FOUND TRUE)
message("-- ${White}${PROJECT_NAME}: Using OpenVX -- \n\tLibraries:${OPENVX_LIBRARY} \n\tIncludes:${OPENVX_INCLUDE_DIR}${ColourReset}")
else()
message("-- ${Yellow}${PROJECT_NAME}: Install MIVisionX before running CTests")
message("-- ${Yellow}${PROJECT_NAME}: OpenVX Libraries Not Found")
endif()

# OpenVX default tests - Vision Nodes
# canny
add_test(
NAME
Expand Down Expand Up @@ -68,7 +116,7 @@ add_test(
--test-command "openvx_color_convert"
)

# CPU Tests
# OpenVX CPU Tests
add_test(NAME openvx_canny_CPU
COMMAND openvx_canny
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/canny)
Expand All @@ -82,25 +130,33 @@ add_test(NAME openvx_color_convert_CPU
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/color_convert)
set_property(TEST openvx_color_convert_CPU PROPERTY ENVIRONMENT "AGO_DEFAULT_TARGET=CPU")

set(Python3_FIND_VIRTUALENV FIRST)
find_package(Python3 QUIET)
find_package(OpenCV QUIET)

# OpenVX Tests
if(Python3_FOUND)
add_test(NAME openvx_tests_runVisionPython_CPU
COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/tests/vision_tests/runVisionTests.py
--runvx_directory ${CMAKE_BINARY_DIR}/bin --num_frames 10
COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/vision_tests/runVisionTests.py
--runvx_directory ${ROCM_PATH}/bin --num_frames 10 --functionality no
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
endif(Python3_FOUND)

# OpenCV Tests
if(OpenCV_FOUND AND Python3_FOUND)
add_test(NAME vx_opencv_tests_runOpenCVPython
COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/tests/amd_opencv_tests/runOpenCVTests.py
--runvx_directory ${CMAKE_BINARY_DIR}/bin
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
endif(OpenCV_FOUND AND Python3_FOUND)
# find vx_opencv
find_library(VX_OPENCV_LIBRARY NAMES vx_opencv HINTS ${ROCM_PATH}/lib)
find_path(VX_OPENCV_INCLUDE_DIR NAMES vx_ext_opencv.h PATHS ${ROCM_PATH}/include/mivisionx)
if(VX_OPENCV_LIBRARY AND VX_OPENCV_INCLUDE_DIR)
set(VX_OPENCV_FOUND TRUE)
message("-- ${White}${PROJECT_NAME}: Using VX_OpenCV -- \n\tLibraries:${VX_OPENCV_LIBRARY}${ColourReset}")
else()
message("-- ${Yellow}${PROJECT_NAME}: VX_OpenCV Libraries Not Found")
endif()

# find vx_rpp
find_library(VX_RPP_LIBRARY NAMES vx_rpp HINTS ${ROCM_PATH}/lib)
find_path(VX_RPP_INCLUDE_DIR NAMES vx_ext_rpp.h PATHS ${ROCM_PATH}/include/mivisionx)
if(VX_RPP_LIBRARY AND VX_RPP_INCLUDE_DIR)
set(VX_RPP_FOUND TRUE)
message("-- ${White}${PROJECT_NAME}: Using VX_RPP -- \n\tLibraries:${VX_RPP_LIBRARY}${ColourReset}")
else()
message("-- ${Yellow}${PROJECT_NAME}: VX_RPP Libraries Not Found")
endif()

# GPU Tests
if(GPU_SUPPORT)
Expand All @@ -121,59 +177,59 @@ if(GPU_SUPPORT)
# OpenVX Tests
if(Python3_FOUND)
add_test(NAME openvx_tests_runVisionPython_GPU
COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/tests/vision_tests/runVisionTests.py
--runvx_directory ${CMAKE_BINARY_DIR}/bin --num_frames 10 --hardware_mode GPU --backend_type ${BACKEND}
COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/vision_tests/runVisionTests.py
--runvx_directory ${ROCM_PATH}/bin --num_frames 10 --functionality no --hardware_mode GPU --backend_type ${BACKEND}
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
endif(Python3_FOUND)

# Neural Network tests
if(NEURAL_NET AND Python3_FOUND)
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/neural_network_tests DESTINATION ${CMAKE_INSTALL_DATADIR}/mivisionx/test COMPONENT test)
# caffe2nnir2openvx No Fuse flow
add_test(NAME caffe2nnir2openvx_no_fuse
COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/tests/neural_network_tests/runNeuralNetworkTests.py
COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/neural_network_tests/runNeuralNetworkTests.py
--profiler_mode 1
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
# caffe2nnir2openvx Fuse flow
add_test(NAME caffe2nnir2openvx_fuse
COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/tests/neural_network_tests/runNeuralNetworkTests.py
COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/neural_network_tests/runNeuralNetworkTests.py
--profiler_mode 2 --reinstall off
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
# caffe2nnir2openvx FP16 flow
add_test(NAME caffe2nnir2openvx_fp16
COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/tests/neural_network_tests/runNeuralNetworkTests.py
COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/neural_network_tests/runNeuralNetworkTests.py
--profiler_mode 3 --reinstall off
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
# onnx2nnir2openvx No Fuse flow
add_test(NAME onnx2nnir2openvxx_no_fuse
COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/tests/neural_network_tests/runNeuralNetworkTests.py
COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/neural_network_tests/runNeuralNetworkTests.py
--profiler_mode 4 --reinstall off
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
# onnx2nnir2openvx Fuse flow
add_test(NAME onnx2nnir2openvxx_fuse
COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/tests/neural_network_tests/runNeuralNetworkTests.py
COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/neural_network_tests/runNeuralNetworkTests.py
--profiler_mode 5 --reinstall off
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
# onnx2nnir2openvx FP16 flow
add_test(NAME onnx2nnir2openvxx_fp16
COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/tests/neural_network_tests/runNeuralNetworkTests.py
COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/neural_network_tests/runNeuralNetworkTests.py
--profiler_mode 6 --reinstall off
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
# nnef2nnir2openvx No Fuse flow
add_test(NAME nnef2nnir2openvxx_no_fuse
COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/tests/neural_network_tests/runNeuralNetworkTests.py
COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/neural_network_tests/runNeuralNetworkTests.py
--profiler_mode 7 --reinstall off
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
# nnef2nnir2openvx Fuse flow
add_test(NAME nnef2nnir2openvxx_fuse
COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/tests/neural_network_tests/runNeuralNetworkTests.py
COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/neural_network_tests/runNeuralNetworkTests.py
--profiler_mode 8 --reinstall off
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
# nnef2nnir2openvx FP16 flow
add_test(NAME nnef2nnir2openvxx_fp16
COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/tests/neural_network_tests/runNeuralNetworkTests.py
COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/neural_network_tests/runNeuralNetworkTests.py
--profiler_mode 9 --reinstall off
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})

endif(NEURAL_NET AND Python3_FOUND)

endif(GPU_SUPPORT)
8 changes: 4 additions & 4 deletions tests/amd_opencv_tests/runOpenCVTests.py
Original file line number Diff line number Diff line change
Expand Up @@ -188,14 +188,14 @@ def strip_libtree_addresses(lib_tree):
testFileName = gdfListOpenCV[i]
echoGDF = 'Running Test GDF - '+testFileName
os.system('echo '+echoGDF +
' | tee -a gdf_test_results/openCV_visionOutput.log')
' | tee -a gdf_test_results/openCV_visionOutput.log')
print(RunVXapp+' -frames:'+str(numFrames)+' -dump-profile file '+scriptPath+'/gdfs/' +
testFileName+' | tee -a gdf_test_results/openCV_visionOutput.log')
testFileName+' | tee -a gdf_test_results/openCV_visionOutput.log')
os.system(RunVXapp+' -frames:'+str(numFrames)+' -dump-profile file '+scriptPath+'/gdfs/' +
testFileName+' | tee -a gdf_test_results/openCV_visionOutput.log')
testFileName+' | tee -a gdf_test_results/openCV_visionOutput.log')
print("\n")
print("\nSTATUS: OpenCV EXT Vision Test Results - " +
scriptPath+"/gdfs/gdf_test_results\n")
scriptPath+"/gdfs/gdf_test_results\n")


orig_stdout = sys.stdout
Expand Down
Loading