Cassian
Cassian is a multi-API conformance test suite for compute kernel languages.
Main goals:
- Provide a framework for developing black-box tests for compute kernels.
- Abstract runtime layer so the same kernel can be consumed by different APIs.
Currently supported:
- Languages:
- OpenCL C
- C for Metal
- Runtimes:
- OpenCL
- oneAPI Level Zero
Getting started
Build dependencies
Runtime dependencies
- OpenCL driver
- oneAPI Level Zero driver
- OpenCL offline compiler (ocloc)
All above runtime dependencies can be found in compute-runtime project.
Build
git clone https://github.com/intel/cassian
cd cassian
cmake -B build -S .
cmake --build build --parallel
Alternatives
The following list contains projects that at first sight looks similar to Cassian and the explanation how Cassian is different from them:
- OpenCL CTS - tests for OpenCL API and OpenCL C. Cassian focuses mainly on kernel languages including OpenCL C and on support for multiple APIs like OpenCL and Level Zero.
- oneAPI Level Zero Tests - tests for Level Zero API layer. Cassian supplements this project by providing tests for kernel language features using Level Zero API.
- Amber - multi-API test suite for shader languages. Main concepts of Amber and Cassian are similar i.e. test multiple kernel/shader languages using different runtime APIs. Amber focuses on 3D APIs and shader languages where Cassian targets Compute environments.
License
Cassian is licensed under the MIT License.
Catch2 extensions in catch2_utils.hpp are licensed under the Boost Software License.