Foundations of empirical memory consistency testing
Jake Kirkham, Tyler Sorensen, Esin Tureci, Margaret Martonosi
摘要
Modern memory consistency models are complex, and it is difficult to reason about the relaxed behaviors that current systems allow. Programming languages, such as C and OpenCL, offer a memory model interface that developers can use to safely write concurrent applications. This abstraction provides functional portability across any platform that implements the interface, regardless of differences in the underlying systems. This powerful abstraction hinges on the ability of the system to correctly implement the interface. Many techniques for memory consistency model validation use empirical testing, which has been effective at uncovering undocumented behaviors and even finding bugs in trusted compilation schemes. Memory model testing consists of small concurrent unit tests called "litmus tests". In these tests, certain observations, including potential bugs, are exceedingly rare, as they may only be triggered by precise interleaving of system steps in a complex processor, which is probabilistic in nature. Thus, each test must be run many times in order to provide a high level of confidence in its coverage.
In this work, we rigorously investigate empirical memory model testing. In particular, we propose methodologies for navigating complex stressing routines and analyzing large numbers of testing observations. Using these insights, we can more efficiently tune stressing parameters, which can lead to higher confidence results at a faster rate. We emphasize the need for such approaches by performing a meta-study of prior work, which reveals results with low reproducibility and inefficient use of testing time.
Our investigation is presented alongside empirical data. We believe that OpenCL targeting GPUs is a pragmatic choice in this domain as there exists a variety of different platforms to test, from large HPC servers to power-efficient edge devices. The tests presented in the work span 3 GPUs from 3 different vendors. We show that our methodologies are applicable across the GPUs, despite significant variances in the results. Concretely, our results show: lossless speedups of more than 5× in tuning using data peeking; a definition of portable stressing parameters which loses only 12% efficiency when generalized across our domain; a priority order of litmus tests for tuning. We stress test a conformance test suite for the OpenCL 2.0 memory model and discover a bug in Intel's compiler. Our methods are evaluated on the other two GPUs using mutation testing. We end with recommendations for official memory model conformance tests.
问问这篇 Paper
智能体会读完全文。
Lune 把这篇 Paper 索引到了每一个公式,引用它的顶会 Paper 也一样。你提问,回答直接引用原文。
引用它的顶会 Paper3
- The semantics of shared memory in Intel CPU/FPGA systemsDan Iorga, Alastair F. Donaldson, Tyler Sorensen, John WickersonOOPSLA 2021 · 被引用 9 次
- Towards Unified Analysis of GPU ConsistencyHaining Tong, Natalia Gavrilenko, Hernán Ponce de León, Keijo HeljankoASPLOS 2024 · 被引用 5 次
- Recurrence Sets for Proving Fair Non-termination under Axiomatic Memory Consistency ModelsThomas Haas, Roland Meyer, Hernán Ponce de León, Andrés Lomelí GarduñoPOPL 2026 · 被引用 2 次
它引用的顶会 Paper1
相关 Paper
- PerpLE: Improving the Speed and Effectiveness of Memory Consistency TestingThemis Melissaris, Markos Markakis, Kelly A. Shaw, Margaret MartonosiMICRO 2020 · 被引用 3 次
- Specifying and testing GPU workgroup progress modelsTyler Sorensen, Lucas F. Salvador, Harmit Raval, Hugues Evrard 等OOPSLA 2021 · 被引用 11 次
- Model Checking Race-Freedom When "Sequential Consistency for Data-Race-Free Programs" is GuaranteedWenhao Wu, Jan Hückelheim, Paul D. Hovland, Ziqing Luo 等CAV 2023 · 被引用 1 次
- MC Mutants: Evaluating and Improving Testing for Memory Consistency SpecificationsReese Levine, Tianhao Guo, Mingun Cho, Alan Baker 等ASPLOS 2023 · 被引用 8 次
- CAAT: consistency as a theoryThomas Haas, Roland Meyer, Hernán Ponce de LeónOOPSLA 2022 · 被引用 11 次
