What is Arm Helium Technology?

Arm Helium technology is the M-Profile Vector Extension (MVE) for the Arm Cortex-M processor series. Helium is an extension of the Armv8.1-M architecture and delivers a significant performance uplift for machine learning and digital signal processing applications for small, embedded devices.

Helium is an optional extension that enables higher signal processing capabilities for Armv8.1-M processors. Cortex-M55 is the first Arm processor to support this technology.

Adding over 150 new scalar and vector instructions, there are many implementation options: 

  • Helium option omitted – Armv8.1-M integer core with optional scalar FPU (double precision support also optional).
  • Integer Helium only with optional scalar FPU (double precision support also optional).
  • Integer + floating point Helium (support vectored single precision and half precision) with scalar FPU (double precision support also optional).

The integer Helium enables efficient compute of 8-bit, 16-bit and 32-bit fixed point data. 16-bit and 32-bit fixed point formats are widely used in traditional signal processing applications, such as audio processing. 8-bit fixed point format can be important to machine learning processing, such as neural network computation, as well as image processing. 

Helium also supports floating point data types, including single precision floats (32-bit) and half precision floats (16-bit).

Helium Intrinsics

Helium Intrinsics reference search engine

Helium intrinsics are function calls that the compiler replaces with an appropriate MVE instruction or sequence of MVE instructions. Intrinsics provide almost as much control as writing assembly language, but leave the allocation of registers to the compiler, so that developers can focus on the algorithms. It can also perform instruction scheduling to remove pipeline stalls for the specified target processor. This leads to more maintainable source code than using assembly language. Helium intrinsics are supported by Arm Compilers, gcc and LLVM.

Helium Intrinsics

Helium Programmer's Guide

Introduction to Helium

Read now

Coding for Helium

Coding for Helium

Migrating to Helium from Neon

Read now

Resources

How does Helium differ from Neon?

While there are similarities between Helium and Neon – the Advanced SIMD technology available on Arm Cortex-A processors - Helium is a new ground-up design that enables efficient signal processing performance in small processors. It provides many new architectural features that are not available in Neon. The key differences between Helium and Neon are as follows:

  • Helium is optimised for low power, high performing CPUs. As such, the architecture is designed to maximise usage of all available hardware.
  • Helium has fewer vector registers than Neon, however, some Helium vector instructions can access the scalar register file and the vector register file simultaneously.
  • Helium  supports new features like loop predication, lane predication, complex maths operations, and scatter-gather memory accesses.