[SPARSE] Add support for sparse TRSV with MKLCPU backend#407
[SPARSE] Add support for sparse TRSV with MKLCPU backend#407Rbiessy merged 16 commits intouxlfoundation:developfrom Rbiessy:romain/sparse_trsv
Conversation
|
Tests using a recent MKL and DPCPP build: sparse_trsv_log.txt |
gajanan-choudhary
left a comment
There was a problem hiding this comment.
TRSV parts look fine to me. Depending on how the optimize_gemm discussions go in #374, this PR may or may not need further changes.
Co-authored-by: Gajanan Choudhary <gajanan@utexas.edu>
gajanan-choudhary
left a comment
There was a problem hiding this comment.
All files other than the unit tests are fine. I have a few suggestions for the tests.
|
Note for the reviewers, I have made a change that affects the other sparse_blas tests to introduce |
@Rbiessy, it looks from your log_sparse_blas-cpu.txt file that the only tests that ran were GEMV. All GEMM and TRSV tests appear to have been skipped. Shouldn't all of them be running and passing? |
gajanan-choudhary
left a comment
There was a problem hiding this comment.
LGTM except for the EXPECT_TRUE_OR_FUTURE_SKIP related changes which make the test logs misleading because:
bool skip = test_helper_transpose<fpType>(GetParam());
if (skip) {
// Mark that some tests were skipped
GTEST_SKIP();
}
If there are 10 input combinations that are run and 9 pass, 1 is skipped, then the entire test is marked as skipped. There's a way to also pass a string to GTEST_SKIP(). We should use that to clearly indicate how many tests passed, how many tests failed, and how many were skipped.
I see what happened there. Multiple tests are run, but some may throw some acceptable exception such as For that matter, I don't think a throwing an acceptable exception such as |
On second thought, I take that back. I myself don't know what's the appropriate thing to do here. It is a skipped test, but if we mark that set as skipped, then it's misleading. If we mark it as passed, then it may appear to some as if there's no exception being thrown and that the input combination is supported. Maybe counting passed, skipped, failed tests is the way to go? Is there a better way? |
|
@gajanan-choudhary regarding the issue that you mention, I agree that this is not ideal but this is the current way the tests are done for other domains as well. |
If none of the tests are skipped, then why do the log files such as log_sparse_blas-cpu.txt you posted earlier have "Skipped" written in them? I understand that it is not that easy to have each test run just 1 configuration; that's fine, but at least can we have to logs print how many configurations were run, how many passed/failed/skipped? There's an option to pass a custom print to gtest_skip(), for instance. We could cascade the count of test statuses to the final return point. |
|
@gajanan-choudhary, the log I attached was using oneapi 2024.0. This one has skipped configurations for gemm when |
gajanan-choudhary
left a comment
There was a problem hiding this comment.
LGTM!
I do have a final minor suggestion of adding a comment above the gtest_skip() call indicating that the printing may not work well with ctest, in which case running the binary with the --terse-output flag should print things. Just so that this info doesn't get lost in history if someone tries digging in!
Thanks for going above and beyond in seeing through my change requests on this PR. I really appreciate your effort in making the product better! Great work on the PR!
…on#407) Co-authored-by: Gajanan Choudhary <gajanan@utexas.edu>
Description
Add support for sparse TRSV using MKLCPU.
Relies on #403
All Submissions
New features