Arm Community
Arm Community
  • Site
  • User
  • Site
  • Search
  • User
  • Groups
    • Research Collaboration and Enablement
    • DesignStart
    • Education Hub
    • 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
    • SystemReady Certification
  • 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
    • Operating Systems blog
    • Research Articles
    • SoC Design and Simulation blog
    • Tools, Software and IDEs blog
    • 中文社区博客
  • Support
    • Arm Support Services
    • Documentation
    • Downloads
    • Training
    • Arm Approved program
    • Arm Design Reviews
  • Community Help
  • More
  • Cancel
Arm Community blogs
Arm Community blogs
Architectures and Processors blog Views on Relaxed Atomics in C++ from Arm’s technical leadership team
  • 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
  • C++
  • Architectures
Actions
  • RSS
  • More
  • Cancel
Related blog posts
Related forum threads

Views on Relaxed Atomics in C++ from Arm’s technical leadership team

Richard Grisenthwaite
Richard Grisenthwaite
November 3, 2023
2 minute read time.

Academic research is critical to the semiconductor industry’s continued ability to push the boundaries of what’s possible, which is why, among several other initiatives within the academic and research community, Arm sponsors PhDs under schemes such as EPSRC iCASE. While undertaking their research, many of the students that work at Arm, or are funded by Arm through these schemes, continue to publish their own independent research. This research, unless it is clearly stated, is not endorsed by or supported by Arm in any way.

A recent post by one such student revives an existing proposal that has already been investigated in academic communities (for example here) on the topic of tightening the compilation of C++ Relaxed Atomics towards various architectures.

This proposal was not formally reviewed by Arm or endorsed by anyone at Arm, despite references in its acknowledgement paragraph. It does not change our official position on the matter, which is: Arm believes that today, the cost implications of tightening C++ relaxed atomics outweigh its benefit.

In addition, we thought it would be useful to provide some critical context and factual corrections to the post:

  • The characterization in the post of there being "thousands of bug instances related to relaxed atomics accesses" on Arm systems is unfounded – the comparison is not against the C23 specification, but against an, as yet unadopted, proposed tightening of the specification (specifically Section 2.3 as it is understood that this paper otherwise proposes changes which have been ratified). This remark has already been made by others elsewhere, for example here.
  • The post cites a performance analysis of the impact of the proposed approach based on a single very old Arm implementation, using a specific set of benchmarks. To be truly representative, analysis would need to be across a wide range of Arm implementations and properly representative set of benchmarks. The analysis would need to consider the performance risk to “super-hot” critical code paths that are using relaxed atomics to achieve performance.
  • The post implies that there is some value in having a consistent compilation approach across different architectures, which is not necessary – individual architectures have different approaches for ordering and compilers should be written to use the appropriate tools for their target architecture.

A full and scientifically rigorous analysis of the performance implications of tightening the compilation of C++ Relaxed Atomics would require significant time, cost and engineering resources. In addition, the consequence of the precedent of this to other languages, such as Java, would need to be considered. Given the fact that Arm has not received significant demand for a change of this position from its ecosystem partners, we have no plans to prioritize this sort of analysis at this time.  

Anonymous
Architectures and Processors blog
  • Statistical Profile Extension: extracting value from SPE for SoC Telemetry

    Brian Jeff
    Brian Jeff
    We refer to the SPE performance methodology whitepaper published by Arm for details on the content of this blog.
    • December 8, 2023
  • Part 1: Arm Scalable Matrix Extension (SME) introduction

    Zenon Xiu (修志龙)
    Zenon Xiu (修志龙)
    This blog series provides an introduction to the Arm Scalable Matrix Extension (SME) including SVE and SVE2.
    • December 8, 2023
  • Implementing the WebAssembly bitmask operations on the 64-bit Arm architecture

    Anton Kirilov
    Anton Kirilov
    We discuss some of the challenges that we face when we are trying to implement the WebAssembly SIMD bitmask operations on the 64-bit Arm architecture.
    • December 6, 2023