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

[SYCL][CUDA][HIP] Report every device in its own platform #4571

Merged
merged 1 commit into from
Sep 15, 2021

Conversation

npmiller
Copy link
Contributor

The CUDA and HIP plugins don't currently support having multiple devices
in the same context, therefore this patch re-works the platform creation
to place each device in its own platform to represent that.

This should be changed back when multi-device support is added later on.

This fixes #4541 as suggested by @romanovvlad

The CUDA and HIP plugins don't currently support having multiple devices
in the same context, therefore this patch re-works the platform creation
to place each device in its own platform to represent that.

This should be changed back when multi-device support is added later on.
@npmiller npmiller requested review from smaslov-intel and a team as code owners September 14, 2021 15:29
@bader bader added cuda CUDA back-end hip Issues related to execution on HIP backend. runtime Runtime library related issue labels Sep 14, 2021
Copy link
Contributor

@steffenlarsen steffenlarsen left a comment

Choose a reason for hiding this comment

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

LGTM!

@dm-vodopyanov dm-vodopyanov merged commit 8dddb11 into intel:sycl Sep 15, 2021
alexbatashev added a commit to alexbatashev/llvm that referenced this pull request Sep 18, 2021
* upstream/sycl: (36 commits)
  [SYCL] Add SYCL2020 target::device enumeration value (intel#4587)
  [SYCL][Doc] Update ITT instrumentation docs (intel#4503)
  [SYCL][L0] Make all L0 events have device-visibility (intel#4534)
  [SYCL] Updated Level-Zero backend spec according to SYCL 2020 standard (intel#4560)
  [SYCL] Add error_code support for SYCL 1.2.1 exception classes (intel#4574)
  [SYCL][CI] Provide --ci-defaults option for config script (intel#4583)
  [CI] Switch GitHub Actions to Ubuntu 20.04 (intel#4582)
  [SYCL][CUDA] Fix context clearing in PiCuda tests (intel#4483)
  [SYCL] Hide SYCL service kernels (intel#4519)
  [SYCL][L0] Fix mismatched ZE call count (intel#4559)
  [SYCL] Remove function pointers extension (intel#4459)
  [GitHub Actions] Uplift clang version in post-commit validation (intel#4581)
  [SYCL] Ignore usm prefetch dummy flag (intel#4568)
  [SYCL][Group algorithms] Add group sorting algorithms implementation (intel#4439)
  [SYCL] Resolve name clash with a user defined symbol (intel#4570)
  [clang-offload-wrapper] Do not create .tgtimg section with -emit-reg-funcs=0 (intel#4577)
  [SYCL][FPGA] Remove deprecated attribute functionality (intel#4532)
  [SYCL] Remove _class aliases (intel#4465)
  [SYCL][CUDA][HIP] Report every device in its own platform (intel#4571)
  [SYCL][L0] make_device shouldn't need platform as an input (intel#4561)
  ...
npmiller added a commit to npmiller/llvm that referenced this pull request Jan 17, 2022
This fixes the `USM/pointer_query.cpp` test from `llvm-test-suite` for
HIP.

For HIP the code was using the device pointer to index the device array
for some reason, which is obviously incorrect, now it should be using
the correct property to get the device index on the hardware.

In addition for both HIP and CUDA the query was using the device index
to index into the array of devices on the platform, this is incorrect
since intel#4571 which moved every device in its own platform. Therefore to
get the correct device we now need to use the index on the list of
platforms, and then `0` on the list of devices.
bader pushed a commit that referenced this pull request Jan 18, 2022
This fixes the `USM/pointer_query.cpp` test from `llvm-test-suite` for
HIP.

For HIP the code was using the device pointer to index the device array
for some reason, which is obviously incorrect, now it should be using
the correct property to get the device index on the hardware.

In addition for both HIP and CUDA the query was using the device index
to index into the array of devices on the platform, this is incorrect
since #4571 which moved every device in its own platform. Therefore to
get the correct device we now need to use the index on the list of
platforms, and then `0` on the list of devices.
t4c1 added a commit to t4c1/llvm that referenced this pull request May 23, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cuda CUDA back-end hip Issues related to execution on HIP backend. runtime Runtime library related issue
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Default context has multiple devices which is not supported by CUDA and HIP plugins
5 participants