- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
I have trouble getting mkl_?csrmm to output the correct answer to my program. I am wondering if I am using or inputting the correct parameters for what I want to do for the sparse routine. Any assistance would be greatly appreciated.
#include <stdio.h> #include <stdlib.h> #include "mkl.h" #define NNZ 8 #define M 6 #define N 2 #define K 3 /* This program tries to multiply : [5.0 0.0 1.0] [0.0 2.0 0.0] x [5.0 1.0] [0.0 3.0 0.0] [2.0 2.0] [0.0 0.0 1.0] [6.0 6.0] [1.0 0.0 0.0] [2.0 0.0 5.0] */ int main() { char transa = 'n'; MKL_INT m = M; MKL_INT n = N; MKL_INT k = K; float alpha = 1.0; char matdescra[5]; matdescra[0] = 'g'; matdescra[3] = 'f'; float val[NNZ] = { 5.0, 1.0, 2.0, 3.0, 1.0, 1.0, 2.0, 5.0 }; MKL_INT col[NNZ] = { 1, 3, 2, 2, 3, 1, 1, 3 }; MKL_INT ind[7] = { 1, 3, 4, 5, 6, 7, 9 }; float b= { { 5.0 , 1.0 },{ 2.0 , 2.0 },{ 6.0 , 6.0 } }; MKL_INT ldb = K; float beta = 0.0; float c = { { 0.0, 0.0 },{ 0.0, 0.0 },{ 0.0, 0.0 },{ 0.0, 0.0 },{ 0.0, 0.0 },{ 0.0, 0.0 } }; MKL_INT ldc = M; mkl_scsrmm(&transa, &m, &n, &k, &alpha, matdescra, val, col, ind, &(ind[1]), &(b[0][0]), &ldb, &beta, &(c[0][0]), &ldc); int i, j; for (i = 0; i < m; i++) { for (j = 0; j < n; j++) { printf("\n c[%d][%d] = %7.1f", i, j, c ); } } getchar(); return 0; }
Link Copied
2 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
I can see that problem here is in mix of parameters for 0-based and 1-based indexing.
If you're going to use 1-based indexing then you should change matrix layout to Column major, anyway I slightly modified your example to show correct usage for both cases.
Best regards,
Maria
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you so much Maria! These forums are very responsive and I appreciate the help that it gives.
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