-
Notifications
You must be signed in to change notification settings - Fork 10
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
Cleanup Wrappers and Tests #37
base: master
Are you sure you want to change the base?
Conversation
and some whitespace cleanups
d8bce50
to
a2b6e6b
Compare
@KristofferC Considering |
Codecov Report
@@ Coverage Diff @@
## master #37 +/- ##
=========================================
Coverage ? 10.41%
=========================================
Files ? 6
Lines ? 1258
Branches ? 0
=========================================
Hits ? 131
Misses ? 1127
Partials ? 0 📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
774508b
to
d08f03c
Compare
d08f03c
to
83b5cee
Compare
replace implicit counter increment with method call (so that the behaviour could be changed globally)
- separate method defs for vector and matrix instead of a branch within a single method - don't redefine Base methods that already call MKLSparse methods - describe_and_unwrap() for deduplicating the sparse matrix preparation logic
to be compatible with 3-arg ldiv!() in base Julia; add tests for 3- and 4-arg ldiv!()
for keeping github-actions up-to-date
83b5cee
to
f01272c
Compare
Either Julia nightly was fixed on macOS or with the given explicitly specified random seed the multiplication error does not manifest itself. I think the PR is ready for review. cc @KristofferC |
@alyst I should be able to review the PR next week. |
return cscsm!($tchar, $T(α), matdescra(A), _get_data(A), B, C) | ||
end | ||
end | ||
LinearAlgebra.ldiv!(C::StridedVector{$T}, A::$AT, B::StridedVector{$T}, α::Number) = |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could we document this? It matches mul!
so it's not entirely unexpected
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You mean add the docstring?
bump. I would really appreciate if someone can review the PR :) |
@alyst Long pending here, but seems like we should get this merged if you still have the bandwidth for it. |
This is a subset of #30 excluding the
Matrix * SparseMatrix
:mkl_call(funcname, T, args...)
generated function that automatically transforms templates likemkl_Tcscmv
into appropriate MKLSparse function names for a specific input types (e.g.mkl_dcscmv
)Base.*
was removed, I've also added comments explaining the motivation for specific LinearAlgrebra/Base (re)definitionsldiv!(a, A, B, C)
toldiv!(C, A, B, a)
to be compatible with 3-argldiv!()
already in Base (AFAIK 4-arg is only defined in MKLSparse). This would break any packages/script that use MKLSparse.jl 4-argldiv!()
, but this should be a rather exotic case.@test_blas
macro replaced by conventional@test
macro in combination with@blas
macro that allows more fine-grained checks of whether Sparse BLAS MKL methods are being calledmaximum(abs.(...)) <= eps
is replaced with≈ atol=...
No new version of MKLSparse.jl was tagged after #31 got merged. It could be done before/after this PR.