Open
Description
When specifying a schedule via direct concrete index notation, TACO assumes that the postorder traversal of tensors in the index expression will match the postorder traversal of tensors in the concrete index notation. This might be true if the concrete index notation is generated via TACO scheduling commands, but it is certainly not true if the concrete index notation is specified explicitly. The offending line in TACO is roughly
Line 812 in 0ede002
compute()
which chooses a tensor ordering to pass to the compiled code, which expects the tensors in a different order.
A robust solution would be to sort the tensors by their name in both the compute()
function and the compiled code.