- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I launched an Memory Error Analysis with Intel Inspector on simple test of the dgemm function and i got this warning: "uninitialized memory access" located on the dgemm call.
Here is my test (really simple !) :
void dgemm_test() { double *A,*B,*C; double alpha, beta; int m,i; m = 10; A = (double*)mkl_malloc((m*m)*sizeof(double),128); B = (double*)mkl_malloc((m*m)*sizeof(double),128); C = (double*)mkl_malloc((m*m)*sizeof(double),128); for(i=0; i<m*m; i++){ A = (double)(rand() % (m*m)) / (double)(m*m); B = (double)(rand() % (m*m)) / (double)(m*m); C = 0.0; } alpha = 1.0; beta = 0.0; cblas_dgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans, m, m, m, alpha, A, m, B, m, beta, C, m); mkl_free(A); mkl_free(B); mkl_free(C); }
Each buffer seems to be initialized... Do I have to be worried about this warning ? Is it an expected behavior ?
My configuration: Intel Inspector XE 2013. MKL: 11.1.2 (32bit mode). CPU: Xeon E5-1620. OS: W7 64bit (SP1).
Thanks in advance for your help !
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
This is a known problem of Intel Inspector. It reports false alarms for some MKL routines.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The problem with partial reports such as yours is that they cannot be verified.
Using the current versions of Intel C (15.0) and MKL (11.2) with the older Inspector 2013, I added a few lines of code to make a complete example as shown below. Note that I have suppressed initialization of C, which should be OK when alpha = 0. I see no reports of uninitialized variables with Inspector XE. However, when I change the value of alpha to a nonzero value, I do get detection of uninitialized variables. Reactivation of the initialization of C made the error go away. All these findings agree with what one expects.
#include <stdio.h> #include <mkl.h> void dgemm_test() { double *A,*B,*C; double alpha, beta; int m,i; m = 10; A = (double*)mkl_malloc((m*m)*sizeof(double),128); B = (double*)mkl_malloc((m*m)*sizeof(double),128); C = (double*)mkl_malloc((m*m)*sizeof(double),128); for(i=0; i<m*m; i++){ A = (double)(rand() % (m*m)) / (double)(m*m); B = (double)(rand() % (m*m)) / (double)(m*m); // C = 0.0; } alpha = 0.0; beta = 1.0; cblas_dgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans, m, m, m, alpha, A, m, B, m, beta, C, m); mkl_free(A); mkl_free(B); mkl_free(C); } main(){ dgemm_test(); }
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
This is a known problem of Intel Inspector. It reports false alarms for some MKL routines.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
btw, the latest version of Inspector ( Intel(R) Inspector XE 2015) doesn't report such sort of problem.

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