WebSafe 3.7github.com
|
|
🏠
Skip to content

Implement "sandwich product" matrix operations#798

Draft
devinamatthews wants to merge 1 commit intomasterfrom
adat
Draft

Implement "sandwich product" matrix operations#798
devinamatthews wants to merge 1 commit intomasterfrom
adat

Conversation

@devinamatthews
Copy link
Member

This PR adds new BLAS-like level 3 operations which include a diagonal matrix "sandwiched" between two other matrices:

  • bli_gemdm: C = alpha*A*D*B + beta*C
  • bli_gemdmt: C = alpha*tri[ul](A*D*B) + beta*C
  • bli_syrkd: C = alpha*A*D*A^T + beta*C
  • bli_herkd: C = alpha*A*D*A^H + beta*C
  • bli_syr2kd: C = alpha*(A*D*B^T + B*D*A^T) + beta*C
  • bli_her2kd: C = alpha*A*D*B^H + conj(alpha)*B*conj(D)*A^H + beta*C

Currently, there are the following things to do:

  • Implement remaining kernels needed for mixed-precision/mixed-domain and 1m.
  • Integrate into the BLIS testsuite.
  • herkd: D has to be real (not checked or implemented in packing)
  • her2kd: need to use conj(D) in second product
@fgvanzee fgvanzee changed the title Implement "sandich product" matrix operations Implement "sandwich product" matrix operations Feb 28, 2024
…*D*A^{T,H} (syrk2d/her2kd) operations (and gemdmt for good measure). Some rough edges still:

- Complex herk2 and her2kd will not work.
- No mixed-type/mixed-domain or 1m.
- Not integrated into testsuite yet.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

1 participant

Comments