Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve Vulkan pipeline #654

Merged
merged 30 commits into from
Aug 14, 2023
Merged

Conversation

adam-smnk
Copy link
Contributor

Expands Vulkan lowering pipeline with extra support passes to allow executing more linalg ops using Vulkan backend.

Changes:

  • Missing SPIRV attributes required for lowering GPU to SPIRV ops are now automatically added to GPU modules.
  • Missing lowering patterns are added to GPU to SPIRV conversion.
  • GPU kernel prototypes and function launches are rewritten to be compliant with Vulkan ABI.
  • More Vulkan tests are now enabled and working.

@adam-smnk
Copy link
Contributor Author

Missing conversion patterns have to be added directly to the upstream GPU to SPIRV conversion pass as this conversion cannot be split into multiple steps. This addition could be upstreamed later if it works well.

The SPIRV attribute adding passes are taken from IMEX and slightly adapted.

Copy link
Contributor

@rengolin rengolin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Quick review of the source, will look at tests later

Copy link
Contributor

@rengolin rengolin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right, this has too much Vulkan specific logic for my comfort and we should look into upstreaming all of it, but for now, it should be fine. We really need to move to something like OpenCL soon.

@adam-smnk adam-smnk merged commit f202c26 into libxsmm:main Aug 14, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants