Introducing the Arm-Membench Throughput Benchmark

Research output: Contribution to book/Conference proceedings/Anthology/ReportConference contributionContributedpeer-review

Abstract

Application performance of modern day processors is often limited by the memory subsystem rather than actual compute capabilities. Therefore, data throughput specifications play a key role in modeling application performance and determining possible bottlenecks. However, while peak instruction throughputs and bandwidths for local caches are often documented, the achievable data and instruction throughput can also depend on the relation between memory access and compute instructions. In this paper, we present an Arm version of the established x86-membench throughput benchmark, which we adapted to support all current SIMD extensions of the Armv8 instruction set architecture. We describe aspects of the Armv8 ISA that need to be considered in the portable design of this benchmark. We use the benchmark to analyze the memory subsystem at a fine spatial granularity and to unveil microarchitectural details of three processors: Fujitsu A64FX, Ampere Altra and Cavium ThunderX2. Based on the resulting performance information, we show that instruction fetch and decoder widths become a potential bottleneck for cache-bandwidth-sensitive workloads due to the load-store concept of the Arm ISA.

Details

Original languageEnglish
Title of host publicationParallel Processing and Applied Mathematics
EditorsRoman Wyrzykowski, Jack Dongarra, Ewa Deelman, Konrad Karczewski
PublisherSpringer, Cham
Pages99–112
Number of pages14
ISBN (electronic)978-3-031-85697-6
ISBN (print)978-3-031-85696-9
Publication statusPublished - 2025
Peer-reviewedYes

Publication series

SeriesLecture Notes in Computer Science
Volume15579
ISSN0302-9743

External IDs

ORCID /0009-0001-6030-3201/work/181861120
Scopus 105002708176

Keywords

Keywords

  • Microarchitecture, ThunderX2, Ampere Altra, Bandwidth, Computer architecture, Benchmark, Throughput, Performance analysis, A64FX, Arm, Cache