Skip to content

Add SYCL backend for MultiplyByElmtInvMass using oneMKL

Issue/feature addressed

Add a SYCL backend for the MultiplyByElmtInvMass operator based using the SYCL MKL library. Implementation is identical to the CUDA backend.

Proposed solution

Implementation

The #include "oneapi/mkl.hpp" is included in a separate OneMKL.cpp file and linked using a OneMKL.hpp header file to avoid collision with the existing blas library.

Remark: There is a strong potential to have an unified DeviceStdMat implementation for CUDA and SYCL (and potentially Kokkos) backend.

Tests

Suggested reviewers

@jreed Just keeping you in the loop.

Notes

Operator working on typhoon using serial SYCL backend. Not working on GPU as the MKL library installed on typhoon is probably not compiled with provision for CUDA device. So, implementation is currently not tested with the CUDA SYCL backend.

Checklist

  • Functions and classes, or changes to them, are documented.
  • [ ] User guide/documentation is updated.
  • [ ] Changelog is updated.
  • Suitable tests added for new functionality.
  • Contributed code is correctly formatted. (See the contributing guidelines).
  • License added to any new files.
  • No extraneous files have been added (e.g. compiler output or test data files).
Edited by Jacques Xing

Merge request reports

Loading