On Fri, Dec 6, 2013 at 12:27 PM, Ahmed Fasih <wuzzyview(a)gmail.com> wrote:
> I ran into a similar issue:
Batch 10000 of 64x1024 complex64 arrays amounts to 5Gb of data, which
wouldn't fit on 2.5Gb memory of C2050 anyway :) Even with C2070 it
probably wouldn't work since it would require at least one temporary
intermediate array of the same size.
> I hypothesize that this is related to the 2^27 "Maximum width for a 1D
> texture reference bound to linear memory" limit that we see in Table 12 of
> the CUDA C Programming Guide
I doubt that CUFFT uses textures internally, I do not see any
advantage in it as compared to the normal global memory. I would guess
it has something to do with grid size limitations or data sizes of
variables used internally for indexing.
Also I don't think that's what happens in Jayanth's case; for him it's
probably just the lack of [free] global memory. 8192x8192 of complex64
is 500Mb, add an output array and one or two temporary ones and you
can easily exceed the capabilities of your video card.
> You should be able to achieve 8096 by 8096 and larger 2D FFTs by performing
> two separate sequentual 1D FFTs, one horizontal and the other vertical. The
> runtimes should nominally be the same (they are for CPU FFTs), and the
> answer will be the same, up to machine precision.
Isn't it how multidimensional FFTs are usually implemented?
I have a NVIDIA 2000 GPU. It has 192 CUDA cores and 1 Gb memory. GB GDDR5
I am trying to calculate fft by GPU using pyfft.
I am able to calculate the fft only upto the array with maximum of 4096 x 4096.
But as soon after I increase the array size, it gives an error message saying:
pycuda._driver.MemoryError: cuMemAlloc failed: out of memory
Can anyone please tell me if this error means that my GPU is not sufficient to calculate this array? Or is it my computer's memory? Or a programming error? What is the maximum array size you can achieve with GPU?
Is there any information of how else can I calculate the huge arrays?
Thank you very much in advance for the help and sorry if it is too preliminary question.