- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
machine: MAC
mkl version: 2019.4.233
compiler: clang-1001.0.46.4
LAPACKE_dtpqrt:
layout row major
prameters m = n = l = lda = ldb = ldt = 12
if we set nb > 1,
the routines generates nan in the lower part of the triangular matrices stored in t.
This makes LAPACKE_dtpmqrt returns an error indicating invalid t array.
LAPACKE_dtpmqrt:
layout row major, left side multiplication, no transposition
case 1:
prameters m = k = n = l = ldv = ldt = lda = ldb = 12
If nb != k
The routines does not compute the correct product.
case 2:
prameters m = k = l = nb = ldv = ldt = 12,
n = lda = ldb
if n != k
the routines returns an error -14 meaning that lda does not have a valid value,
however, it should be valid
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Could you give us an example of this case which we may compile, run and investigate the problem on our side?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Here I attach the file.
I compute the QR decomposition of the matrix [a ; b] (vertical block concatenation) by using dtpqrt.
I set a matrix [c ; d] to match the first n columns of the identity and apply Q from the left by using dtpmqrt.
I get the error from dtpmqrt.
I form the concatenated matrices from their original data (i.e., before any computation).
I call dgeqrf and dormqr to compare data and clearly it is wrong
Note: In this example I didn't get nans from dtpqrt in my other code I did have some.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks, the problem is reproduced on with mkl 2019 u4. We will investigate the case and keep this thread updated.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
ierr = LAPACKE_dtpmqrt(LAPACK_ROW_MAJOR, 'L', 'N', k, n, k, k, nb, b, k, t, k, c, m, d, n); // passed lda == m
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
pls look at the mkl reference : https://software.intel.com/en-us/mkl-developer-reference-c-tpmqrt
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Following the mkl reference the argument lda is the leading dimension of the array c in the code which is equal to n in that case (number of columns). I do pass this argument.
Excuse me I did not get what is wrong.
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page