Errors for funtion ssyrk

Errors for funtion ssyrk

fyten1985's picture

I used the funtion ssyrk with the array float [66950*5856].The result matrixis wrong from row 1821 to end.The error like that: the cycle is 4:
row 1821 is same as the right result row 1822.
row 1822 is same as the right result row 1821.
row 1823 and 1824 are right.
When I used the funtion dsyrk with the same array double [66950*5856].The result is right.
Would you tell me what wrong with it and what can i do?

13 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.
Gennady Fedorov (Intel)'s picture
Quoting - fyten1985 I used the funtion ssyrk with the array float [66950*5856].The result matrixis wrong from row 1821 to end.The error like that: the cycle is 4:
row 1821 is same as the right result row 1822.
row 1822 is same as the right result row 1821.
row 1823 and 1824 are right.
When I used the funtion dsyrk with the same array double [66950*5856].The result is right.
Would you tell me what wrong with it and what can i do?

fyten, it's pretty difficult to say ..
is it the latest 10.2 updatate3 version?
It seems to me this is an unknown problem. Can you get the test case for checking ...
--Gennady

fyten1985's picture
Quoting - Gennady Fedorov (Intel)

fyten, it's pretty difficult to say ..
is it the latest 10.2 updatate3 version?
It seems to me this is an unknown problem. Can you get the test case for checking ...
--Gennady

NO,I used the 10.1 version.Have the 10.2 updatate3 version sloved the problem?

Gennady Fedorov (Intel)'s picture
Quoting - fyten1985 Quoting - Gennady Fedorov (Intel)
fyten, it's pretty difficult to say ..
is it the latest 10.2 updatate3 version?
It seems to me this is an unknown problem. Can you get the test case for checking ...
--Gennady

NO,I used the 10.1 version.Have the 10.2 updatate3 version sloved the problem?

i don't know, as i said above, this is an unknown problem for this routine... so that's why i asked the testcase to check the current status..

fyten1985's picture
Quoting - Gennady Fedorov (Intel) i don't know, as i said above, this is an unknown problem for this routine... so that's why i asked the testcase to check the current status..

I have test the funtion with small data as the matrix [2000*100],the result was correct.But with the large data as the matrix [66950*5856].the result was incorrect.All of the two data are random by Matlab.The Matrix [66950*5856] is too large so I can notattached it .So I just attached my test code.

Attachments: 

AttachmentSize
Download MKLtest.cpp1.47 KB
Gennady Fedorov (Intel)'s picture
Quoting - fyten1985 Quoting - Gennady Fedorov (Intel) i don't know, as i said above, this is an unknown problem for this routine... so that's why i asked the testcase to check the current status..

I have test the funtion with small data as the matrix [2000*100],the result was correct.But with the large data as the matrix [66950*5856].the result was incorrect.All of the two data are random by Matlab.The Matrix [66950*5856] is too large so I can notattached it .So I just attached my test code.

Can you elaborate more info about the environment you ran the application:
- what is the CPU type?
- OS?
- Is this ia32 or Intel64 architecture?
- the linking line.
--Gennady

bigknife's picture
Quoting - Gennady Fedorov (Intel) I have got the same results as fyten's. My computer is "Dell PowerEdge 2900III 5U" withXeon 5420 * 2 and 48G Memory. And the OS is MS Windows Server 2003 R2 Enterprise x64 Edition sp2. The C++ compilers are VC++ 2008 and Intel C++ 11.0.061, and the solution platform is x64. At last, the results are equal. I am very sad about it. Who can show me how resolve it? Thanks a lot! bigknife

Can you elaborate more info about the environment you ran the application:
- what is the CPU type?
- OS?
- Is this ia32 or Intel64 architecture?
- the linking line.
--Gennady

fyten1985's picture
Quoting - Gennady Fedorov (Intel)
Can you elaborate more info about the environment you ran the application:
- what is the CPU type?
- OS?
- Is this ia32 or Intel64 architecture?
- the linking line.
--Gennady

The cpu type is INTEL Xeon 5420 * 2.
The os is Windows Server 2003 R2 Enterprise x64 Edition sp2.
This is INTEL@64 architecture.
It linked libiomp5md.lib mkl_em64t.lib.

Gennady Fedorov (Intel)'s picture
Quoting - fyten1985 Quoting - Gennady Fedorov (Intel)
Can you elaborate more info about the environment you ran the application:
- what is the CPU type?
- OS?
- Is this ia32 or Intel64 architecture?
- the linking line.
--Gennady

The cpu type is INTEL Xeon 5420 * 2.
The os is Windows Server 2003 R2 Enterprise x64 Edition sp2.
This is INTEL@64 architecture.
It linked libiomp5md.lib mkl_em64t.lib.

fyten,
"It linked libiomp5md.lib mkl_em64t.lib."
this is not completely right way to link mkl's libraries..
please look at the MKL Linker Adviser to see what libraries are recommended for linking ....
Let me know if any updates..
--Gennady

Gennady Fedorov (Intel)'s picture
Quoting - bigknife Quoting - Gennady Fedorov (Intel) I have got the same results as fyten's. My computer is "Dell PowerEdge 2900III 5U" withXeon 5420 * 2 and 48G Memory. And the OS is MS Windows Server 2003 R2 Enterprise x64 Edition sp2. The C++ compilers are VC++ 2008 and Intel C++ 11.0.061, and the solution platform is x64. At last, the results are equal. I am very sad about it. Who can show me how resolve it? Thanks a lot! bigknife

Can you elaborate more info about the environment you ran the application:
- what is the CPU type?
- OS?
- Is this ia32 or Intel64 architecture?
- the linking line.
--Gennady

Peter,
thanks for letting us know about the problem, but the same question for you ...
How we can reproduce this problem?
Can you give us the testcase with the smallest dataset as you can?
if you get us these data - I will check the problem with the latest MKL v.10.2 Update 3 ( fyi - you use MKL v.10.1)
You can choose the Private thread to provide these data if this is private data..
--Gennady

fyten1985's picture
Quoting - Gennady Fedorov (Intel) fyten,
"It linked libiomp5md.lib mkl_em64t.lib."
this is not completely right way to link mkl's libraries..
please look at the MKL Linker Adviser to see what libraries are recommended for linking ....
Let me know if any updates..
--Gennady

OK,I changed my linker as the adviser.Now It linked mkl_solver_ilp64.lib mkl_intel_ilp64.lib mkl_intel_thread.lib mkl_core.lib.
But the problem still exist.
I had done many tests to found the smallest case.The case that i can found was a matrix [35000*500].I attached it which named floatdata.dat.
Because the result is too large,I can not updata all.I cut the result from Row 10000 to 10499 and save it in the CorrectResult.dat which have attached.
I also updata the NewMKLTest.cpp.
I got a image while I compare the MKLResult with the CorrectResult.(from Row 10000 to 10999)

Attachments: 

Gennady Fedorov (Intel)'s picture

till we will check these data with the latest version of mkl (10.2 Update3),
may I ask you to check the problem without threading libs?
please check with sequential linking mode:
mkl_solver_ilp64_sequential.lib mkl_intel_ilp64.lib mkl_sequential.lib mkl_core.lib

fyten1985's picture
Quoting - Gennady Fedorov (Intel) till we will check these data with the latest version of mkl (10.2 Update3),
may I ask you to check the problem without threading libs?
please check with sequential linking mode:
mkl_solver_ilp64_sequential.lib mkl_intel_ilp64.lib mkl_sequential.lib mkl_core.lib

e...I wait you result if you had checked these data.Could you show it for me?

Login to leave a comment.