Arm Community
Arm Community
  • Site
  • User
  • Site
  • Search
  • User
  • Groups
    • Arm Research
    • DesignStart
    • Education Hub
    • Innovation
    • Open Source Software and Platforms
  • Forums
    • AI and ML forum
    • Architectures and Processors forum
    • Arm Development Platforms forum
    • Arm Development Studio forum
    • Arm Virtual Hardware forum
    • Automotive forum
    • Compilers and Libraries forum
    • Graphics, Gaming, and VR forum
    • High Performance Computing (HPC) forum
    • Infrastructure Solutions forum
    • Internet of Things (IoT) forum
    • Keil forum
    • Morello Forum
    • Operating Systems forum
    • SoC Design and Simulation forum
    • 中文社区论区
  • Blogs
    • AI and ML blog
    • Announcements
    • Architectures and Processors blog
    • Automotive blog
    • Graphics, Gaming, and VR blog
    • High Performance Computing (HPC) blog
    • Infrastructure Solutions blog
    • Innovation blog
    • Internet of Things (IoT) blog
    • Mobile blog
    • Operating Systems blog
    • Research Articles
    • SoC Design and Simulation blog
    • Smart Homes
    • Tools, Software and IDEs blog
    • Works on Arm blog
    • 中文社区博客
  • Support
    • Open a support case
    • Documentation
    • Downloads
    • Training
    • Arm Approved program
    • Arm Design Reviews
  • Community Help
  • More
  • Cancel
Arm Community blogs
Arm Community blogs
Architectures and Processors blog Introducing the updated Arm Intrinsics Search Engine
  • Blogs
  • Mentions
  • Sub-Groups
  • Tags
  • Jump...
  • Cancel
More blogs in Arm Community blogs
  • AI and ML blog

  • Announcements

  • Architectures and Processors blog

  • Automotive blog

  • Embedded blog

  • Graphics, Gaming, and VR blog

  • High Performance Computing (HPC) blog

  • Infrastructure Solutions blog

  • Internet of Things (IoT) blog

  • Operating Systems blog

  • SoC Design and Simulation blog

  • Tools, Software and IDEs blog

Tell us what you think
Tags
  • Helium
  • SIMD and Vector Processing Instructions
  • MVE Intrinsics
  • Artificial Intelligence (AI)
  • NEON
  • SIMD ISAs
Actions
  • RSS
  • More
  • Cancel
Related blog posts
Related forum threads

Introducing the updated Arm Intrinsics Search Engine

Gemma Paris
Gemma Paris
August 25, 2021

One of the most vital aspects of Arm’s ecosystem are developers. They come in all job titles and functions, and we try our best to provide each one with the information, tools, and guidance to make their lives easier. Being the lead of Developer Education for the Client line of business at Arm, there are so many areas of the stack we could focus on, from IP implementation to a game developer. We try and focus on the items that will make the most impact and one of these is Intrinsics.  

What is an ISA?

An Instruction Set Architecture (ISA) is part of the abstract model of a computer. It defines how software controls the CPU. The Arm ISA family allows developers to write software and firmware that conforms to the Arm specifications, secure in the knowledge that any Arm-based processor will execute it in the same way. These ISAs also have extensions that can be used to optimize their use amongst a range of use cases. You have Arm Neon, an advanced Single Instruction Multiple Data (SIMD) architecture extension for the Arm Cortex-A processor series. Arm Helium, an M-Profile Vector Extension (MVE) that can deliver a significant performance uplift for machine learning and signal processing. Then you have Scalable Vector Extensions (SVE/SVE2), which are vector extensions for AArch64 execution mode for the A64 instruction set of the Armv8 architecture.

What are Intrinsics?

“Intrinsics are native C/C++ function calls that the compiler replaces with an appropriate instruction or sequence of instructions, providing almost as much control as writing assembly language, while leaving the allocation of registers to the compiler, so that developers can focus on the algorithms.”

On developer.arm.com we had two intrinsic reference documentation pages for Neon Intrinsics and, more recently, Helium (MVE) Intrinsics. The pages and their features performed the tasks at a basic level. However, end user and internal company feedback highlighted that the user experience and performance of the page needed some attention.

Goals of the project

With the blessing of a large number of internal stakeholders, we set out to scope this project and came up with 4 goals:

  • Improve ease of development when using Arm Intrinsics;
  • Help developers write more efficient code;
  • Reduce the time it takes to find and understand instructions; and
  • Compare Intrinsics instructions between technologies.

Our partners on the project, Akendi, did fantastic user research as part of this project. The company conducted a number of in-depth interviews with developers of all kinds to fully understand what was missing, what features are needed and the best way to represent this on a single page.

The Arm Intrinsics search engine 

A few months on and we have put the new search engine into production on Developer.arm.com. User acceptance testing and launch was met with positive feedback from both internal users and external end users.

The main features

The new user features focus on the user interface (UI) for end users, along with some upgrades on the Arm side to ensure the engine loads quickly for end users. For the UI upgrades, here is the brief overview of upgrades:

  • Enhanced search and ‘pinning to top’:
    Search within an Intrinsics description and by full or partial instruction and other data fields. Pin these to the top of your search for later.
  • Multiple filtering options:
    Filter by Return Base Type, Element Bit Size, Architecture, Instruction Group.
  • Support for rich content:
    Provide code examples and links to further information such as GitHub, Arm docs, and so on.
  • Easy comparison:
    Compare the results of multiple searches.
  • Common data structure:
    Expand the application with more instruction sets where the data conforms to the common data structure.

The following screenshots are what the search engine looks like on developer.arm.com:

Arm Intrinsics search engine

Arm Intrinsics search engine can be filtered by SIMD ISA, base type, bit size and architecture. 

The following is an example of the single view of a Neon Intrinsic example which shows a description, results, compatibility and an example operation:

Arm Intrinsics Neon Example

Working for you

Creating, publishing, and maintaining these items like the Arm Intrinsics was a priority for us over the last year, and it is a priority to keep it up to date, so we will add some new features as soon as we can. We welcome feedback on the search engine which you can provide directly on Arm Developer.

In the meantime, why not try out the Arm Intrinsics search engine? Need some resources? Check out the Neon and Helium developer pages for guides on how to get the best out of the search engine:

https://developer.arm.com/architectures/instruction-sets/simd-isas/neon

https://developer.arm.com/architectures/instruction-sets/simd-isas/helium

We are constantly updating these guides along with adding new ones. Please let us know if you have any suggestions on what you would like to see.

Arm Intrinsics Search Engine

Anonymous
Architectures and Processors blog
  • A closer look at Arm A-profile support for non-maskable interrupts

    Christoffer Dall
    Christoffer Dall
    Arm is adding support in both the CPU and Generic Interrupt Controller (GIC) architecture for NMIs. But what is an NMI? how does operating systems software use these features?
    • May 23, 2022
  • Arm announces Ampere Mt Jade as first certification for the SystemReady LS band

    Samer El-Haj-Mahmoud
    Samer El-Haj-Mahmoud
    The Arm SystemReady compliance certification program has reached a significant milestone today with the Arm SystemReady LS certification of the Ampere Altra Arm-based Mt. Jade server.
    • May 17, 2022
  • Arm SystemReady certifications reach 50 including the Morello System Development Platform

    Dong Wei
    Dong Wei
    The Arm SystemReady program has reached a significant milestone with over 50 certifications since its launch only two years ago.
    • May 9, 2022