Skip to content

Latest commit

 

History

History
15 lines (10 loc) · 1.72 KB

File metadata and controls

15 lines (10 loc) · 1.72 KB

2024RBIW

Codex/ChatGPT (July 2026)

Summary

This paper proposes C++ language annotations that let HPC developers specify compact memory layouts for structs while preserving ordinary assignment semantics and avoiding external-library dependencies. The attributes expose information unavailable to the compiler, such as integer ranges, boolean packing, reduced floating-point precision, and willingness to relax member-order guarantees. The authors implement the extensions in LLVM and add complementary annotations for MPI datatype construction, so communication descriptions can track compressed struct layouts and include only fields that actually change. Smoothed-particle hydrodynamics benchmarks show that the approach can reduce memory footprint enough to run larger simulations and can improve throughput for cache- and bandwidth-limited kernels, although compression may introduce overhead when arithmetic intensity or access patterns are unfavorable. The paper stresses that compression is an additional performance-engineering choice rather than an automatic speedup. Its main value is incremental, source-level memory modesty that remains syntactically standard C++ and can be ignored by compilers that do not implement the attributes.

Contributions

  1. Designed C++ attributes for range-aware integer packing, reduced-precision floating point, and padding control.
  2. Implemented the memory-layout extensions as LLVM compiler support.
  3. Added MPI-oriented annotations that reduce datatype-maintenance burden under layout changes.
  4. Evaluated memory-footprint and throughput effects in smoothed-particle hydrodynamics kernels.
  5. Characterized when compact layouts help bandwidth-limited codes and when conversion overhead can dominate.