Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.

Purify errors

mullervki
Beginner
353 Views
Hello,

I'm using MKL on a Windows 32-bit machine. I ran Rational(IBM) Purify on my application and ran into some unexcpected errors as shown below: "Invalid pointer write" and "Uninitialized memory read".

Are these bugs in MKL or is this expected behavior? If expected, could somebody elaborate on them for my benefit?

Thanks.

-Arthur

NOTE: I should add that if I replace the MKL functions by straightforward compilation of the same functions from Netlib then all these errors go away. I guess this is an indication that there is no problem with the application. Of course, everything ran several times slower...

Starting Purify'd C:\\users\\vki\\devtools4.0.2\\src\\vfx\\exam\\exam4.exe at 9/23/2011 13:15:24
Version 7.0.1.0-001 build 11785
Windows 5.1 2600 Service Pack 3 Multiprocessor Free
Instrumented executable: C:\\users\\vki\\devtools4.0.2\\src\\vfx\\exam\\exam4.exe.pure
Working directory: C:\\users\\vki\\devtools4.0.2\\src\\vfx\\exam
Command line arguments: -job modal
Process ID: 0xe40
Thread ID: 0xb08
Starting main
IPW: Invalid pointer write in mkl_blas_p4_dgemm_pst {18 occurrences}
Writing 4 bytes to 0x194e9e30 (4 bytes at 0x194e9e30 illegal)
Address 0x194e9e30 points into an unallocated region of virtual memory
Thread ID: 0xb08
Error location
mkl_blas_p4_dgemm_pst [_p4_dgemm_inner_general_small_t.obj]
mkl_blas_p4_xdgemm [_def_xdswap.obj]
mkl_blas_xdgemm [_xddot_fb.obj]
mkl_blas_dgemm [_ddot.obj]
DGEMM [_ddot.obj]
...
IPW: Invalid pointer write in mkl_blas_p4_dgemm_pst {1902 occurrences}
Writing 4 bytes to 0x194e81b0 (4 bytes at 0x194e81b0 illegal)
Address 0x194e81b0 points into an unallocated region of virtual memory
Thread ID: 0xb08
Error location
mkl_blas_p4_dgemm_pst [_p4_dgemm_inner_general_small_t.obj]
mkl_blas_p4_xdgemm [_def_xdswap.obj]
mkl_blas_xdgemm [_xddot_fb.obj]
mkl_blas_dgemm [_ddot.obj]
DGEMM [_ddot.obj]
...
UMR: Uninitialized memory read in mkl_blas_p4_dgemm_inner_epil_large_1 {16 occurrences}
Reading 8 bytes from 0x0c256a40 (8 bytes at 0x0c256a40 uninitialized)
Address 0x0c256a40 is 228424 bytes into a 252416 byte block at 0x0c21edf8
Address 0x0c256a40 points to a malloc'd block in heap 0x0beb0000
Thread ID: 0xb08
Error location
mkl_blas_p4_dgemm_inner_epil_large_1 [_p4_dgemm_inner_general_large.obj]
mkl_blas_p4_xdgemm [_def_xdswap.obj]
mkl_blas_xdgemm [_xddot_fb.obj]
mkl_blas_dgemm [_ddot.obj]
DGEMM [_ddot.obj]
...
Allocation location
malloc
mkl_serv_allocate
mkl_blas_p4_xdgemm [_def_xdswap.obj]
mkl_blas_xdgemm [_xddot_fb.obj]
mkl_blas_dgemm [_ddot.obj]
DGEMM [_ddot.obj]
...
IPW: Invalid pointer write in mkl_blas_p4_dgemm_pst {336 occurrences}
Writing 4 bytes to 0x19504170 (4 bytes at 0x19504170 illegal)
Address 0x19504170 points into an unallocated region of virtual memory
Thread ID: 0xb08
Error location
mkl_blas_p4_dgemm_pst [_p4_dgemm_inner_general_small_t.obj]
mkl_blas_p4_xdgemm [_def_xdswap.obj]
mkl_blas_xdgemm [_xddot_fb.obj]
mkl_blas_dgemm [_ddot.obj]
DGEMM [_ddot.obj]
...
UMR: Uninitialized memory read in mkl_blas_p4_dgemm_inner_epil_large_1 {2 occurrences}
Reading 8 bytes from 0x0c256a40 (8 bytes at 0x0c256a40 uninitialized)
Address 0x0c256a40 is 228424 bytes into a 252416 byte block at 0x0c21edf8
Address 0x0c256a40 points to a malloc'd block in heap 0x0beb0000
Thread ID: 0xb08
Error location
mkl_blas_p4_dgemm_inner_epil_large_1 [_p4_dgemm_inner_general_large.obj]
mkl_blas_p4_xdgemm [_def_xdswap.obj]
mkl_blas_xdgemm [_xddot_fb.obj]
mkl_blas_dgemm [_ddot.obj]
DGEMM [_ddot.obj]
...
Allocation location
malloc
mkl_serv_allocate
mkl_blas_p4_xdgemm [_def_xdswap.obj]
mkl_blas_xdgemm [_xddot_fb.obj]
mkl_blas_dgemm [_ddot.obj]
DGEMM [_ddot.obj]
...
UMR: Uninitialized memory read in mkl_blas_p4_dgemm_inner_epil_large_1_k4 {2 occurrences}
Reading 8 bytes from 0x0c6ab380 (8 bytes at 0x0c6ab380 uninitialized)
Address 0x0c6ab380 is 242440 bytes into a 272384 byte block at 0x0c670078
Address 0x0c6ab380 points to a malloc'd block in heap 0x0beb0000
Thread ID: 0xb08
Error location
mkl_blas_p4_dgemm_inner_epil_large_1_k4 [_p4_dgemm_inner_general_large.obj]
mkl_blas_p4_xdgemm [_def_xdswap.obj]
mkl_blas_xdgemm [_xddot_fb.obj]
mkl_blas_dgemm [_ddot.obj]
DGEMM [_ddot.obj]
...
Allocation location
malloc
mkl_serv_allocate
mkl_blas_p4_xdgemm [_def_xdswap.obj]
mkl_blas_xdgemm [_xddot_fb.obj]
mkl_blas_dgemm [_ddot.obj]
DGEMM [_ddot.obj]
...
UMR: Uninitialized memory read in mkl_blas_p4_dgemm_inner_epil_large_1_k4 {2 occurrences}
Reading 8 bytes from 0x0c6ab3c0 (8 bytes at 0x0c6ab3c0 uninitialized)
Address 0x0c6ab3c0 is 242504 bytes into a 272384 byte block at 0x0c670078
Address 0x0c6ab3c0 points to a malloc'd block in heap 0x0beb0000
Thread ID: 0xb08
Error location
mkl_blas_p4_dgemm_inner_epil_large_1_k4 [_p4_dgemm_inner_general_large.obj]
mkl_blas_p4_xdgemm [_def_xdswap.obj]
mkl_blas_xdgemm [_xddot_fb.obj]
mkl_blas_dgemm [_ddot.obj]
DGEMM [_ddot.obj]
...
Allocation location
malloc
mkl_serv_allocate
mkl_blas_p4_xdgemm [_def_xdswap.obj]
mkl_blas_xdgemm [_xddot_fb.obj]
mkl_blas_dgemm [_ddot.obj]
DGEMM [_ddot.obj]
...
UMR: Uninitialized memory read in mkl_blas_p4_dgemm_inner_epil_large_1_k4 {1 occurrence}
Reading 8 bytes from 0x0c6abc00 (8 bytes at 0x0c6abc00 uninitialized)
Address 0x0c6abc00 is 244616 bytes into a 272384 byte block at 0x0c670078
Address 0x0c6abc00 points to a malloc'd block in heap 0x0beb0000
Thread ID: 0xb08
Error location
mkl_blas_p4_dgemm_inner_epil_large_1_k4 [_p4_dgemm_inner_general_large.obj]
mkl_blas_p4_xdgemm [_def_xdswap.obj]
mkl_blas_xdgemm [_xddot_fb.obj]
mkl_blas_dgemm [_ddot.obj]
DGEMM [_ddot.obj]
...
Allocation location
malloc
mkl_serv_allocate
mkl_blas_p4_xdgemm [_def_xdswap.obj]
mkl_blas_xdgemm [_xddot_fb.obj]
mkl_blas_dgemm [_ddot.obj]
DGEMM [_ddot.obj]
...
UMR: Uninitialized memory read in mkl_blas_p4_dgemm_inner_epil_large_1_k4 {1 occurrence}
Reading 8 bytes from 0x0c6abc40 (8 bytes at 0x0c6abc40 uninitialized)
Address 0x0c6abc40 is 244680 bytes into a 272384 byte block at 0x0c670078
Address 0x0c6abc40 points to a malloc'd block in heap 0x0beb0000
Thread ID: 0xb08
Error location
mkl_blas_p4_dgemm_inner_epil_large_1_k4 [_p4_dgemm_inner_general_large.obj]
mkl_blas_p4_xdgemm [_def_xdswap.obj]
mkl_blas_xdgemm [_xddot_fb.obj]
mkl_blas_dgemm [_ddot.obj]
DGEMM [_ddot.obj]
...
Allocation location
malloc
mkl_serv_allocate
mkl_blas_p4_xdgemm [_def_xdswap.obj]
mkl_blas_xdgemm [_xddot_fb.obj]
mkl_blas_dgemm [_ddot.obj]
DGEMM [_ddot.obj]
...
Summary of all memory leaks... {0 bytes, 0 blocks}
Exiting with code 0 (0x00000000)
Process time: 66233 milliseconds
Program terminated at 9/23/2011 13:16:41
0 Kudos
1 Reply
barragan_villanueva_
Valued Contributor I
353 Views

Hi,

You know,profiling tools can produce false positive errors beacuse of misunderstanding of generated code.
I know such problems with valgrind when application was compiled with Intel compiler. So, could you please share with us your tescase to analyze these messages.

0 Kudos
Reply