This is an archive of the discontinued LLVM Phabricator instance.

[ARM] Armv8.6-a Matrix Mul cmd line support
ClosedPublic

Authored by LukeGeeson on Apr 10 2020, 6:47 AM.

Details

Summary

This patch upstreams support for the Armv8.6-a Matrix Multiplication
Extension. A summary of the features can be found here:

https://community.arm.com/developer/ip-products/processors/b/processors-ip-blog/posts/arm-architecture-developments-armv8-6-a

This patch includes:

  • Command line options to enable these features with +i8mm, +f32mm, or f64mm

Note: +f32mm and +f64mm are optional and so are not enabled by default

This is part of a patch series, starting with BFloat16 support and
the other components in the armv8.6a extension (in previous patches
linked in phabricator)

Based on work by:

  • Luke Geeson
  • Oliver Stannard
  • Luke Cheeseman

Diff Detail

Event Timeline

LukeGeeson created this revision.Apr 10 2020, 6:47 AM

harbour master builds, unit tests passing, failures down to linting

DavidSpickett added a subscriber: DavidSpickett.

Note: +f32mm and +f64mm are optional and so have to be enabled by default

I think I know what you mean, but "and so are not enabled by default" would be clearer.

Also to double check, does f64mm imply f32mm? (not sure if there's an updated ARMARM yet that would tell me that)

Or in other words, does amrv8.6-a+sve imply +f32mm *and* +f64mm?

Note: +f32mm and +f64mm are optional and so have to be enabled by default

I think I know what you mean, but "and so are not enabled by default" would be clearer.

Also to double check, does f64mm imply f32mm? (not sure if there's an updated ARMARM yet that would tell me that)

Since these options can be enabled independently pre-8.6a in general the answer is no. I'll add a comment noting why we only only imply f32mm in AArch64.cpp

Or in other words, does amrv8.6-a+sve imply +f32mm *and* +f64mm?

Also no here, as an example the xml has different checks for fmmla https://developer.arm.com/docs/ddi0596/latest/a64-sve-instructions-alphabetic-order/fmmla-floating-point-matrix-multiply-accumulate

  • updated commit message to reflect sve=>f32/64 implication
  • added comment in AArch64.cpp to that effect
LukeGeeson edited the summary of this revision. (Show Details)Apr 14 2020, 8:56 AM
DavidSpickett accepted this revision.Apr 15 2020, 12:39 AM
This revision is now accepted and ready to land.Apr 15 2020, 12:39 AM
This revision was automatically updated to reflect the committed changes.