-
Notifications
You must be signed in to change notification settings - Fork 7
Closed
Description
for D=AB+C
when C=D
the reference implementation test routines using TBLIS produce wrong results as they have the operation implemented in two steps
D=AB
D+=C
whereas for C=D this should be
D=C
D+=A*B
Another problem is that the tests did not detect this. A test case that detects this should be added as this is a very common use case.
I fixed the problem itself in the branch jan-tblis in test/test.cpp by switching the order of these operations:
tblis::tblis_tensor_mult(tblis_single, NULL, tblis_A_reduced, tblis_idx_A_reduced, tblis_B_reduced, tblis_idx_B_reduced, &tblis_D, tblis_idx_D);
tblis::tblis_tensor_add(tblis_single, NULL, &tblis_C, tblis_idx_C, &tblis_D, tblis_idx_D);
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels