cancel
Showing results for 
Search instead for 
Did you mean: 

Archives Discussions

Raistmer
Adept II

128x64k 2D array of floats - how to process it?

0 Likes
5 Replies
gaurav_garg
Adept I

A float8 structure should work fine. Brook+ will convert this structure into two seperate float4 CAL buffers and it is similar to using two float4 streams.

8192x8192 limitation applies on the stream. I think we can have execution domain larger than 8192x8192 but I have not tested it.

0 Likes

Thanks a lot!
Hope Brook+ also will do correct CAL buffers merging when I will call stream write() to put results back into host memory

About execution domain - interesting. If this is true it could be used for scatter 2D streams in some algorithms probably...
0 Likes

Hope Brook+ also will do correct CAL buffers merging when I will call stream write() to put results back into host memory


Yes, it does. But, as you can guess it would have some performance overhead because of this merging.

0 Likes

Originally posted by: gaurav.garg

Hope Brook+ also will do correct CAL buffers merging when I will call stream write() to put results back into host memory



Yes, it does. But, as you can guess it would have some performance overhead because of this merging.


Well, some overhead is inevitable it seems...
What I need is:

aaaaaaaaaa (16384 of a)
bbbbbbbbbb (same for b)
.......... (128 such arrays)
zzzzzzzzzzzz
to be splitted and then merged as:

stream1 stream2
aaaaa aaaaa
bbbbb bbbbb
........ + .........
zzzzz zzzzz

EDIT: hm... maybe to process first and second halves as separate streams is even better, it could save one if statement
0 Likes

over 8192 producing error

0 Likes