Skip to content

OpenCL Backend

Kiriti Gowda edited this page Sep 20, 2023 · 4 revisions

MIVisionX OpenCL Backend

Instructions for building MIVisionX with OPENCL GPU backend:

  • clone MIVisionX git repository

    git clone https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX.git
    
  • run the setup script to install all the dependencies required by the OPENCL GPU backend:

    cd MIVisionX
    python MIVisionX-setup.py --reinstall ON --backend OCL
    
  • run the below commands to build MIVisionX with the OPENCL GPU backend:

    mkdir build-ocl
    cd build-ocl
    cmake -DBACKEND=OPENCL ../
    make -j8
    sudo make install
    

Note:

  • MIVisionX cannot be installed for both GPU backends in the same default folder (i.e., /opt/rocm/) if an app interested in installing MIVisionX with both GPU backends, then add -DCMAKE_INSTALL_PREFIX in the cmake commands to install MIVisionX with OPENCL and HIP backends into two separate custom folders.
  • vx_winml is not supported on Linux
  • PyPackageInstall used for rocal_pybind installation - supported only with HIP Backend
  • rocal_pybind not supported on windows
  • sudo required for pybind installation

OpenCL Backend

Docker Image: sudo docker build -f docker/ubuntu20/{DOCKER_LEVEL_FILE_NAME}.dockerfile -t {mivisionx-level-NUMBER} .

  • #c5f015 new component added to the level
  • #1589F0 existing component from the previous level
Build Level MIVisionX Dependencies Modules Libraries and Executables Docker Tag
Level_1 cmake
gcc
g++
amd_openvx
utilities
#c5f015 libopenvx.so - OpenVX™ Lib - CPU
#c5f015 libvxu.so - OpenVX™ immediate node Lib - CPU
#c5f015 runvx - OpenVX™ Graph Executor - CPU with Display OFF
Docker Image Version (tag latest semver)
Level_2 ROCm OpenCL
+Level 1
amd_openvx
amd_openvx_extensions
utilities
#c5f015 libopenvx.so - OpenVX™ Lib - CPU/GPU
#c5f015 libvxu.so - OpenVX™ immediate node Lib - CPU/GPU
#c5f015 libvx_loomsl.so - Loom 360 Stitch Lib
#c5f015 loom_shell - 360 Stitch App
#c5f015 runcl - OpenCL™ program debug App
#c5f015 runvx - OpenVX™ Graph Executor - Display OFF
Docker Image Version (tag latest semver)
Level_3 OpenCV
FFMPEG
+Level 2
amd_openvx
amd_openvx_extensions
utilities
#1589F0 libopenvx.so - OpenVX™ Lib
#1589F0 libvxu.so - OpenVX™ immediate node Lib
#1589F0 libvx_loomsl.so - Loom 360 Stitch Lib
#1589F0 loom_shell - 360 Stitch App
#1589F0 runcl - OpenCL™ program debug App
#c5f015 libvx_amd_media.so - OpenVX™ Media Extension
#c5f015 libvx_opencv.so - OpenVX™ OpenCV InterOp Extension
#c5f015 mv_compile - Neural Net Model Compile
#c5f015 runvx - OpenVX™ Graph Executor - Display ON
Docker Image Version (tag latest semver)
Level_4 MIOpenGEMM
MIOpen
ProtoBuf
+Level 3
amd_openvx
amd_openvx_extensions
apps
utilities
#1589F0 libopenvx.so - OpenVX™ Lib
#1589F0 libvxu.so - OpenVX™ immediate node Lib
#1589F0 libvx_loomsl.so - Loom 360 Stitch Lib
#1589F0 loom_shell - 360 Stitch App
#1589F0 libvx_amd_media.so - OpenVX™ Media Extension
#1589F0 libvx_opencv.so - OpenVX™ OpenCV InterOp Extension
#1589F0 mv_compile - Neural Net Model Compile
#1589F0 runcl - OpenCL™ program debug App
#1589F0 runvx - OpenVX™ Graph Executor - Display ON
#c5f015 libvx_nn.so - OpenVX™ Neural Net Extension
#c5f015 inference_server_app - Cloud Inference App
Docker Image Version (tag latest semver)
Level_5 AMD_RPP
rocAL deps
+Level 4
amd_openvx
amd_openvx_extensions
apps
rocAL
utilities
#1589F0 libopenvx.so - OpenVX™ Lib
#1589F0 libvxu.so - OpenVX™ immediate node Lib
#1589F0 libvx_loomsl.so - Loom 360 Stitch Lib
#1589F0 loom_shell - 360 Stitch App
#1589F0 libvx_amd_media.so - OpenVX™ Media Extension
#1589F0 libvx_opencv.so - OpenVX™ OpenCV InterOp Extension
#1589F0 mv_compile - Neural Net Model Compile
#1589F0 runcl - OpenCL™ program debug App
#1589F0 runvx - OpenVX™ Graph Executor - Display ON
#1589F0 libvx_nn.so - OpenVX™ Neural Net Extension
#1589F0 inference_server_app - Cloud Inference App
#c5f015 libvx_rpp.so - OpenVX™ RPP Extension
#c5f015 librocal.so - Radeon Augmentation Library
#c5f015 rocal_pybind.so - rocAL Pybind Lib
Docker Image Version (tag latest semver)

NOTE: OpenVX and the OpenVX logo are trademarks of the Khronos Group Inc.