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

When trying to use oneMKL with the portBLAS backend there is a check for Intel, AMD or Nvidia GPU. #542

Closed
al3x-jp opened this issue Jul 24, 2024 · 4 comments
Assignees
Labels
feature A request to add a new feature

Comments

@al3x-jp
Copy link

al3x-jp commented Jul 24, 2024

Summary

When trying to use oneMKL with the portBLAS backend, the current code structure checks for an Intel, AMD or NVidia GPU, which if not found causes an unsupported error. It is understood that portBLAS could work on any GPU that supports OpenCL.

Version

HEAD of oneMKL Tree

Environment

Ubuntu 22.04 with PowerVR GPU

Steps to reproduce

Build oneMKL with "portBLAS" support specified and then execute the example GEMM test on a GPU that isn't Intel, AMD or Nvidia, but that supports SYCL OpenCL backend (e.g., a PowerVR GPU).

To build:
cmake .. -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang -DENABLE_MKLGPU_BACKEND=False -DENABLE_MKLGPU_BACKEND=False -DENABLE_PORTBLAS_BACKEND=True -DENABLE_CUBLAS_BACKEND=False -DENABLE_ROCBLAS_BACKEND=False -DENABLE_NETLIB_BACKEND=False -DBUILD_FUNCTIONAL_TESTS=False -DBUILD_EXAMPLES=True -DENABLE_MKLCPU_BACKEND=False

To run:
ONEAPI_DEVICE_SELECTOR=opencl:gpu SYCL_PI_TRACE=1 ./example_blas_gemm_usm

Observed behaviour

The BLAS GEMM example prints the following message when run on a PowerVR OpenCL Device:
"oneMKL: PowerVR B-Series BXT-32-1024 is not supported"

Expected behaviour

It is expected that portBLAS could work on any GPU that supports the SYCL OpenCL backend.

@Rbiessy Rbiessy added the feature A request to add a new feature label Jul 24, 2024
@Rbiessy Rbiessy self-assigned this Jul 24, 2024
@Rbiessy
Copy link
Contributor

Rbiessy commented Jul 24, 2024

Thank you for this issue @al3x-jp. You are right currently the oneMKL structure does not allow a backend to support devices that are not in a list of supported device.
I think we should have some kind of generic device that would allow portBLAS and portFFT backends to run on any SYCL device. These devices won't necessarily be "supported" until we have a CI testing them but they could be documented as expected to work.
We'll let you know once we are able to work on this issue.

@hjabird
Copy link
Contributor

hjabird commented Aug 7, 2024

I've started looking into this issue.

@hjabird
Copy link
Contributor

hjabird commented Aug 8, 2024

I've created a PR for this, see above. With this PR, only portBLAS is enabled.

@Rbiessy
Copy link
Contributor

Rbiessy commented Oct 2, 2024

Closing this since has been addressed by #566. Feel free to re-open if there are more issues with this.

@Rbiessy Rbiessy closed this as completed Oct 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature A request to add a new feature
Projects
None yet
Development

No branches or pull requests

3 participants