pgk_
Posts: 2
Joined: 2008-01-30

Hi all,

I'm looking at the performance of Sequoia with no use of
external leaf calls. I began in the sgemv example by uncommenting
the sgemv_leaf variant "leaf_generic", instead of the default external
"leaf", in the mapping_ps3.xml file. (I use Fedora 7, SDK 3.0, on PS3).
When I then run the sgemv exe, I receive a runtime assertion error
indicating that N1 != N0. I found the assert call in the generated
file sgemv_leaf.c and tried printing those two values. Indeed, N1 is
4096, and N0 is 2048.

These assertions appear to be checking the array extents of the
parameters supplied to the "sgemv::leaf_generic" task within
sgemv.sq. The extents in question are of the first dimension of
"x", and the second dimension of "A". The task is declared as:

void task sgemv::leaf_generic(in float A[M][N], in float x[N],
inout float y[M],
in float alpha)

So the two values should be equal, to "N".

I also switched back, and put a print in the default external
"leaf", in sgemv_leaf_gcell.c, and again I get 4096 and 2048, and
as it was initially, no error.

Is the error in a function used by a caller of these leaves? Are there
any other suggestions?

Paul



pgk_
Posts: 2
Joined: 2008-01-30

I got rid of the error: I'd changed M and N in main.cc, but hadn't also changed "arraynumelmtprecond" in mapping_ps3.xml. If it's the same as N, sgemv runs fine.



Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.