Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/snektron/zig-spirv-test-executor
Zig SPIR-V testing utility
https://github.com/snektron/zig-spirv-test-executor
opencl spirv zig
Last synced: about 2 months ago
JSON representation
Zig SPIR-V testing utility
- Host: GitHub
- URL: https://github.com/snektron/zig-spirv-test-executor
- Owner: Snektron
- Created: 2022-11-24T21:26:22.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-04-13T21:46:58.000Z (9 months ago)
- Last Synced: 2024-04-14T02:29:28.315Z (9 months ago)
- Topics: opencl, spirv, zig
- Language: Zig
- Homepage:
- Size: 122 KB
- Stars: 6
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Zig SPIR-V Test Executor
This is a program to run Zig tests for the SPIR-V target. This is currently mainly used for the compiler behavior tests, and only supports the OpenCL environment. A SPIR-V-capable OpenCL implementation is required, such as Rusticl, POCL, or Intels
## Building
In order to build the executor, we need a few system dependencies:
- The [OpenCL Headers](https://github.com/KhronosGroup/OpenCL-Headers)
- An OpenCL implementation. Its usually the best to link against an ICD loader so that the actual backend that is used may be swapped out at runtime, such as the [Khronos OpenCL ICD Loader](https://github.com/KhronosGroup/OpenCL-ICD-Loader).
- [SPIRV-Tools](https://github.com/KhronosGroup/SPIRV-Tools) is required for extra validation of the module.After obtaining these dependencies, simply run `zig build` to build the project.
## Running tests
To actually run tests, use something like the following:
```
$ zig test src/test_kernel.zig \
--test-runner src/test_runner.zig \
-target spirv64-opencl-gnu \
-mcpu generic+Int64+Int16+Int8+Float64+Float16 \
-fno-llvm \
--test-cmd zig-out/bin/zig-spirv-test-executor \
--test-cmd --platform \
--test-cmd Intel \
--test-cmd-bin
```## Flake
The devshell in `flake.nix` sets up an environment with a bunch of OpenCL capable drivers, such as a slim debug build of recent Mesa, Intel's CPU OpenCL runtime, and POCL 5.0.