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 or llvm/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.