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

Gitlab CI: enable the SYCL FPGA emulation backend #2471

Open
wants to merge 4 commits into
base: develop
Choose a base branch
from

Conversation

fwyzard
Copy link
Contributor

@fwyzard fwyzard commented Jan 30, 2025

Install the oneAPI FPGA support libraries and enable the FPGA back-end in emulator mode.

@fwyzard fwyzard force-pushed the enable_SYCL_FPGA_support branch from 2a7a927 to 2196428 Compare January 30, 2025 21:58
@fwyzard fwyzard added this to the 2.0.0 milestone Jan 30, 2025
@fwyzard fwyzard force-pushed the enable_SYCL_FPGA_support branch 2 times, most recently from d1379e0 to f333899 Compare January 31, 2025 08:56
@fwyzard fwyzard force-pushed the enable_SYCL_FPGA_support branch from d3f7600 to 9909e00 Compare January 31, 2025 10:12
@@ -115,6 +115,10 @@ if [ "${alpaka_ACC_SYCL_ENABLE}" == "OFF" ]; then
echo_yellow "<DEFAULT: SYCL environment variables for disabled backend>"
export alpaka_SYCL_ONEAPI_CPU=${alpaka_SYCL_ONEAPI_CPU:=""}
export alpaka_SYCL_ONEAPI_CPU_ISA=${alpaka_SYCL_ONEAPI_CPU_ISA:=""}
export alpaka_SYCL_ONEAPI_FPGA=${alpaka_SYCL_ONEAPI_FPGA:=""}
Copy link
Member

Choose a reason for hiding this comment

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

Can you please add a TODO that this should be split in a separate Intel SYCL CPU and FPGA job in future with the next commit.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Sure, I can do that, but do you prefer to merge it like this with a TODO, or to actually split it ?

Copy link
Member

Choose a reason for hiding this comment

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

Like here:

# TODO(SimeonEhrig): set libstdc++ for all backends
# support for different standard c++ libraries is planed
# https://github.com/alpaka-group/alpaka-job-matrix-library/issues/9
variables["ALPAKA_CI_STDLIB"] = "libstdc++"

The name is optional in general but in this case you can use my one. I use grep to find TODOs.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Sure, I understand that :-)

What I meant to ask is: are we OK to merge this PR as-is (plus the TODO comment), given that it breaks the SYCL CPU workflows ?

Copy link
Member

Choose a reason for hiding this comment

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

No, please not. I think you missed my question in the mattermost chat yesterday. It is not possible to compile the CPU and FPGA backend in you job. If this is true, I will start to open an new PR and extend the job generator that it can generate separate jobs for SYCL CPU and FPGA backend.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I agree we should not merge this PR as-is, without splitting the CPU and FPGA workflows (or finding another solution).

Then I don't understand the reason for the TODO: by the time we do merge it, the split will have been done.

Copy link
Member

Choose a reason for hiding this comment

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

Then I don't understand the reason for the TODO: by the time we do merge it, the split will have been done.

I was not sure, what is the way to go. You did not directly answer on my question on mattermost and you wrote that you asked Intel. So I was not sure how to continue and I thought better document it, before forget it.

@@ -391,6 +391,10 @@ def job_variables(job: Dict[str, Tuple[str, str]]) -> Dict[str, str]:
variables["ALPAKA_CI_ONEAPI_VERSION"] = job[DEVICE_COMPILER][VERSION]
variables["alpaka_SYCL_ONEAPI_CPU"] = "ON"
variables["alpaka_SYCL_ONEAPI_CPU_ISA"] = "avx2"
variables["alpaka_SYCL_ONEAPI_FPGA"] = "ON"
Copy link
Member

Choose a reason for hiding this comment

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

Can you please add a TODO that this should be split in a separate Intel SYCL CPU and FPGA job in future with the next commit.

@SimeonEhrig
Copy link
Member

@fwyzard I implemented generating different jobs for targeting SYCL CPU and SYCL GPU in this PR #2474

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants