heat
heat copied to clipboard
Batched matrix multiplication.
split dimension is a batch dimension
Due Diligence
- General:
- [ ] base branch must be
main
for new features, latest release branch (e.g.release/1.3.x
) for bug fixes - [ ] title of the PR is suitable to appear in the Release Notes
- [ ] base branch must be
- Implementation:
- [ ] unit tests: all split configurations tested
- [ ] unit tests: multiple dtypes tested
- [ ] documentation updated where needed
Description
Issue/s resolved: #
Changes proposed:
Type of change
Memory requirements
Performance
Does this change modify the behaviour of other functions? If so, which?
yes / no
Thank you for the PR!
Codecov Report
Attention: Patch coverage is 94.17040%
with 13 lines
in your changes missing coverage. Please review.
Project coverage is 91.96%. Comparing base (
a774559
) to head (35ff132
). Report is 60 commits behind head on main.
Files | Patch % | Lines |
---|---|---|
heat/core/linalg/basics.py | 94.17% | 13 Missing :warning: |
Additional details and impacted files
@@ Coverage Diff @@
## main #1261 +/- ##
==========================================
+ Coverage 91.91% 91.96% +0.05%
==========================================
Files 80 80
Lines 11942 12161 +219
==========================================
+ Hits 10976 11184 +208
- Misses 966 977 +11
Flag | Coverage Δ | |
---|---|---|
unit | 91.96% <94.17%> (+0.05%) |
:arrow_up: |
Flags with carried forward coverage won't be shown. Click here to find out more.
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
Sieht gut aus soweit :+1:
Vorschläge für die weitere Arbeit:
- Wenn du oben neben "codecov" (rotes X) auf Details und dann auf "View this Pull Request on Codecov" gehst, kannst du sehen, welche Zeilen deiner Änderungen nicht getestet werden bisher. Entsprechende Tests kannst du in
heat/core/linalg/tests/test_basics.py
unterbringen. Mit diesem Fall wäre dann gebatchte Matrizenmultiplikation für den Fall abgedeckt, dass die LA-Dimensionen nicht gesplitted sind. Dies entspricht quasi dem Hinzufügen von Batchdimensionen zum Fall "2xsplit=None
" im ursprünglichen Code. - Als nächstes könnten wir den Fall angehen, dass zu den anderen 8 (?) bestehenden Fällen Batch-dimensionen hinzugefügt werden; nun wäre allerdings die Batchdimension nicht gesplitted und dafür evtl. die LA-Dimension. Mit etwas Glück lässt sich das recht einfach aus dem bestehenden Code erzeugen, da ja PyTorch bereits gut mit Batches arbeiten kann.
- Den Fall, dass einmal eine LA-Dimension gesplitted ist und einmal eine Batchdimension gesplitted ist, würde ich ausschließen und eine enstprechende Fehlermeldung ausgeben.
Thank you for the PR!
Thank you for the PR!
Thank you for the PR!
Thank you for the PR!
Thank you for the PR!
Thank you for the PR!
Thank you for the PR!
Thank you for the PR!
Thank you for the PR!
Thank you for the PR!
Thank you for the PR!
Thank you for the PR!
Thank you for the PR!
Thank you for the PR!
Thank you for the PR!
Thank you for the PR!
Thank you for the PR!
Thank you for the PR!
Thank you for the PR!
Thank you for the PR!
Thank you for the PR!
Thank you for the PR!
Thank you for the PR!
Thank you for the PR!
Thank you for the PR!
Thank you for the PR!