cancel
Showing results for 
Search instead for 
Did you mean: 

Archives Discussions

bubu
Adept II

Maximum 1D array

Is the maximum posible size of an 1D stream just 2^23? Well, I need to allocate a 1D-linear array with almost 384Mb... any idea how to perform this, pls?

 

thx

0 Likes
21 Replies
bubu
Adept II

Maximum 1D array

so... it's not possible then?

0 Likes
ryta1203
Journeyman III

Maximum 1D array

As far as I know it's not possible in Brook+. Have you tried this in CAL?

In Brook+ the max is 8192x8192 elements.
0 Likes
bubu
Adept II

Maximum 1D array

Well I prefer to use brook+ and not CAL because I don't like the idea to work with low-level shaders. Do you know if brook`is going to extend the 1D arrays to, let's say, the full graphics card's VRAM? In CUDA I can allocate a really big 1D array without problems...

0 Likes
bubu
Adept II

Maximum 1D array

I see in the 1.2 docs that the maximum 1D array has 8192 elements ( 64M with virtualisation )... but I need to allocate 300 or 400Mb of linear data...

With CUDA I can use all the VRAM if it's needed ( using device memory pointers )... is there any way to allocate, for example, 500Mb of VRAM in brook+, pls? If not... when is this going to be supported?

0 Likes
udeepta
Staff
Staff

Maximum 1D array

You can allocate a 1D array in C/C++, pass the pointer to a 2D stream in Brook+. Inside the kernel, you can reconstruct the 1D index (index = row*width+column). The maximum 2D array allowed in Brook+ is 8192x8192. We are considering increasing this limit in future releases.

0 Likes
bubu
Adept II

Maximum 1D array

Originally posted by: udeepta@amdWe are considering increasing this limit in future releases.

Yes, please... 64Mb is not enough. I just hope that won't be a hardware limit

 

For a texture 8kx8k can be enough... but, in my case, I need to store a really big tree in VRAM.

0 Likes
udeepta
Staff
Staff

Maximum 1D array

We hear ya.

In the mean time, will your algorithm work if you break the large linear data into a few smaller segments? The performance impact will not be very high. But i agree the limitation is something we could do without.

0 Likes
bubu
Adept II

Maximum 1D array

Originally posted by: udeepta@amd

In the mean time, will your algorithm work if you break the large linear data into a few smaller segments?

 

It's for raytracing a 15M poly model using a kd-tree in the GPU ( I need a total of 700Mb for that... which should be ok using a 1Gb card ). I could be  break the kernels in parts... but it gonna be too difficult, so I think I'll just wait until you remove the 64Mb limitation. I need to polish some things meanwhile.

 

Btw... other question... can be the StreamSDK's arrays virtualized like it's done with the system RAM? For example... imagine the graphics card the user is using has only 512Mb... Can be the other 256Mb I need got from the AGP/PCI memory?

thx.

0 Likes
eduardoschardong
Journeyman III

Maximum 1D array

Is the 8192x8192 a hardware limitation?
If so, there is any possibility of future compilers avoiding it? Like, instead of 8192x8192 floats using 8192x8192 float4 but redirecting the last 2 bits to the corrected position? And/Or using multiple input/ouput streams and using the first bits to choose wich?
0 Likes