alt.embedded
Intel Movidius

Accelerate AI with Intel’s Movidius

Technology Editor Bill Wong takes a hands-on look at Intel’s $79 Movidius Neural Compute Stick.

If you’re a programmer looking for an artificial intelligence bargain, you should check out Intel’s $79 Movidius Neural Compute Stick (Fig. 1). I did, and I’m very impressed with its functionality, as well as the software that comes with it.

For those unfamiliar with the Neural Compute Stick, is a USB 3 device with a Movidius Myriad 2 VPU (video processing unit). The chip includes a deep neural network (DNN) accelerator in addition to camera inputs; it is designed to handle image processing chores as well as other DNN applications. Unfortunately, the camera inputs are not exposed on the stick, but it is possible to stream video via the USB 3 interface. Some of the examples that come with the system do just that.

1. Intel’s $79 Movidius Neural Compute Stick is a USB 3.0 dongle that contains a Movidius Myriad 2 VPU.

The stick will work with just about any system that has a USB 3 connection, but the software development kit (SDK) targets Ubuntu 16.04. This is the latest, long-term Linux implementation from Ubuntu, and it supports a variety of hosts that includes x86 and Arm.

I initially planned on testing the stick using a virtual machine running Ubuntu on Linux KVM, but unfortunately, the USB passthrough was not sufficient to handle the odd handshaking that the stick uses for configuration. Luckily I had a Raspberry Pi 3 handy, because that is another platform supported by the stick and Ubuntu.

The SDK uses a command line installation that also installs Caffe. This was the initial machine learning (ML) platform supported by Intel. It has since expanded that support to include TensorFlow. The example programs all take advantage of the Caffe runtime support, but there are sample applications for TensorFlow that can easily be tested with Intel’s platform.

The Getting Started manual outlines the few steps needed to install and test the support of the USB stick. These are command line application scripts, although one requires a USB camera to do its recognition chores in real time (Fig. 2). This test application actually highlights the advantage of using the Movidius Myriad 2 VPU chip, as the Raspberry Pi would be hard-pressed to keep up with the dozen specialized vector VLIW SHAVE processors and two RISC processors for this type of application (Fig. 3). In actuality, the chip is hardly breaking a sweat.

2. One of the examples with the SDK is an image recognition system that identifies in real time the objects captured via a USB camera.

Moving past the examples takes a bit more work. The addition of TensorFlow support may help in this area, because it is easier to set up using existing ML models and some Python code.

In general, the Intel Movidius Neural Compute Stick will be used for processing models that have been configured on other systems although it can be used for training purposes. It is possible to utilize multiple sticks on a single system, although I only had one for testing. A USB 3 hub will have enough bandwidth to work with four or more and these can run in parallel on the same application, although I did not delve into this type of set-up.

Using existing ML models and data is a relatively straightforward process depending up on the framework used, since the interfaces are standardized. Developing models from scratch will be a major undertaking regardless of which platform is used. Likewise, you will need to delve into the documentation or examples for your platform of choice—including Caffe and TensorFlow—to get a handle on using or creating models, as the documentation for the stick will simply make sure things work properly.

3. The 600 MHz Movidius Myriad 2 has a pair of RISC processors managing a dozen specialized vector VLIW SHAVE processors. The MIPI lanes are not used with the Movidius Neural Compute Stick.

The Movidius Myriad 2 VPU is already used in applications like DJI’s SPARK drone. An embedded design like this has the advantage of direct camera input to the chip, but logically, it will be the same as using the USB camera with the stick.

Developers can get started with ML on a PC but the Movidius Neural Compute Stick offers support for embedded applications. It can handle the DNN heavy lifting, allowing platforms like the Raspberry Pi to handle ML applications that would otherwise be too slow to be useful.

Hide comments

Comments

  • Allowed HTML tags: <em> <strong> <blockquote> <br> <p>

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
Publish