Skip to content

Remove non spirv builtins #455

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

Open
wants to merge 3 commits into
base: sycl-develop
Choose a base branch
from

Conversation

t4c1
Copy link

@t4c1 t4c1 commented Jul 3, 2025

Removes the option to use non spir-V builtins to implement MMA and copy atoms. This removes the burden of maintaining two sets of builtins for implementing atoms.

Copy link

@joeatodd joeatodd left a comment

Choose a reason for hiding this comment

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

LGTM, couple of additional suggestions

Comment on lines +65 to 66
if (CMAKE_CXX_COMPILER_ID MATCHES "IntelLLVM" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 2025.2)
list(APPEND DPCPP_FLAGS "-Xspirv-translator;-spirv-ext=+SPV_INTEL_split_barrier")

Choose a reason for hiding this comment

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

What does this mean for someone using 2025.1? If it means that Xe code won't work (because there are no non-spirv builtins exposed), we should probably change this to an assertion/error or something?

Copy link
Author

Choose a reason for hiding this comment

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

No, this works with 2025.1 and new enough driver.

Choose a reason for hiding this comment

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

OK can you explain what the logic is here then? For 2025.1, this first branch (line 66) will be hit, so we won't have extensions +SPV_INTEL_2d_block_io,+SPV_INTEL_subgroup_matrix_multiply_accumulate. Are those flags not needed to expose SPIR-V builtins on 2025.1?

Copy link
Author

Choose a reason for hiding this comment

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

It seems they are not. I tested this locally and it works.

To be honest I just tried to keep this as similar to how it was before, but I do not fully understand which extensions are needed in which case. @aacostadiaz might know more.

Choose a reason for hiding this comment

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

You can remove the if condition entirely keeping the +SPV_INTEL_2d_block_io,+SPV_INTEL_subgroup_matrix_multiply_accumulate modules which are supposed to be required

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.

4 participants