[RFC PATCH 0/1] myriad-ma24xx-vsc: Helper fw driver for AI inference accelerator

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



So this series is an effort to start a conversation in the community, with
the intent to free the Intel(R) Myriad(TM) ma24xx stack, as found within:

  * USB Intel Neural Compute Stick   (ma2450)
  * USB Intel Neural Compute Stick 2 (ma2485)

What this patch series is:
  * RFC for a helper driver that loads a (currently) non-redistributable
    firmware binary blob for this hotswappable AI inference hardware.

What this patch series is NOT:
  * Kernel driver that provides clean API access to this AI accelerator.
  * Any usermode support.

Hardware:
=======================================================================
The Myriad ma24xx in the USB Intel Neural Compute Stick and Intel Neural
Compute Stick 2 provides an API to accelerate AI inference calculations
on the dedicated SHAVE VLIW vector co-processors, which are orchestrated
by one or more LEON SPARC v8 real time cores.

This VPU chip is positioned as a specialised low-power processor chip for
computer vision inference applications. It contains a dedicated hardware
accelerator for neural network deep-learning inferences.

It was originally designed by Movidius Ltd, who announced they were to be
acquired by Intel in September 2016.

Boot process:
=======================================================================
The core chip is housed within a USB enclosure (there is a different
variant embedded on a SoC over a local bus, but that's out of scope).

When physically connected to a host system, the accelerator card first
needs firmware to be loaded for the device to be useable. An uninitialised
Myriad ma24xx presents with a distinctive USB ID. After firmware
loading, the device detaches from the USB bus and reattaches with a new
device ID. It can then be claimed by the usermode driver.

Current software stack:
=======================================================================

+ *
+ * The firmware is non-free and must be extracted by the user.
+ */

Intel packages and distributes a downstream vendor Intel(R) Distribution of
OpenVINO(TM) toolkit [0] (under a limited proprietary license) for these
devices which, amongst other binary packages, contains the Deep Learning
Deployment Toolkit [1] (Apache License Version 2.0).

However, the non-redistributable firmware binary blob that must be loaded
onto the Myriad ma24xx is not available under a suitable FOSS license.

There have been periods of time during which support for non-x86 host
platforms (e.g. Raspberry Pi ARMv8 64-bit) were missing or delayed in the
Intel-distributed downstream vendor fork OpenVINO.

Whilst Movidius was an independent company, a separate (also non-FOSS)
"Myriad Development Kit" was made available for developers, although it is
no longer actively supported nor new features developed for it.

Let's try to open more of this stack to FOSS mainline, on any host!

This patch series would provide mainline Linux kernel support to load
the Myriad ma24xx firmware, were it to become freely licensed.

As the linux-accelerators list is forming as somewhat of a home for Linux
AI accelerators (training and inference) subsystem, I have copied that list
as a heads-up to the larger effort to integrate this hardware into a fully
open stack.

May the RFC comments flood in!

[0] https://software.intel.com/en-us/openvino-toolkit
[1] https://github.com/opencv/dldt

Note:
Intel, the Intel logo, Movidius, Myriad, OpenVINO and the OpenVINO logo are
trademarks of Intel Corporation or its subsidiaries in the U.S. and/or
other countries.

Rhys Kidd (1):
  USB: myriad-ma24xx-vsc: Firmware loader driver for USB Myriad ma24xx

 MAINTAINERS                          |   6 +
 drivers/usb/misc/Kconfig             |   8 ++
 drivers/usb/misc/Makefile            |   1 +
 drivers/usb/misc/myriad-ma24xx-vsc.c | 171 +++++++++++++++++++++++++++
 4 files changed, 186 insertions(+)
 create mode 100644 drivers/usb/misc/myriad-ma24xx-vsc.c

-- 
2.20.1




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux