Skip to content

Add CI testing for builds with multiple adapters #2081

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

Closed
RossBrunton opened this issue Sep 11, 2024 · 3 comments · Fixed by #2082
Closed

Add CI testing for builds with multiple adapters #2081

RossBrunton opened this issue Sep 11, 2024 · 3 comments · Fixed by #2082
Assignees
Labels
ci/cd Continuous integration/devliery

Comments

@RossBrunton
Copy link
Contributor

Currently, we run a single build per adapter (e.g. one build for OpenCL, one build for Level Zero, etc.), which can miss failures in the multi-adapter dispatcher, ur_ldrddi.cpp (e.g. #2048 ).

We should add a CI workflow for the Build & Test HW and e2e jobs that use a build that has multiple adapters enabled (although it can use only one adapter for the test).

@RossBrunton RossBrunton added the ci/cd Continuous integration/devliery label Sep 11, 2024
@RossBrunton RossBrunton self-assigned this Sep 11, 2024
@martygrant
Copy link
Contributor

(although it can use only one adapter for the test).

Could it be an entirely new job that does two test runs, one for each adapter?

@RossBrunton
Copy link
Contributor Author

@martygrant I could do that, but I'm concerned about how long the job will take to run. Once I have something working I'll have a look at how long it takes.

@pbalcer
Copy link
Contributor

pbalcer commented Sep 12, 2024

Just keep in mind that not all systems have CUDA and HIP installed, and keeping the versions of those things up-to-date might be annoying.

I think one simple solution here would be to use ONEAPI_DEVICE_SELECTOR in the tests instead of UR_ADAPTERS_FORCE_LOAD: https://github.com/oneapi-src/unified-runtime/blob/main/source/loader/ur_libapi.cpp

The builds always have at least two adapters since the mock adapter is built unconditionally.

RossBrunton added a commit to RossBrunton/unified-runtime that referenced this issue Oct 17, 2024
This expands our CI to test the loader; the dispatcher that is
used when multiple adapters are availabe.

The old "run on hardware" jobs should behave the same (they have
the loader tests disabled), but there are new "combined" jobs
with OpenCL/Level Zero + Native CPU.

Closes: oneapi-src#2081
RossBrunton added a commit to RossBrunton/unified-runtime that referenced this issue Oct 24, 2024
This expands our CI to test the loader; the dispatcher that is
used when multiple adapters are availabe.

The old "run on hardware" jobs should behave the same (they have
the loader tests disabled), but there are new "combined" jobs
with OpenCL/Level Zero + Native CPU.

Closes: oneapi-src#2081
RossBrunton added a commit to RossBrunton/unified-runtime that referenced this issue Oct 24, 2024
This expands our CI to test the loader; the dispatcher that is
used when multiple adapters are availabe.

The old "run on hardware" jobs should behave the same (they have
the loader tests disabled), but there are new "combined" jobs
with OpenCL/Level Zero + Native CPU.

Closes: oneapi-src#2081
RossBrunton added a commit to RossBrunton/unified-runtime that referenced this issue Oct 24, 2024
This expands our CI to test the loader; the dispatcher that is
used when multiple adapters are availabe.

The old "run on hardware" jobs should behave the same (they have
the loader tests disabled), but there are new "combined" jobs
with OpenCL/Level Zero + Native CPU.

Closes: oneapi-src#2081
RossBrunton added a commit to RossBrunton/unified-runtime that referenced this issue Oct 24, 2024
This expands our CI to test the loader; the dispatcher that is
used when multiple adapters are availabe.

The old "run on hardware" jobs should behave the same (they have
the loader tests disabled), but there are new "combined" jobs
with OpenCL/Level Zero + Native CPU.

Closes: oneapi-src#2081
RossBrunton added a commit to RossBrunton/unified-runtime that referenced this issue Oct 24, 2024
This expands our CI to test the loader; the dispatcher that is
used when multiple adapters are availabe.

The old "run on hardware" jobs should behave the same (they have
the loader tests disabled), but there are new "combined" jobs
with OpenCL/Level Zero + Native CPU.

Closes: oneapi-src#2081
RossBrunton added a commit to RossBrunton/unified-runtime that referenced this issue Oct 24, 2024
This expands our CI to test the loader; the dispatcher that is
used when multiple adapters are availabe.

The old "run on hardware" jobs should behave the same (they have
the loader tests disabled), but there are new "combined" jobs
with OpenCL/Level Zero + Native CPU.

Closes: oneapi-src#2081
RossBrunton added a commit to RossBrunton/unified-runtime that referenced this issue Oct 24, 2024
This expands our CI to test the loader; the dispatcher that is
used when multiple adapters are availabe.

The old "run on hardware" jobs should behave the same (they have
the loader tests disabled), but there are new "combined" jobs
with OpenCL/Level Zero + Native CPU.

Closes: oneapi-src#2081
RossBrunton added a commit to RossBrunton/unified-runtime that referenced this issue Oct 25, 2024
This expands our CI to test the loader; the dispatcher that is
used when multiple adapters are availabe.

The old "run on hardware" jobs should behave the same (they have
the loader tests disabled), but there are new "combined" jobs
with OpenCL/Level Zero + Native CPU.

Closes: oneapi-src#2081
RossBrunton added a commit to RossBrunton/unified-runtime that referenced this issue Oct 25, 2024
This expands our CI to test the loader; the dispatcher that is
used when multiple adapters are availabe.

The old "run on hardware" jobs should behave the same (they have
the loader tests disabled), but there are new "combined" jobs
with OpenCL/Level Zero + Native CPU.

Closes: oneapi-src#2081
RossBrunton added a commit to RossBrunton/unified-runtime that referenced this issue Nov 4, 2024
This expands our CI to test the loader; the dispatcher that is
used when multiple adapters are availabe.

The old "run on hardware" jobs should behave the same (they have
the loader tests disabled), but there are new "combined" jobs
with OpenCL/Level Zero + Native CPU.

Closes: oneapi-src#2081
RossBrunton added a commit to RossBrunton/unified-runtime that referenced this issue Nov 4, 2024
This expands our CI to test the loader; the dispatcher that is
used when multiple adapters are availabe.

The old "run on hardware" jobs should behave the same (they have
the loader tests disabled), but there are new "combined" jobs
with OpenCL/Level Zero + Native CPU.

Closes: oneapi-src#2081
RossBrunton added a commit to RossBrunton/unified-runtime that referenced this issue Nov 5, 2024
This expands our CI to test the loader; the dispatcher that is
used when multiple adapters are availabe.

The old "run on hardware" jobs should behave the same (they have
the loader tests disabled), but there are new "combined" jobs
with OpenCL/Level Zero + Native CPU.

Closes: oneapi-src#2081
RossBrunton added a commit to RossBrunton/unified-runtime that referenced this issue Nov 5, 2024
This expands our CI to test the loader; the dispatcher that is
used when multiple adapters are availabe.

The old "run on hardware" jobs should behave the same (they have
the loader tests disabled), but there are new "combined" jobs
with OpenCL/Level Zero + Native CPU.

Closes: oneapi-src#2081
RossBrunton added a commit to RossBrunton/unified-runtime that referenced this issue Nov 5, 2024
This expands our CI to test the loader; the dispatcher that is
used when multiple adapters are availabe.

The old "run on hardware" jobs should behave the same (they have
the loader tests disabled), but there are new "combined" jobs
with OpenCL/Level Zero + Native CPU.

Closes: oneapi-src#2081
RossBrunton added a commit to RossBrunton/unified-runtime that referenced this issue Nov 6, 2024
This expands our CI to test the loader; the dispatcher that is
used when multiple adapters are availabe.

The old "run on hardware" jobs should behave the same (they have
the loader tests disabled), but there are new "combined" jobs
with OpenCL/Level Zero + Native CPU.

Closes: oneapi-src#2081
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ci/cd Continuous integration/devliery
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants