The ROCetta Project

The ROCetta Project (pron. rosetta) aims to formally specify GPU virtual instruction sets (e.g. PTX) and hardware instruction sets (e.g. SASS). The emphasis is on specifying all the components of these instruction sets in a modular, reusable fashion.

Our current focus is to produce for NVIDIA's PTX:

  1. A complete grammar
  2. A test suite
  3. An interpreter
  4. Executable semantics (in Python and C)
  5. Formal semantics (in SMT2)

Team

  1. Amr S. Elhelw
  2. Benjamin Valpey
  3. Benjamin Carleton
  4. Sreepathi Pai

Artifacts

We're slowly but surely preparing artifacts for public release. Here is a list of artifacts currently available:

  1. A C implementation of the PTX Elementary Math Functionality (due to Benjamin Carleton)

Publications

  1. Amr S. Elhelw and Sreepathi Pai, Horus: A Modular GPU Emulator Framework (Poster), ISPASS 2020, August 2020