You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When performing in-place real to hermitian interleaved 2D transforms the memory usage seems to consistently be around 5 times the size of the buffer. For instance for transforming a 8194x8192 buffer so that the buffer size is 256 MB given sizeof(float) = 4 bytes, the VRAM utilization after the transform is ~1500 MB. This is significantly limiting the size of transforms that can be computed.
I understand that the memory usage is likely due to internally allocated buffers, but what is the reasoning for ~5x? If it is not possible to reduce this, is it at the very least possible to predict exactly how much will be used, so the maximum possible transform size can be calculated given memory constraints?
When performing in-place real to hermitian interleaved 2D transforms the memory usage seems to consistently be around 5 times the size of the buffer. For instance for transforming a 8194x8192 buffer so that the buffer size is 256 MB given sizeof(float) = 4 bytes, the VRAM utilization after the transform is ~1500 MB. This is significantly limiting the size of transforms that can be computed.
I understand that the memory usage is likely due to internally allocated buffers, but what is the reasoning for ~5x? If it is not possible to reduce this, is it at the very least possible to predict exactly how much will be used, so the maximum possible transform size can be calculated given memory constraints?
My example plan is created by
And the transform is executed by
clfftEnqueueTransform(planHandle, CLFFT_FORWARD, 1, &queue, 0, NULL, NULL, &buffer, NULL, NULL);
Here is a complete minimal reproducible example:
https://pastebin.com/XPxCmy1g
The text was updated successfully, but these errors were encountered: