cancel
Showing results for 
Search instead for 
Did you mean: 

Archives Discussions

stedon
Journeyman III

simple_matmult sample computes incorrect

running simple_matmult with certain matrix sizes returns a "FAILED" at verify

Hi,

we have an issue with simple_matmult program from the samples package which we cannot explain up to now:

Enabling verification, it turns out, that the results of the matrix-matrix-multiplication by CPU and GPU do not match for certain matrix sizes.

For example, 64x64 and 128x128 always returns a PASSED, while a y-size of 65 or 129 returns a FAILED. This issue does not only depend on one of the sizes: While any x size with y size of 128 returns a PASSED, for y size of 1024 this is not true.

Have you any clue, from what this could arise?

 

Thanks for hints and answers,

Stefan D.

0 Likes
13 Replies

Stedon,
Which version of simple_matmult, which sdk version and which graphics card does this fail on? I do not see any failures for the CAL version or the brook+ version with the upcoming SDK 1.3 on the sizes you reported.

0 Likes

Hi Micah,

we're currently using SDK v1.2.1-beta with a Radeon 3870 Firestream 9170 card on a SuSE Linux station.

Is the version 1.3 already available? Where can I download it?

Thanks,

Stefan D.

0 Likes

Stedon,
SDK 1.3 is schedule for release in sync around the same time as the next Catalyst driver, which should be around 13th of December. The new SDK was announced at Supercomputing 08 as stated here:
http://www.supercomputingonlin...article.php?sid=16532

0 Likes

Thanks, Micah. I will wait and try it with SDK 1.3.

However, I wonder if we are the only one recognized that bug(?) in SDK 1.2.1-beta. Is there anyone out there who can confirm, that simple_matmult is computing incorrect results with SDK 1.2.1-beta? I just want to clarify that it is caused by the SDK and not maybe by a failure of the graphics card or whatsoever.

Thanks,

Stefan D.

0 Likes
rahulgarg
Adept II

stedon can you tell me what flags are you using on the command line so that I can try your experiment on my machine?

(Note : not from AMD).
0 Likes

rahulgarg, thanks for helping.

Following call does the job perfectly and returns a PASSED:
./simple_matmult -e -x 64 -y 64

However, following call returns a FAILED:
./simple_matmult -e -x 65 -y 65

I'm very interested in your results whether you can confirm or not.

Regards,

Stefan D.

0 Likes

hi, stedon

Linux x86-64 (CentOS 5), amdstream-brook-1.2.1_beta-1, Radeon 4870

./simple_matmult -e -x 64 -y 64 : PASSED

./simple_matmult -e -x 64 -y 65 : PASSED

./simple_matmult -e -x 64 -y 129 : PASSED

./simple_matmult -e -x 65 -y 64 : PASSED

./simple_matmult -e -x 129 -y 64 : PASSED

./simple_matmult -e -x 65 -y 129 : PASSED

0 Likes
rahulgarg
Adept II

Thats weird. The -x and -y options dont even change the problem sizes afaik. (These flags were used in earlier SDK i think)
The option to change the problem size are -h and -w on 32-bit linux on SDK 1.2.1 beta. Maybe its different on your system?
This is what happens on my machine :

./simple_matmult -e -h 64 -y 64 : PASSED.
./simple_matmult -e -h 65 -w 65 : This case the sizes are automatically rounded out to be 72x80, 80x72 instead and the test is PASSED.
./simple_matmult -e -x 65 -w 65 : The problem size remains 256x256 (the default) and PASSED.
I am running 32 bit linux, SDK 1.2.1 beta, radeon 4670.



0 Likes
Ceq
Journeyman III

WinXP 64, MSVC 2005, SDK 1.2.1b, Radeon 4850

./simple_matmult -e -x 65 -y 65 : PASSED

./simple_matmult -e -h 65 -w 65 : Error: Invalid command line parameter, h
0 Likes
stedon
Journeyman III

Ceq,

thank you for your answer! rahulgarg really confused me with his "x,y,h,w" parameters. Are there different versions of SDK 1.2.1-beta? In our version, the -h parameter displays the help screen, -w is not a valid parameter. The parameters are parsed by a function from the common files of the SDK, so I really don't understand where these differences come from.

Since 65x65 is working for Ceq, we have to seek for the cause elsewhere.
Can it be a compiler problem?

Thanks for further help,
Stefan D.

0 Likes

The options may have changed. I do not recall what they were before, but for the current release (1.2.1), -h is height of the computation domain, -w is width of the domain, and -? is "help" and shows you all the options.

0 Likes

I think the problem here is a confusion on the two different versions of simple_matmult.
If I remember correctly, the Brook+ simple_matmult uses -x and -y for width and height and the CAL version uses -w and -h for width and height. Stedon, if you can specify which one you are using that will clear up some of this misunderstanding.
0 Likes

Micah, thanks for your answer!

Excuse me for confusion: I talked about the Brook+ sample.

Regards,

Stefan D.

0 Likes