[SPIRV] Support Bool buffer argument #7591
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.
SPIR-V spec says we cannot physically address boolean buffers, but right now we are generating code like this:
This is generating garbage outputs. Actually we hit an error at
tvm/src/target/spirv/ir_builder.cc
Lines 130 to 131 in 1831c17
I updated SPIR-V codegen to make a char buffer when the input is a bool tensor, and add cast to bool after loading the char.
If this change looks good, I should probably update the visitor for storing bool buffer output as well.
This enables running the cumsum test on a boolean flag array, which is explicitly disabled for vulkan in #7572 due to the lack of this fix.
@tqchen @tmoreau89 @jwfromm