Skip to content

Latest commit

 

History

History
132 lines (94 loc) · 3.07 KB

how-to-use-kmb-bypass.md

File metadata and controls

132 lines (94 loc) · 3.07 KB

OpenVINO VPUX plugin - KMB bypass

VPUX plugin - KMB bypass Prerequisites

x86_64 host

  • Ubuntu 18.04 long-term support (LTS), 64-bit

  • Kernel 5.0.x, 5.3.x, 5.4.x (you can use ukuu kernel manager to easily update system kernel)

  • Kernel headers

    ls /lib/modules/`uname -r`/build || sudo apt install linux-headers-$(uname -r)

VPUX plugin - KMB bypass Manual build

  1. Move to [OpenVINO Project] base directory and build it with the following commands:

    mkdir -p $OPENVINO_HOME/build-x86_64
    cd $OPENVINO_HOME/build-x86_64
    cmake \
        -D ENABLE_TESTS=ON \
        -D ENABLE_BEH_TESTS=ON \
        -D ENABLE_FUNCTIONAL_TESTS=ON \
        ..
    make -j${nproc}
  2. Move to [KMB Plugin Project] base directory and build it with commands:

    mkdir -p $KMB_PLUGIN_HOME/build-x86_64
    cd $KMB_PLUGIN_HOME/build-x86_64
    cmake \
        -D InferenceEngineDeveloperPackage_DIR=$OPENVINO_HOME/build-x86_64 \
        -D ENABLE_HDDL2=ON \
        -D ENABLE_HDDL2_TESTS=ON \
        ..
    make -j${nproc}

Set up PCIe for HDDLUnite KMB

  1. Configure board.

  2. Install PCIe XLink and HDDL drivers.

Set up VPUX plugin - KMB bypass on ARM

  1. Download last version of HDDLUnite package:

    mkdir -p ~/Downloads
    cd ~/Downloads
    wget <HDDLUnite package link>

    If wget doesn't work properly, use browser instead.

  2. Stop the service with command:

    systemctl stop deviceservice
  3. Rename current HDDLUnite directory if it exists with the following commands:

    ls /opt/intel/hddlunite &&
    mv /opt/intel/hddlunite /opt/intel/hddlunite_orig
  4. Unpack HDDLUnite package with the following commands:

    cd ~/Downloads
    tar -xzf hddlunite-kmb_*.tar.gz -C /opt/intel
  5. Copy original env.sh script with command:

    cp /opt/intel/hddlunite_orig/env.sh /opt/intel/hddlunite
  6. Reboot the board

Set up VPUX plugin - KMB bypass on x86_64

  1. Create user group with the following commands:

    sudo addgroup users
    sudo usermod -a -G users `whoami`
  2. Reboot the host

  3. Set environment variables with commands:

    cd $KMB_PLUGIN_HOME/temp/hddl_unite
    source ./env_host.sh
  4. Run scheduler service with command:

    ${KMB_INSTALL_DIR}/bin/hddl_scheduler_service

Final check

  • Expected output on x86_64:

    [16:40:44.4156][2229]I[DeviceManager.cpp:612] Set mode(bypass) on device by config.
    [16:40:44.4840][2229]I[main.cpp:64] HDDL Scheduler Service is Ready!
  • Expected output on ARM:

    root@keembay:~# journalctl -f -u deviceservice
    ... (some logs)
    Oct 28 01:39:53 hddl2keembay hddl_device_service[1105]: [01:39:53.6320][1105]I[main.cpp:80] HDDL Device Service is Ready!
    Oct 28 01:39:53 hddl2keembay hddl_device_service[1105]: [01:39:53.6389][1138]I[ModeManager.cpp:48] hddl unite set bypass mode
    ... (some logs)

Links