Skip to content

[SYCL] Add new FPGA loop attribute enable_loop_pipelining #9263

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

Merged
merged 9 commits into from
May 3, 2023

Conversation

smanna12
Copy link
Contributor

@smanna12 smanna12 commented May 1, 2023

This patch adds support for new FPGA attribute called enable_loop_pipelining, which is similar to disable_loop_pipelining.

This attribute is useful in the low-area flow, in which all loops are unpipelined by default and the user may wish to enable loop pipelining.

The [[intel::enable_loop_pipelining]] attribute is applicable to loops in SYCL device code. If the loop has this attribute, the LLVM IR loop will have the llvm.loop.intel.pipelining.enable metadata, with value 1, as shown below:

br .... !llvm.loop !0

!0 = {!1}
!1 = !{!"llvm.loop.intel.pipelining.enable", i32 1}

An error should be output if both [[intel::enable_loop_pipelining]] and [[intel::disable_loop_pipelining]] are applied to the same loop.

This patch adds support for new FPGA attribute called enable_loop_pipelining,
which is similar to disable_loop_pipelining.

This attribute is useful in the low-area flow, in which all loops are unpipelined
by default and the user may wish to enable loop pipelining.

The [[intel::enable_loop_pipelining]] attribute is applicable to loops in SYCL device code.
If the loop has this attribute, the LLVM IR loop will have the
llvm.loop.intel.pipelining.enable metadata, with value 1, as shown below:

br .... !llvm.loop !0

!0 = {!1}
!1 = !{!"llvm.loop.intel.pipelining.enable", i32 1}

An error should be output if both [[intel::enable_loop_pipelining]] and
[[intel::disable_loop_pipelining]] are applied to the same loop.

Signed-off-by: Soumi Manna <soumi.manna@intel.com>
@smanna12 smanna12 marked this pull request as ready for review May 1, 2023 01:08
@smanna12 smanna12 requested a review from a team as a code owner May 1, 2023 01:08
@smanna12 smanna12 temporarily deployed to aws May 1, 2023 01:32 — with GitHub Actions Inactive
@smanna12 smanna12 temporarily deployed to aws May 1, 2023 07:39 — with GitHub Actions Inactive
@smanna12 smanna12 requested a review from premanandrao May 1, 2023 22:20
@smanna12 smanna12 temporarily deployed to aws May 2, 2023 00:01 — with GitHub Actions Inactive
@smanna12 smanna12 temporarily deployed to aws May 2, 2023 01:20 — with GitHub Actions Inactive
Copy link
Contributor

@premanandrao premanandrao left a comment

Choose a reason for hiding this comment

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

Sorry for missing a couple things yesterday.

@smanna12
Copy link
Contributor Author

smanna12 commented May 2, 2023

Sorry for missing a couple things yesterday.

Not a Problem @premanandrao. Thanks for catching and reviews!

@smanna12 smanna12 temporarily deployed to aws May 2, 2023 17:25 — with GitHub Actions Inactive
@smanna12 smanna12 temporarily deployed to aws May 2, 2023 19:11 — with GitHub Actions Inactive
@smanna12 smanna12 temporarily deployed to aws May 2, 2023 21:02 — with GitHub Actions Inactive
@smanna12
Copy link
Contributor Author

smanna12 commented May 2, 2023

Thank you everyone for reviews!

@smanna12
Copy link
Contributor Author

smanna12 commented May 2, 2023

The failed test is unrelated to my patch:

Failed Tests (1):
SYCL :: Basic/vec_bool.cpp

@smanna12 smanna12 temporarily deployed to aws May 3, 2023 12:35 — with GitHub Actions Inactive
@smanna12 smanna12 temporarily deployed to aws May 3, 2023 13:31 — with GitHub Actions Inactive
@smanna12 smanna12 temporarily deployed to aws May 3, 2023 15:47 — with GitHub Actions Inactive
@smanna12
Copy link
Contributor Author

smanna12 commented May 3, 2023

@intel/llvm-gatekeepers This PR is ready. Could you please merge it? Thank you

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