- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Can someone help me ?
to do sparse matrix-matrix level 3 product I looked upt the sparse blas library index, but I could only find the product of
SPARSE x DENSE matrix case.
are there any function for SPARSE X SPARSE Level 3 function ?
Thank you.
Joon.
to do sparse matrix-matrix level 3 product I looked upt the sparse blas library index, but I could only find the product of
SPARSE x DENSE matrix case.
are there any function for SPARSE X SPARSE Level 3 function ?
Thank you.
Joon.
Link Copied
4 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - kimjoonshikgmail.com
Can someone help me ?
to do sparse matrix-matrix level 3 product I looked upt the sparse blas library index, but I could only find the product of
SPARSE x DENSE matrix case.
are there any function for SPARSE X SPARSE Level 3 function ?
Thank you.
Joon.
to do sparse matrix-matrix level 3 product I looked upt the sparse blas library index, but I could only find the product of
SPARSE x DENSE matrix case.
are there any function for SPARSE X SPARSE Level 3 function ?
Thank you.
Joon.
Hi,
what about routines mkl_?csrmultd and mkl_?csrmultcsr? The docs read:
The mkl_?csrmultcsr routine performs a matrix-matrix operation defined as C := op(A)*B
where:
A, B, C are the sparse matrices in the CSR format (3-array variation);
op(A) is one of op(A) = A, or op(A) =A', or op(A) = conjg(A') .
The routine works correctly if and only if the column indices in sparse matrix representations of matrices A and B are arranged in the increasing order for each row. If not, use the parameter sort (see below) to reorder column indices and the corresponding elements of the input matrices.
Is that what you're looking for?
A.
Gennady, is the table Sparse BLAS Level 2 and Level 3 Routines correct for mkl_?csradd and mkl_?csrmultcsr. It states that both ...Computes the sum of two sparse matrices stored in the CSR format (3-array variation), which is probably wrong for the latter.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you for the answer I appreciate, I did not know this function,
by the way, then,for the output c in c = a x b,
how do we determine the size of the array for the result cto allocate memory ?
Don't we need to allocate memory for c when we use the function csrmultcsr ?
Thank you.
Joon.
by the way, then,for the output c in c = a x b,
how do we determine the size of the array for the result cto allocate memory ?
Don't we need to allocate memory for c when we use the function csrmultcsr ?
Thank you.
Joon.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - kimjoonshikgmail.com
Thank you for the answer I appreciate, I did not know this function,
by the way, then,for the output c in c = a x b,
how do we determine the size of the array for the result cto allocate memory ?
Don't we need to allocate memory for c when we use the function csrmultcsr ?
Thank you.
Joon.
by the way, then,for the output c in c = a x b,
how do we determine the size of the array for the result cto allocate memory ?
Don't we need to allocate memory for c when we use the function csrmultcsr ?
Thank you.
Joon.
"Everything must go somewhere", so ... you need (to allocate). There is a parameter (input):
nzmax INTEGER. The length of the arrays c and jc.
This parameter is used only if request=0 (means here multiplication). The routine stops calculation if the number of elements in the result matrix C exceeds the specified value of nzmax.
There is an example on the disk.
dir-> <your install folder>mklexamplesspblassource
file -> dcsr_multiplication.f
A.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - kimjoonshikgmail.com
Thank you for the answer I appreciate, I did not know this function,
by the way, then,for the output c in c = a x b,
how do we determine the size of the array for the result cto allocate memory ?
Don't we need to allocate memory for c when we use the function csrmultcsr ?
Thank you.
Joon.
by the way, then,for the output c in c = a x b,
how do we determine the size of the array for the result cto allocate memory ?
Don't we need to allocate memory for c when we use the function csrmultcsr ?
Thank you.
Joon.
The size of the column indicesand value arrays in the result sparse matrixcan be determined by calling csrmultcsr with request=1. After allocation of the column indices and value arrays, the routine should be called with request 2
"If request=0, the routine performs multiplication, the memory for the output arrays ic, jc, c must be allocated beforehand.
If request=1, the routine computes only values of the array ic of length m + 1, the memory for this array must beallocated beforehand. On exit the value ic(m+1) - 1 is the actual number of the elements in the arrays c and jc.
If request=2, the routine has been called previously with the parameter request=1, the output arrays jc and c are allocated in the calling program and they are of the length ic(m+1)-1 at least."
All the best
Sergey

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