Taming the complexities of the C11 and OpenCL memory models
Imperial College London
Imperial College London, 2015
@article{wickerson2015taming,
title={Taming the complexities of the C11 and OpenCL memory models},
author={Wickerson, John and Batty, Mark},
year={2015}
}
We study how the C11 memory model can be simplified and how it can be extended. Our first contribution is to propose a mild strengthening of the model that enables the rules pertaining to sequentially-consistent (SC) operations to be significantly simplified. We eliminate one of the total orders that candidate executions must range over, leading to a model that is significantly faster to simulate. Our endeavours to simplify the C11 memory model are particularly timely, now that it provides a foundation for memory models of more exotic languages – such as OpenCL 2.0, an extension of C for programming heterogeneous systems composed of CPUs, GPUs and other devices. Our second contribution is the first mechanised formalisation of the OpenCL 2.0 memory model, extending our simplified C11 model. Our C11 and OpenCL memory model formalisations are expressed in the .cat language of Alglave et al., the native input format of the herd memory model simulator. Originally designed for the efficient simulation of hardware memory models, we have extended herd to support language-level memory models.
January 23, 2015 by hgpu