- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I was using random matrix to test some code. I found dgemm gave wrong results sometimes. If I use truncated precision as copied from the console display, the results can be correct again. So I saved the generated matrix to a binary file and attached it (I changed the file extension to .cpp so I could upload it to this post). Could you take a look and let me know what went wrong?
output is incorrect:
A=[
7064610704830808.00000000 -2571117317297868.50000000 371407000938997.87500000
6397257092471370.00000000 -2328238480630291.00000000 336322292936225.12500000
-29483308061538568.00000000 10730250695401230.00000000 -1550022709306368.50000000
-14929918819165514.00000000 5433643044981792.00000000 -784908978650044.00000000
]
B=[
-0.20072837 -0.01530215
-0.57723645 -0.10924951
-0.17790418 -0.46522968
]
Out=[
-2.00000000 -0.53125000
0.27343750 1.50000000
0.81250000 1.12500000
-0.26562500 -2.68750000
]
#include <stdio.h> #include <iostream> #include <fstream> #include <iomanip> #include <mkl.h> using namespace std; void print_matrix( char* desc, MKL_INT m, MKL_INT n, double* a, MKL_INT lda ); int main() { int m=4, n=3,k=2; double * A= new double [m*n]; double * B= new double [n*k]; double * out= new double [m*k]; ifstream infile; infile.open("matrix3.cpp", ios::binary | ios::in); infile.read((char *)&A[0], m*n*sizeof(double)); infile.read((char *)&B[0], n*k*sizeof(double)); infile.close(); cblas_dgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans, m, k, n, 1.0, A, n, B, k, 0.0, out, k); print_matrix("A=[",m,n,A,n); print_matrix("B=[",n,k,B,k); print_matrix("Out=[",m,k,out,k); delete[] A; delete[] B; delete[] out; return 0; } void print_matrix( char* desc, MKL_INT m, MKL_INT n, double* a, MKL_INT lda ) { MKL_INT i, j; printf( "\n %s\n", desc ); for( i = 0; i < m; i++ ) { for( j = 0; j < n; j++ ) printf( " %6.8f", a[i*lda+j] ); printf( "\n" ); } printf( "]\n" ); }
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
Hi arth,
Please see our reply in https://software.intel.com/en-us/forums/intel-math-kernel-library/topic/685034, I will close this post that is same question with above link. Thank you.
Best regards,
Fiona

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