Add basic support for replaying from SPIR-V #421
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description of Changes
Previously, replay checked for either an OpenCL C source file (kernel.cl) or a device binary (*.bin). This commit adds another check for a SPIR-V binary (kernel.spv).
The intent behind these changes is to make it simpler to capture on one device and replay on another device, without needing access to the original source. More sophisticated changes would be required to fully automate this and support all cases (e.g., multiple SPIR-V files) but this simple change seemed in keeping with the existing "kernel.cl" path and is enough for my use-case.
Testing Done
I only ran a very simple test:
DeviceBinary0.bin
file.readelf
anddd
to extract the.spv
section fromDeviceBinary0.bin
intokernel.spv
.run.py
script to replay the kernel on an Intel CPU via PoCL.