How to communicate with Myriad X on Up Vision Plus X?

Options

For hardware developers: which interface is used to communicate with Myriad X devices on carrier/expansion board Up Vision Plus X? Is this USB or PCIe or some kind of a converter from one to another?

Best regards
Aleksandr.

Comments

  • DCleri
    DCleri Administrator, AAEON Posts: 1,213 admin
    Options

    Hi @SashaBe

    The Myriad-X on the Vision Plus X works following the standard setup procedure from the Intel Linux Installation guide (points 1 to 4).
    https://docs.openvinotoolkit.org/latest/_docs_install_guides_installing_openvino_linux.html#install-openvino

    Once completed the main setup you need to proceed with the steps for the VPU installation
    https://docs.openvinotoolkit.org/latest/_docs_install_guides_installing_openvino_linux_ivad_vpu.html

    Now you need to change the settings of the HDDL plugin to use 3 Myriad-X:
    $sudo nano /opt/intel/computer_vision_sdk/inference_engine/external/hddl/config/hddl_autoboot.config
    Modify the number of “total_device_number” variable from 8 to 3 and save the new settings

    Then you can compile and run the example available for the Myriad-X using the HDDL plugin
    You can easily run one of the demo: https://docs.openvinotoolkit.org/latest/_docs_install_guides_installing_openvino_linux.html#run-the-demos:

    $cd /opt/intel/openvino/deployment_tools/demo

    just edit the file

    $ sudo nano demo_security_barrier_camera.sh

    and change the variable target from CPU to HDDL, save and run the example

    $./demo_security_barrier_camera.sh

  • SashaBe
    SashaBe New Member Posts: 15
    Options

    Hi, @DCleri !
    Thank you for your answer.
    I have faced some troubles with VPU installation guide. Namely, I failed to build and install drivers in step 5.
    Namely, the script failed to find /lib/modules/4.15.0-37-generic/build
    This is output, which mention script has returned to the command line:

    Running install for component drv_ion
    if [[ "" != "" ]]; then sudo rmmod myd_ion; fi;
    make[1]: Entering directory '/opt/intel/openvino_2019.1.144/deployment_tools/inference_engine/external/hddl/drivers/drv_ion'
    make[1]: Leaving directory '/opt/intel/openvino_2019.1.144/deployment_tools/inference_engine/external/hddl/drivers/drv_ion'
    make[1]: Entering directory '/opt/intel/openvino_2019.1.144/deployment_tools/inference_engine/external/hddl/drivers/drv_ion'

    start building NODEBUG ION driver <<<

    make[2]: Entering directory '/opt/intel/openvino_2019.1.144/deployment_tools/inference_engine/external/hddl/drivers/drv_ion'
    make[2]: *** /lib/modules/4.15.0-37-generic/build: No such file or directory. Stop.
    make[2]: Leaving directory '/opt/intel/openvino_2019.1.144/deployment_tools/inference_engine/external/hddl/drivers/drv_ion'
    Makefile:36: recipe for target 'all' failed
    make[1]: *** [all] Error 2
    make[1]: Leaving directory '/opt/intel/openvino_2019.1.144/deployment_tools/inference_engine/external/hddl/drivers/drv_ion'
    Makefile:67: recipe for target 'preinstall' failed
    make: *** [preinstall] Error 2
    Running install for component drv_vsc
    if [[ "" != "" ]]; then sudo rmmod myd_vsc; fi;
    make[1]: Entering directory '/opt/intel/openvino_2019.1.144/deployment_tools/inference_engine/external/hddl/drivers/drv_vsc'
    rm -f .o *.ko *.order *.mod.c *.symvers ..cmd
    rm -rf .tmp_versions
    make[1]: Leaving directory '/opt/intel/openvino_2019.1.144/deployment_tools/inference_engine/external/hddl/drivers/drv_vsc'
    make[1]: Entering directory '/opt/intel/openvino_2019.1.144/deployment_tools/inference_engine/external/hddl/drivers/drv_vsc'
    make -C /lib/modules/uname -r/build M=$PWD
    make[2]: Entering directory '/opt/intel/openvino_2019.1.144/deployment_tools/inference_engine/external/hddl/drivers/drv_vsc'
    make[2]: *** /lib/modules/4.15.0-37-generic/build: No such file or directory. Stop.
    make[2]: Leaving directory '/opt/intel/openvino_2019.1.144/deployment_tools/inference_engine/external/hddl/drivers/drv_vsc'
    Makefile:23: recipe for target 'default' failed
    make[1]: *** [default] Error 2
    make[1]: Leaving directory '/opt/intel/openvino_2019.1.144/deployment_tools/inference_engine/external/hddl/drivers/drv_vsc'
    Makefile:43: recipe for target 'preinstall' failed
    make: *** [preinstall] Error 2

    I googled around and found the following link on AskUbuntu with a similar issue. Finally, I entered the following command:

    sudo apt-get install linux-headers-4.15.0-37-generic

    After that, the driver setup performed successfully.
    The root cause of mentioned trouble, possibly, suited in the Up Ubuntu installation guide on the project Wiki. I guess, generic kernels could contain headers by default, but not installed Up kernel.

    Despite success in driver building, the following tries to launch the demo failed.
    I would try to post a new comment with details.

  • SashaBe
    SashaBe New Member Posts: 15
    Options

    There is output of ./demo_security_barrier_camera.sh -d HDDL under the following spoiler.

    Run Inference Engine security_barrier_camera demo

    Run ./security_barrier_camera_demo -d HDDL -d_va HDDL -d_lpr HDDL -i /opt/intel/openvino/deployment_tools/demo/car_1.bmp -m /home/sasha/openvino_models/ir/FP16/Security/object_detection/barrier/0106/dldt/vehicle-license-plate-detection-barrier-0106-fp16.xml -m_va /home/sasha/openvino_models/ir/FP16/Security/object_attributes/vehicle/resnet10_update_1/dldt/vehicle-attributes-recognition-barrier-0039-fp16.xml -m_lpr /home/sasha/openvino_models/ir/FP16/Security/optical_character_recognition/license_plate/dldt/license-plate-recognition-barrier-0001-fp16.xml

    [ INFO ] InferenceEngine:
    API version ............ 1.6
    Build .................. custom_releases/2019/R1.1_28dfbfdd28954c4dfd2f94403dd8dfc1f411038b
    [ INFO ] Parsing input parameters
    [ INFO ] Capturing video streams from the video files or loading images
    [ INFO ] Files were added: 1
    [ INFO ] /opt/intel/openvino/deployment_tools/demo/car_1.bmp
    [ INFO ] Number of input image files: 1
    [ INFO ] Number of input video files: 0
    [ INFO ] Number of input channels: 1
    [ INFO ] Display resolution: 1920x1080
    [ INFO ] Loading plugin HDDL

    API version ...... 1.6
    Build ...... 23780
    Description ....... HDDLPlugin
    [ INFO ] Loading network files for VehicleDetection
    [ INFO ] Batch size is forced to 1
    [ INFO ] Checking Vehicle Detection inputs
    [ INFO ] Checking Vehicle Detection outputs
    [ INFO ] Loading Vehicle Detection model to the HDDL plugin
    [14:47:20.4242][2905]I[ServiceStarter.cpp:93] Info: Found HDDL Service is not running. To start HDDL Service ...
    [14:47:20.4279][2905]I[ServiceStarter.cpp:40] Info: Waiting for HDDL Service getting ready ...
    Config file detected at /opt/intel/openvino_2019.1.144/deployment_tools/inference_engine/external/hddl/config/bsl.json
    hid-f75114 is disabled by config, skipping
    ioexpander is disabled by config, skipping
    mcu is disabled by config, skipping
    Performing auto-scan
    scan F75114 device...
    A matched device found at /sys/devices/pci0000:00/0000:00:15.0/usb1/1-5/1-5.4/1-5.4:1.0/0003:2C42:5114.0004/hidraw/hidraw3
    found 1 F75114 device
    [ion_close][69]close ion_fd = 3
    Config file detected at /opt/intel/openvino_2019.1.144/deployment_tools/inference_engine/external/hddl/config/bsl.json
    hid-f75114 is disabled by config, skipping
    ioexpander is disabled by config, skipping
    mcu is disabled by config, skipping
    Performing auto-scan
    scan F75114 device...
    A matched device found at /sys/devices/pci0000:00/0000:00:15.0/usb1/1-5/1-5.4/1-5.4:1.0/0003:2C42:5114.0004/hidraw/hidraw3
    found 1 F75114 device

    HDDL_INSTALL_DIR: /opt/intel/openvino_2019.1.144/deployment_tools/inference_engine/external/hddl

    [14:47:21.1343][2916]I[ConfigParser.cpp:176] Config file '/opt/intel/openvino_2019.1.144/deployment_tools/inference_engine/external/hddl/config/hddl_service.config' has been loaded
    [14:47:21.1366][2916]I[FileHelper.cpp:272] Set file:/var/tmp/hddl_service_alive.mutex owner: user-'no_change', group-'users', mode-'0660'
    [14:47:21.1383][2916]I[FileHelper.cpp:272] Set file:/var/tmp/hddl_service_ready.mutex owner: user-'no_change', group-'users', mode-'0660'
    [14:47:21.1384][2916]I[FileHelper.cpp:272] Set file:/var/tmp/hddl_start_exit.mutex owner: user-'no_change', group-'users', mode-'0660'
    [14:47:21.1432][2916]I[AutobootStarter.cpp:150] Info: No running autoboot process. Start autoboot daemon...
    Config file detected at /opt/intel/openvino_2019.1.144/deployment_tools/inference_engine/external/hddl/config/bsl.json
    hid-f75114 is disabled by config, skipping
    ioexpander is disabled by config, skipping
    mcu is disabled by config, skipping
    Performing auto-scan
    scan F75114 device...
    A matched device found at /sys/devices/pci0000:00/0000:00:15.0/usb1/1-5/1-5.4/1-5.4:1.0/0003:2C42:5114.0004/hidraw/hidraw3
    found 1 F75114 device
    [14:47:21.4956][2928]I[ConfigParser.cpp:176] Config file '/opt/intel/openvino_2019.1.144/deployment_tools/inference_engine/external/hddl/config/hddl_autoboot.config' has been loaded
    [14:47:21.4971][2928]I[FileHelper.cpp:272] Set file:/var/tmp/hddl_autoboot_alive.mutex owner: user-'no_change', group-'users', mode-'0660'
    [14:47:21.4972][2928]I[FileHelper.cpp:272] Set file:/var/tmp/hddl_autoboot_ready.mutex owner: user-'no_change', group-'users', mode-'0660'
    [14:47:21.4974][2928]I[FileHelper.cpp:272] Set file:/var/tmp/hddl_autoboot_start_exit.mutex owner: user-'no_change', group-'users', mode-'0660'
    [14:47:21.4975][2928]I[FileHelper.cpp:272] Set file:/tmp/hddl_autoboot_device.map owner: user-'no_change', group-'users', mode-'0660'
    [14:47:21.4986][2928]I[AutoBoot.cpp:282] [Firmware Config] deviceName=default deviceNum=0 firmwarePath=/opt/intel/openvino_2019.1.144/deployment_tools/inference_engine/external/hddl/lib/mvnc/MvNCAPI-ma2480.mvcmd
    Reset all devices with device type 2
    [14:47:22.9860][2931]I[AutoBoot.cpp:183] Device 1.5.1-ma2480 boot success, firmware=/opt/intel/openvino_2019.1.144/deployment_tools/inference_engine/external/hddl/lib/mvnc/MvNCAPI-ma2480.mvcmd
    [14:49:00.6219][2905]ERROR[ServiceStarter.cpp:55] Error: Wait HDDL Service Ready failed.
    [14:49:00.6221][2905]ERROR[ServiceStarter.cpp:29] Error: Failed to start HDDL Service
    [14:49:00.6222][2905]ERROR[HddlClient.cpp:215] Error: Failed to boot service.

    [14:49:00.7678][2905]I[HddlClient.cpp:203] Info: Hddl client unregistered.
    [ ERROR ] _client->query(QUERY_TYPE_DEVICE, &query) failed: HDDL_NOT_INITIALIZED
    Error on or near line 228; exiting with status 1
    sasha@sasha-up:/opt/intel/openvino/deployment_tools/demo$
    [14:49:01.6203][2928]ERROR[AutoBoot.cpp:493] Error: Requested (3) devices but only found (1) devices within 100 seconds timeout.
    [14:49:01.6204][2928]ERROR[AutoBoot.cpp:503] Error: Startup device failed abort disabled, run with left devices.
    [14:49:01.6209][2916]I[AutobootStarter.cpp:83] Info: Autoboot is running.
    [14:49:01.7811][2916]I[TaskSchedulerFactory.cpp:45] Info: ## TaskSchedulerFactory ## Created Polling Task-Scheduler.
    [14:49:01.7821][2916]I[FileHelper.cpp:272] Set file:/var/tmp/hddl_snapshot.sock owner: user-'no_change', group-'users', mode-'0660'
    [14:49:01.7826][2916]I[FileHelper.cpp:272] Set file:/var/tmp/hddl_service.sock owner: user-'no_change', group-'users', mode-'0660'
    [14:49:01.7828][2916]I[MessageDispatcher.cpp:86] Message Dispatcher initialization finished
    [14:49:01.7828][2916]I[main.cpp:115] SERVICE IS READY ...
    [14:49:02.0080][2931]ERROR[AutoBoot.cpp:218] Error: Still only (1) devices working but requested (3) devices to be used.
    ...
    [14:51:37.0896][2931]ERROR[AutoBoot.cpp:218] Error: Still only (1) devices working but requested (3) devices to be used.
    ^C
    sasha@sasha-up:/opt/intel/openvino/deployment_tools/demo$
    [14:51:41.0916][2931]ERROR[AutoBoot.cpp:218] Error: Still only (1) devices working but requested (3) devices to be used.
    ps -a
    PID TTY TIME CMD
    2916 pts/4 00:01:40 hddldaemon
    2928 pts/4 00:00:00 autoboot
    2989 pts/4 00:00:00 ps
    sasha@sasha-up:/opt/intel/openvino/deployment_tools/demo$
    [14:51:42.0921][2931]ERROR[AutoBoot.cpp:218] Error: Still only (1) devices working but requested (3) devices to be used.
    ...
    [14:51:53.0980][2931]ERROR[AutoBoot.cpp:218] Error: Still only (1) devices working but requested (3) devices to be used.
    killl -9 2916
    sasha@sasha-up:/opt/intel/openvino/deployment_tools/demo$
    [14:51:54.0985][2931]ERROR[AutoBoot.cpp:218] Error: Still only (1) devices working but requested (3) devices to be used.
    [14:51:54.0989][2928]I[BootDaemonHelper.cpp:71] Info: Autoboot stops normally.
    [ion_close][69]close ion_fd = 3

  • SashaBe
    SashaBe New Member Posts: 15
    edited July 2019
    Options

    Dear @DCleri
    the best if one could really get this brand new board and reproduce the whole sequence from the scratch, including hardware assembly, OS and OpenVINO setup, and tuning, etc.
    Alternatively, one could obtain and share the full EMMC image from the actual working device.

    I have a similar topic here, still no answers there.

  • SashaBe
    SashaBe New Member Posts: 15
    edited July 2019
    Options

    Dear @DCleri !
    Good news!
    I have tested the second set, which arrived for us. It seems working.
    Finally, demo_security_camera_barrier, run with all 3 VPUs which was illustrated by lsusb output, where all three 2485 PIDs become F63B when inited for inference.
    Important to know, that VPUs in my set work via MYRIAD plugin, not HDDL, i.e. run with the following command:
    $./demo_security_barrier_camera.sh -d MYRIAD

    The first set seems to be not fully functional, moreover, it has a blue label "Engineering Sample".
    There are 2 photos attached to this comment.
    How is it possible that the engineering sample has been sent instead of a fully functional one for the full price?

    What do we do with this board?
    I will check if Up Vision Plus X works fine with "not engineering sample" of Up Core Plus and update soon.
    Highly likely, we would like to return or exchange "Engineering Sample" to the functional one.

    UPD: Both Up Vision Plus X with 3VPUs work fine with normal Up Core Plus.

  • DCleri
    DCleri Administrator, AAEON Posts: 1,213 admin
    Options

    Hi @SashaBe

    I would close the other topic and we continue here.

    About the engineering sample, did you ordered from the shop recently and you got that instead of a normal board?
    Or did you order a pre-production sample long time ago?
    Just for my own information.

    Please apply for RMA to request for replacement of the non working unit.

    Regarding the plugin, both Myriad and HDDL should work, but the HDDL is the one designed to run the inference across multiple Myriad-X