You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The coordinate [0, 0, 0, 0] repeats multiple times, but the coordinate [1, 0, 0, 0] is missing.
The results are completely incorrect either. The generated kernel completely ignores the += operator and leaks the memory of the data already stored in C.
The minimal reproducible example contains four files:
main.c # Main file
output_correct.txt # What the output should be, produced using NumPy
output_wrong.txt # What TACO actually produces
taco_tensor_t.h # Copied from taco/include/taco/taco_tensor_t.h
The issue
With the following tensor contraction operation (Originated from the CCSD routine used in quantum chemistry):
I generate a C kernel using the following TACO command:
./build/bin/taco \ 'a020aaaa(p1va, p3va, h3oa, h2oa) += 0.5 * a004(p2va, p3va, h3oa, h1oa) * t2aaaa(p1va, p2va, h1oa, h2oa)' \ -c -f=a020aaaa:uccq -f=a004:uccq -f=t2aaaa:uccq
Then I allocate three COO tensors, each filled with initialization values:
and call the
compute
function generated by TACO:However, the computation result looks like this:
The coordinate
[0, 0, 0, 0]
repeats multiple times, but the coordinate[1, 0, 0, 0]
is missing.The results are completely incorrect either. The generated kernel completely ignores the
+=
operator and leaks the memory of the data already stored inC
.Minimal reproducible example
I have provided a minimal reproducible example at: https://gist.github.com/m13253/68880026fba40b65936287fbe08766ce
The minimal reproducible example contains four files:
Reference commands to build and run the example:
The text was updated successfully, but these errors were encountered: