Git Product home page Git Product logo

compound-axiomatic-alloy's Introduction

PTX Memory Consistency Model

Daniel Lustig, Sameer Sahasrabuddhe, and Olivier Giroux, "A Formal Analysis of the NVIDIA PTX Memory Consistency Model", in Proceedings of the 24th ACM International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS โ€™19), April 13โ€“17, 2019, Providence, RI, USA.

Paper

Instructions

To run:

  • Put Coq 8.4pl6 in your path
  • Put javac into your path
  • Run "make"
  • Success!

Questions/Comments/Feedback

This is research-quality software built in support of our ASPLOS paper. If you have questions, are interested in using this infrastucture, want to extend the code for your own purposes, etc., please feel free to reach out to Dan Lustig, [email protected]

Makefile targets

all: build the proofs clean: clean up compiled files src11_4: test the RC11 -> PTX mapping empirically using Alloy, with a bound of 4 src11_5: test the RC11 -> PTX mapping empirically using Alloy, with a bound of 5

File listing:

alloqc infrastructure:

  • alloy4.2.jar: Alloy itself, from http://alloy.mit.edu/alloy/downloads/alloy4.2.jar, but very lightly modified to improve compiler compatibility
  • RunAlloy.java: a small wrapper to run Alloy from the command line
  • Alloqc.java: the Alloy-Coq compiler source
  • alloqc.sh: a helper script to run alloqc
  • Makefile: to build alloqc, compile the alloy file, and then check the proofs with Coq

Alloy files

  • util.als: generic Alloy helper functions
  • ptx.als: the definition of the PTX memory model
  • src11.als: the definition of the Scoped RC11 memory model (derived from [30], as described in paper)
  • compile_src11_ptx.als: the mapping from Scoped RC11 to PTX

Coq files

  • alloy.v: a Coq model of Alloy logic
  • alloy_util.v: a library of common helper functions
  • case.v: a library for structuring proofs, derived from common online material
  • src11_ptx.v: the proofs of correctness
  • compile_src11_ptx.v: the auto-generated Coq file produced by alloqc, included here for convenience, if you don't want to build Alloqc

compound-axiomatic-alloy's People

Contributors

daniellustig avatar goens avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.