Table of Contents
Fetching ...

Enhancing software-hardware co-design for HEP by low-overhead profiling of single- and multi-threaded programs on diverse architectures with Adaptyst

Maksymilian Graczyk, Stefan Roiser

TL;DR

This paper addresses the growing computational demands of high-energy physics by introducing Adaptyst, an open-source, architecture-agnostic profiler built as patches to the Linux perf tool to enable on-CPU and off-CPU profiling, thread tracing, and low-level hardware interaction analysis. It describes the current tooling, including Adaptyst and Adaptyst Analyser, which provide a real-time data stream, a web-based visualization with flame graphs and code previews, and roofline capabilities for performance insight across architectures such as $x86$-$64$, $arm64$, and $RISC-V$. The authors outline a roadmap to a unified software-hardware co-design framework that uses an Adaptyst intermediate representation (IR), in-house components (via perf_event_open and $eBPF$), and workflow/system-component modules to optimize hardware choices beyond CPUs/GPUs, spanning from embedded to HPC. The work emphasizes bridging gaps in existing profiling and co-design tools by enabling cross-architecture portability, multi-language support, and automated hardware-software optimization while acknowledging current Linux-only limitations and frame-pointer requirements.

Abstract

Given the recent technological trends and novel computing paradigms spanning both software and hardware, physicists and software developers can no longer just rely on computers becoming faster to meet the ever-increasing computing demands of their research. Adapting systems to the new environment may be difficult though, especially in case of large and complex applications. Therefore, we introduce Adaptyst (formerly AdaptivePerf): an open-source and architecture-agnostic tool aiming for making these computational and procurement challenges easier to address. At the moment, Adaptyst profiles on- and off-CPU activity of codes, traces all threads and processes spawned by them, and analyses low-level software-hardware interactions to the extent supported by hardware. The tool addresses the main shortcomings of Linux "perf" and has been successfully tested on x86-64, arm64, and RISC-V instruction set architectures. Adaptyst is planned to be evolved towards a software-hardware co-design framework which scales from embedded to high-performance computing in both legacy and new applications and takes into account a bigger picture than merely choosing between CPUs and GPUs. Our paper describes the current development of the project and its roadmap.

Enhancing software-hardware co-design for HEP by low-overhead profiling of single- and multi-threaded programs on diverse architectures with Adaptyst

TL;DR

This paper addresses the growing computational demands of high-energy physics by introducing Adaptyst, an open-source, architecture-agnostic profiler built as patches to the Linux perf tool to enable on-CPU and off-CPU profiling, thread tracing, and low-level hardware interaction analysis. It describes the current tooling, including Adaptyst and Adaptyst Analyser, which provide a real-time data stream, a web-based visualization with flame graphs and code previews, and roofline capabilities for performance insight across architectures such as -, , and . The authors outline a roadmap to a unified software-hardware co-design framework that uses an Adaptyst intermediate representation (IR), in-house components (via perf_event_open and ), and workflow/system-component modules to optimize hardware choices beyond CPUs/GPUs, spanning from embedded to HPC. The work emphasizes bridging gaps in existing profiling and co-design tools by enabling cross-architecture portability, multi-language support, and automated hardware-software optimization while acknowledging current Linux-only limitations and frame-pointer requirements.

Abstract

Given the recent technological trends and novel computing paradigms spanning both software and hardware, physicists and software developers can no longer just rely on computers becoming faster to meet the ever-increasing computing demands of their research. Adapting systems to the new environment may be difficult though, especially in case of large and complex applications. Therefore, we introduce Adaptyst (formerly AdaptivePerf): an open-source and architecture-agnostic tool aiming for making these computational and procurement challenges easier to address. At the moment, Adaptyst profiles on- and off-CPU activity of codes, traces all threads and processes spawned by them, and analyses low-level software-hardware interactions to the extent supported by hardware. The tool addresses the main shortcomings of Linux "perf" and has been successfully tested on x86-64, arm64, and RISC-V instruction set architectures. Adaptyst is planned to be evolved towards a software-hardware co-design framework which scales from embedded to high-performance computing in both legacy and new applications and takes into account a bigger picture than merely choosing between CPUs and GPUs. Our paper describes the current development of the project and its roadmap.

Paper Structure

This paper contains 5 sections, 3 figures.

Figures (3)

  • Figure 1: The full program flow of Adaptyst, starting with the adaptyst command run by a user. adaptyst-server is a component of Adaptyst launched by Adaptyst in the background by default.
  • Figure 2: A profiling session for a CERN ROOT brun1997root example opened in Adaptyst Analyser. The "General analyses" icon is marked with an asterisk (*).
  • Figure 3: The proposed modular design of Adaptyst as a software-hardware co-design framework.