Skip to content

Conversation

@ClementPernet
Copy link
Member

Although the architecture of fgemm is written with genericity in mind (wrt the base field), the management of delayed bounds in Strassen-Winograd's algorithm was somehow hardcoded there, which made this code unusable for any base field that does not complied with the Delayed or Lazy categories (delaying modular reductions).

This PR fixes this issue by

  • encapsulating some treatment on the bounds in template functions which are empty for the generic cases
  • duplicating (template specialization) 2 functions only: the Strassen-Winograd schedule, where the manipulation on the bounds was too complex to be abstracted into functions.

With this branch applied, no performance regression were noted and test-fgemm now support ModularExtended which is not a DelayedTag category.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants