- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
This issue got to do mostly with small size problems, in the case I encountered 70% of the time of DTRSM (with a 3x3 matrix with 36 rhs vectors to solve) was spent in the input error checking, but probably affect most mkl functions for small problems .
The input error checking code call LSAME many times with different parameters, so the branch predictor has no chance. Inlineing it would prevent that, and probably it can be made to have no conditional branches at all, since all the non standard ascii coding testing can be eliminated.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3x3 is not the typical size to use in blas, but that what PARDISO is using, so this issue got some relevance for some MKL users. Since most of these functions are called with the same input type in many cases, inlineing will have 100% correct prediction for this code, without match effort
nounit = lsame_(diag, "N");
upper = lsame_(uplo, "U");
info = 0;
if (! lside && ! lsame_(side, "R")) {
info = 1;
} else if (! upper && ! lsame_(uplo, "L")) {
info = 2;
} else if (! lsame_(transa, "N") && ! lsame_(transa, "T")
&&! lsame_(transa, "C"))
{
info = 3;
} else if (! lsame_(diag, "U") && ! lsame_(diag, "N")) {
info = 4;
} else if (*m < 0) {
info = 5;
} else if (*n < 0) {
info = 6;
I think it worth considering
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Message Edited by bsgreer on 11-30-2005 03:44 PM

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page