gpu/ocl: Allow building out the ngen kernel support #2025
Closed
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.
When requested, we simply return false for
mayiuse_ngen_kernels
and define none of theBUILD_*
options for specific GPU generations. The binary kernel format is the only part of the OCL backend that is truly Intel-specific, other implementations could support the other necessary extensions, so this is a prelude to showing that the core of the engine is reusable for other vendors.This doesn't quite work but I think it's quite close. I expect I'll need some guidance to get it across the line. ctest currently says:
The api test is trivial, it's just expecting that
mayiuse_ngen_kernels
is true. The inner product tests look like numeric accuracy issues, I'm not expert enough to know if the error is tolerable or if there's a quick fix. The other two really do look like total failures to create a primitive so some effort will probably be required to fill in what's missing. It's not immediately clear to me that the generic SYCL code wouldn't hit the same issue (I haven't tried it yet).