Add SYCL backend for MultiplyByElmtInvMass using oneMKL
requested to merge CFD-Xing/nektar:feature/redesign-add-one_mkl-multiplybyelmtinvmass into feature/redesign
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