-
Notifications
You must be signed in to change notification settings - Fork 788
[ESIMD] Implement the new non-experimental low-level API for DPAS #6834
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
Conversation
08028cb
to
96ae9bd
Compare
int N, int BN, int AN> | ||
__ESIMD_NS::simd<T, N> dpasw(__ESIMD_NS::simd<BT, BN> B, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I realized there is a major problem here: This second version of dpasw() (without src matrix C) must not accept the 'N' parameter, but instead must compute it. It must be similar to 2nd version of dpas() on the line 220 above.
I'll fix it shortly.
int N, int BN, int AN> | |
__ESIMD_NS::simd<T, N> dpasw(__ESIMD_NS::simd<BT, BN> B, | |
int BN, int AN> | |
auto dpasw(__ESIMD_NS::simd<BT, BN> B, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I resolved it in this additional fix: 25db74d
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, as we already reviewed the code internally.
But, as a follow-up commit please improve user documentation:
- API usage example right in the doxygen, as this is extremely complex API
- allowed element types and how they are modeled, in which cases user must specify precision etc
- all constraints on the template parameters
- specialize them by architecture (PVC, ACM)
- element packing details
The new DPAS API are added to the new esimd::xmx (Xe Matrix eXtension) namespace. The old/experimental DPAS API is marked as deprecated and now it simply calls the new DPAS API. The DPAS emulation sequences has got the automatic detection of the execution size instead of being defined through the macro ESIMD_XE_HPC. Signed-off-by: Vyacheslav N Klochkov <[email protected]>
Signed-off-by: Vyacheslav N Klochkov <[email protected]>
c4b194f
to
25db74d
Compare
This fix doesn't need to wait for the corresponding tests-PR CI here (intel/llvm-test-suite#1281) |
The new DPAS API are added to the new esimd::xmx (Xe Matrix eXtension)
namespace.
The old/experimental DPAS API is marked as deprecated and now it
simply calls the new DPAS API.
The DPAS emulation sequences has got the automatic detection of
the execution size instead of being defined through the macro ESIMD_XE_HPC.
Signed-off-by: Vyacheslav N Klochkov [email protected]