Skip to content
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

oneMKL info #18

Open
mgates3 opened this issue Jan 12, 2023 · 1 comment
Open

oneMKL info #18

mgates3 opened this issue Jan 12, 2023 · 1 comment
Labels
deferred Deferred until 3rd party fix

Comments

@mgates3
Copy link
Collaborator

mgates3 commented Jan 12, 2023

oneMKL throws exceptions, which contain the info. We don't currently extract this info. But also, for an async routine, it seems exceptions can't handle info > 0 values generated due to numerical values in the matrices. See https://spec.oneapi.io/versions/latest/elements/oneMKL/source/domains/lapack/getrf.html
"Exception is thrown in case of problems during calculations. The info code of the problem can be obtained by info() method of exception object:
...
If info = i, U_ii is 0. The factorization has been completed, but is exactly singular."

Also, those are not necessarily errors: getrf with info > 0 is perfectly valid, you just can't do triangular solves with the resulting LU. Therefore, the LAPACK++ convention has been to return those info > 0 codes, not throw an exception. Matlab doesn't report an error for this case:

>> A = rand( 3, 3 );
>> A(:, 2) = 0;
>> [L, U, P] = lu( A );
>> U
U =
    0.7577         0    0.0318
         0         0    0.2457
         0         0    0.0297
>> norm( L*U - P*A )
ans =
     0

See todos in PR #17.

@mgates3 mgates3 mentioned this issue Jan 12, 2023
@mgates3
Copy link
Collaborator Author

mgates3 commented Feb 16, 2023

Confirmed that this can't be resolved until / unless Intel changes the oneMKL spec to add an info parameter.

@mgates3 mgates3 added the deferred Deferred until 3rd party fix label Feb 16, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
deferred Deferred until 3rd party fix
Projects
None yet
Development

No branches or pull requests

1 participant