Closed mtfishman closed 3 years ago
Merging #53 (6170aa5) into master (649930a) will increase coverage by
0.55%
. The diff coverage is50.79%
.
@@ Coverage Diff @@
## master #53 +/- ##
==========================================
+ Coverage 34.87% 35.43% +0.55%
==========================================
Files 22 22
Lines 2523 2588 +65
==========================================
+ Hits 880 917 +37
- Misses 1643 1671 +28
Impacted Files | Coverage Δ | |
---|---|---|
src/blocksparse/blocksparsetensor.jl | 47.81% <0.00%> (ø) |
|
src/contraction_logic.jl | 51.17% <51.61%> (+1.59%) |
:arrow_up: |
Continue to review full report at Codecov.
Legend - Click here to learn more
Δ = absolute <relative> (impact)
,ø = not affected
,? = missing data
Powered by Codecov. Last update 649930a...6170aa5. Read the comment docs.
This adds some microoptimizations to the contraction logic code. The main strategy is minimizing the number of
getfield
calls to theContractionProperties
mutable struct by avoiding things likeprops.Acstart
in loops. Here is a benchmark:on this branch gives:
while on master:
This case is pretty extreme since it involves contracting many very small blocks, so the contraction logic really dominates.
Most of the rest of the time spent in this example is block sparse logic like creating the block-offset list for the output tensor.