-
Notifications
You must be signed in to change notification settings - Fork 84
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
wrong results using blasfeo_dgemv_t - HP and REFERENCE #27
Comments
Thanks for reporting, I guess the problem is that you passed the same chunk of memory both for result
Despite the fact With the following modifications to your code I'm getting the expected both with HP and REF,
Thanks again for reporting we will add more documentation about this kind of unexpected behaviors. |
Oops, I should have checked this before.. |
Yep it's true, x and z can not be the same. The reason is that, the elements of x will change as soon as the elements of z are computed. x is not stored internally, so if x and z are the same vector, you see that this can not work. The same applies for most other routines (as e.g. dgemm), with the only exception of triangular matrices. In that case, it is possible to multiply or solver by a triangular matrix "in place" by performing the computations in the proper order. This comes from the triangular shape of the matrix: on the edge side, only one element of x is involved, and once the operation is performed, it can be overwritten with the result z. The standard BLAS interface acknowledge this by requiring to overwrite the result for triangular matrices; the BLASFEO interface allows for this, but does not force it. |
Hey guys,
I found a bug in blasfeo_dgemv_t:
I am using BLASFEO_TARGET = X64_INTEL_SANDY_BRIDGE.
Running the following example, I get wrong results using both HIGH PERFORMANCE and REFERENCE:
REFERENCE prints:
whereas HP prints:
The correct result should be:
I hope this helps fixing stuff!
The text was updated successfully, but these errors were encountered: