MIVisionX Docker documentation#
Docker is a set of platform as a service (PaaS) products that use OS-level virtualization to deliver software in packages called containers. Refer to Rocm Docker Wiki for additional information.
Docker workflow on Ubuntu 20.04/22.04#
Prerequisites#
Ubuntu 20.04/22.04
Install ROCm with
--usecase=rocm
Workflow#
Get the latest docker image. Use the following command to bring in the latest changes from upstream.
sudo docker pull mivisionx/ubuntu-20.04:latest
Run docker image
Run docker image: Local Machine#
sudo docker run -it --privileged --device=/dev/kfd --device=/dev/dri --device=/dev/mem --cap-add=SYS_RAWIO --group-add video --shm-size=4g --ipc="host" --network=host mivisionx/ubuntu-20.04:latest
Computer Vision Test
python3 /workspace/MIVisionX/tests/vision_tests/runVisionTests.py --num_frames 1
Neural Network Test
python3 /workspace/MIVisionX/tests/neural_network_tests/runNeuralNetworkTests.py --profiler_level 1
Khronos OpenVX 1.3.0 Conformance Test
python3 /workspace/MIVisionX/tests/conformance_tests/runConformanceTests.py --backend_type HOST
Option 1: Map localhost directory on the docker image#
Option to map the localhost directory with data to be accessed on the docker image:
-v {LOCAL_HOST_DIRECTORY_PATH}:{DOCKER_DIRECTORY_PATH}
sudo docker run -it -v /home/:/root/hostDrive/ --privileged --device=/dev/kfd --device=/dev/dri --device=/dev/mem --cap-add=SYS_RAWIO --group-add video --shm-size=4g --ipc="host" --network=host mivisionx/ubuntu-20.04:latest
Option 2: Display with docker#
Using host display for docker
xhost +local:root
sudo docker run -it --privileged --device=/dev/kfd --device=/dev/dri --cap-add=SYS_RAWIO --device=/dev/mem --group-add video --network host --env DISPLAY=$DISPLAY --volume="$HOME/.Xauthority:/root/.Xauthority:rw" --volume /tmp/.X11-unix/:/tmp/.X11-unix mivisionx/ubuntu-20.04:latest
Test display with MIVisionX sample
runvx -v /opt/rocm/share/mivisionx/samples/gdf/canny.gdf
Run docker image with display: Remote Server Machine#
sudo docker run -it --privileged --device=/dev/kfd --device=/dev/dri --cap-add=SYS_RAWIO --device=/dev/mem --group-add video --network host --env DISPLAY=$DISPLAY --volume="$HOME/.Xauthority:/root/.Xauthority:rw" --volume /tmp/.X11-unix/:/tmp/.X11-unix mivisionx/ubuntu-20.04:latest
Display with MIVisionX sample
runvx -v /opt/rocm/share/mivisionx/samples/gdf/canny.gdf
Build - dockerfiles#
sudo docker build --build-arg {ARG_1_NAME}={ARG_1_VALUE} [--build-arg {ARG_2_NAME}={ARG_2_VALUE}] -f {DOCKER_FILE_NAME}.dockerfile -t {DOCKER_IMAGE_NAME} .
Run - docker#
sudo docker run -it --privileged --device=/dev/kfd --device=/dev/dri --cap-add=SYS_RAWIO --device=/dev/mem --group-add video --network host --env DISPLAY=$DISPLAY --volume="$HOME/.Xauthority:/root/.Xauthority:rw" --volume /tmp/.X11-unix/:/tmp/.X11-unix {DOCKER_IMAGE_NAME}
Ubuntu 20/22 DockerFiles#
New component added to the level
Existing component from the previous level
Build Level |
MIVisionX Dependencies |
Modules |
Libraries and Executables |
Docker File |
Level_1 |
cmake |
amd_openvx |
|
|
Level_2 |
ROCm OpenCL |
amd_openvx |
|
|
Level_3 |
OpenCV |
amd_openvx |
|
|
Level_4 |
MIOpenGEMM |
amd_openvx |
|
|
Level_5 |
AMD_RPP |
amd_openvx |
|
|