SPIR-V Backend Testing Automation
SPIR-V backend inside the LLVM project follows an incremental development model and relies on the testing automation system of changes uploaded to Phabricator and committed to the LLVM repository to ensure OpenCL conformance and stability.
Tests
The system fetches and builds each change/commit (revision) on Ubuntu 22.04 using cmake 3.22.1, Make 4.3, and GCC 11.3.0. The following tests are executed on each revision:
Additionaly, selected revisions are validated using:
Usage
You can use the testing system in the following ways:
- Create a new diff with [SPIR-V] in commit title in Phabricator to have the change automatically tested.
- View the testing queue, results, and download dumps/reproducers right on this website.
Testing jobs are organized in the following categories:
- Commited - jobs testing changes commited to the LLVM's main branch which either modify files inside
llvm/lib/Target/SPIRV
orllvm/test/CodeGen/SPIRV
- Staging - jobs testing diffs uploaded to Phabricator with [SPIR-V] in the commit title
Infrastructure
This website and all test runners are powered by a custom system developed in the Khronos
SPIRV-Backend-Testing repository.
The runtime tests (e.g. Khronos OpenCL CTS) and benchmarks are executed on custom built open source Intel NEO driver and Intel Graphics
Compiler with the SPIR-V backend integrated in the frontend. All the test jobs run on the following
hardware:
Runner # | CPU | Memory | GPU |
---|---|---|---|
1 | Intel Core i9-9900K | 32 GB | Intel UHD Graphics 630 |
2 | Intel Core i7-7567U | 16 GB | Intel Iris Plus Graphics 650 |
3 | Intel Core i5-10210U | 16 GB | Intel UHD Graphics 620 |
Contact
In case of any questions or issues with the testing infrastructure, please create a new issue in the Khronos SPIRV-Backend-Testing repository, join one of the LLVM SPIR-V Backend Working Group meetings, or contact the working group organizers.