Description: A memory consistency specification (MCS) allows developers to reason about the behavior of shared memory in parallel programs. In a quest for ever increasing performance and efficiency, parallel architectures and their MCSs have evolved to allow a host of non-intuitive, weak behaviors when performing shared memory operations. Both writing programs targeting a framework with a weak MCS and testing the framework’s implementation are a difficult task, but one that is important as more computation is run on parallel platforms. The work described here focuses on using formal descriptions of an MCS to develop testing strategies for implementations of the MCS, as well as using empirical evidence collected from testing campaigns to improve definitions of an MCS. This proposal includes the following studies:


• MC Mutants (complete): This work describes a new approach for evaluating the effectiveness of testing strategies for an MCS, applying mutation testing to MCS conformance tests in order to find test environments that can reveal bugs. It also introduces a parallel testing strategy that drastically increases testing speed, has led to the discovery of several bugs in GPUs from multiple vendors, and has been integrated into conformance test suites for a new, web-based GPU framework.

• Widescale GPU MCS Testing (in-progress): High level frameworks and programming languages define an MCS that may apply to a wide range of devices, from different vendors and with varying performance characteristics. In this study, we will use the strategies described in MC Mutants to analyze the the implementation of the WebGPU and Vulkan MCS on a large number of GPUs, and show how the results can inform the development of shared-memory applications.

• A Probabilisitic MCS (proposed): Not all applications need the rigorous guarantees an MCS provides when synchronizing shared-memory operations. This study will propose the idea of a probabilistic MCS, where the rate at which weak behaviors occur on an MCS implementation can be used to reason about whether an application is robust to such occurrences.

• Constraining Data Races (proposed): Highly parallel systems like GPUs are susceptible to data races, where shared-memory operations are not properly synchronized. To help provide more security and modular reasoning to new parallel programming frameworks like WebGPU, we will conduct an empirical evaluation of the effects of data races on GPUs using fuzzing techniques and use the results to propose constraints to frameworks’ MCS data race semantics.

Event Host: Reese Levine, PhD Student, Computer Science & Engineering

Advisor: Tyler Sorensen

Event Details

See Who Is Interested

  • Devon Lloyd Mckee

1 person is interested in this event


User Activity

No recent activity