KhronosGroup / KhronosGroup/Vulkan-MemoryModel
[RFC] Formal model written in cat and tool support for simulation
- 主要言語
- C++
- スター
- 117
- フォーク
- 15
- PR マージ指標
- 30日以内にマージされた PR はありません
説明
Together with @hernanponcedeleon, we wrote the [vulkan model in the cat language](https://github.com/hernanponcedeleon/Dat3M/blob/master/cat/spirv.cat) (a standard language to formalize memory models), [ported all the tests](https://github.com/hernanponcedeleon/Dat3M/tree/master/litmus/VULKAN/Kronos-Group) in this repository to a more standardized format, and [added tool support](https://github.com/hernanponcedeleon/Dat3M) for simulation/verification.
We believe the tool would be valuable for the community and we wanted to get feedback if it would make sense to have the model and the tests in this repository.
The new tool has the following advantages
- it supports `goto` instructions which allow to write more realistic examples e.g. the [XF-barrier](https://github.com/hernanponcedeleon/Dat3M/blob/master/litmus/VULKAN/Manual/XF-Barrier-relacq.litmus).
- it also supports the Nvidia's PTX model, meaning that it can be used to compare how the same program (modulo ISA syntax) behaves according to the different notions of consistency.
- it scales much better than Alloy-based tools. For litmus tests scalability might not be an issue, but it could be used to verify more realistic code.
- it allows to find certain liveness violations due to spinloops not synchronizing correctly.
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
調査の方向性
まず cat/spirv.cat と litmus/VULKAN/Kronos-Group 配下の移植済みテストを読み、次にリンクされている Dat3M ツールと、そのシミュレーションおよび検証のサポートを確認してください。完了とみなすには、このモデル、テスト形式、およびツールのサポートをこのリポジトリで採用すべきかどうかについて、maintainer の判断が必要です。
索引モデルが issue の本文から書いたものです。
評価
- 領域
- testing-qa, tooling
- issue の種類
- 機能追加
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 活発さ
- 停滞
- 明瞭さ
- 説明が足りない
- 初心者へのやさしさ
- 20/100