Wed 20 Oct 2021 15:40 - 15:55 at Zurich D - Shared Memory Chair(s): Doug Lea
Heterogeneous CPU/FPGA devices, in which a CPU and an FPGA can execute together while sharing memory, are becoming popular in several computing sectors. In this paper, we study the shared-memory semantics of these devices, with a view to providing a firm foundation for reasoning about the programs that run on them. Our focus is on Intel platforms that combine an Intel FPGA with a multicore Xeon CPU. We describe the weak-memory behaviours that are allowed (and observable) on these devices when CPU threads and an FPGA thread access common memory locations in a fine-grained manner through multiple channels. Some of these behaviours are familiar from well-studied CPU and GPU concurrency; others are weaker still. We encode these behaviours in two formal memory models: one operational, one axiomatic. We develop executable implementations of both models, using the CBMC bounded model-checking tool for our operational model and the Alloy modelling language for our axiomatic model. Using these, we cross-check our models against each other via a translator that converts Alloy-generated executions into queries for the CBMC model. We also validate our models against actual hardware by translating 583 Alloy-generated executions into litmus tests that we run on CPU/FPGA devices; when doing this, we avoid the prohibitive cost of synthesising a hardware design per litmus test by creating our own 'litmus-test processor' in hardware. We expect that our models will be useful for low-level programmers, compiler writers, and designers of analysis tools. Indeed, as a demonstration of the utility of our work, we use our operational model to reason about a producer/consumer buffer implemented across the CPU and the FPGA. When the buffer uses insufficient synchronisation – a situation that our model is able to detect – we observe that its performance improves at the cost of occasional data corruption.
Wed 20 OctDisplayed time zone: Central Time (US & Canada) change
07:40 - 09:00 | |||
07:40 15mTalk | The Semantics of Shared Memory in Intel CPU/FPGA SystemsVirtual OOPSLA Dan Iorga Imperial College London, Alastair F. Donaldson Imperial College London, Tyler Sorensen University of California at Santa Cruz, John Wickerson Imperial College London DOI | ||
07:55 15mTalk | SecRSL: Security Separation Logic for C11 Release-Acquire ConcurrencyVirtual OOPSLA DOI | ||
08:10 15mTalk | The Reads-From Equivalence for the TSO and PSO Memory ModelsVirtual OOPSLA Truc Lam Bui Comenius University Bratislava, Krishnendu Chatterjee IST Austria, Tushar Gautam IIT Bombay, Andreas Pavlogiannis Aarhus University, Viktor Toman IST Austria DOI | ||
08:25 15mTalk | Making Weak Memory Models FairVirtual OOPSLA Ori Lahav Tel Aviv University, Egor Namakonov St. Petersburg University; JetBrains Research, Jonas Oberhauser Huawei, Anton Podkopaev HSE University; JetBrains Research, Viktor Vafeiadis MPI-SWS DOI | ||
08:40 20mLive Q&A | Discussion, Questions and Answers OOPSLA |
15:40 - 17:00 | |||
15:40 15mTalk | The Semantics of Shared Memory in Intel CPU/FPGA SystemsVirtual OOPSLA Dan Iorga Imperial College London, Alastair F. Donaldson Imperial College London, Tyler Sorensen University of California at Santa Cruz, John Wickerson Imperial College London DOI | ||
15:55 15mTalk | SecRSL: Security Separation Logic for C11 Release-Acquire ConcurrencyVirtual OOPSLA DOI | ||
16:10 15mTalk | The Reads-From Equivalence for the TSO and PSO Memory ModelsVirtual OOPSLA Truc Lam Bui Comenius University Bratislava, Krishnendu Chatterjee IST Austria, Tushar Gautam IIT Bombay, Andreas Pavlogiannis Aarhus University, Viktor Toman IST Austria DOI | ||
16:25 15mTalk | Making Weak Memory Models FairVirtual OOPSLA Ori Lahav Tel Aviv University, Egor Namakonov St. Petersburg University; JetBrains Research, Jonas Oberhauser Huawei, Anton Podkopaev HSE University; JetBrains Research, Viktor Vafeiadis MPI-SWS DOI | ||
16:40 20mLive Q&A | Discussion, Questions and Answers OOPSLA |