Helium Introductions - stanlytw/CMSIS-NN GitHub Wiki

What is Helium

  • The M-Profile Vector Extension (MVE) for the Arm Cortex-M processor series

  • Extension of the Armv8.1-M architecture

  • Delivers a significant performance increase for ML and DSP applications.

  • Processing data with SIMD(Single-Instruction Multiple Data) methodology. e.g: adds four pairs of 32-bit values together image

image

-Four 32-bit values(4 lanes), operations in the diagram are independent for each lane. Any overflow or carry from lane 0 does not affect lane 1.

Helium Features

  • Use 128-bit vectors(regisetr).

  • Reuse floating point registers.

  • Provide instructions to perform vector add and multiply.

  • Includes 8 vector registers.

  • Includes both regular registers and vector registers.

  • Includes loop prediction and lane prediction.

Intrinsics targeted for DSP instruction: e.g:

  • vld2q, which loads blocks of data from memory and writes them to the destination register

  • vrmlsldavhaq, for the multiplication of complex numbers.

Reference Source

  • https: developer.arm.com documentation 102102 0103