/cassian

Cassian is a multi-API conformance test suite for compute kernel languages.

Primary LanguageC++MIT LicenseMIT

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

  1. Catch2
  2. OpenCL Headers
  3. oneAPI Level Zero Headers

Runtime dependencies

  1. OpenCL driver
  2. oneAPI Level Zero driver
  3. 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:

  1. 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.
  2. 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.
  3. 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.