Этот вопрос будет использовать scikits.cuda [1] в командной строке Python, но его также можно попытаться выполнить в чистом C/CUDA (что я не пробовал).
Я пытаюсь создать план CUFFT для одномерных комплексных преобразований, которые будут применяться ко многим входным данным (так много пакетов). С Tesla C2050 я делаю следующее
import scikits.cuda.fft as cufft
import numpy as np
p = cufft.Plan((64*1024,), np.complex64, np.complex64, batch=100)
p = cufft.Plan((64*1024,), np.complex64, np.complex64, batch=1000)
p = cufft.Plan((64*1024,), np.complex64, np.complex64, batch=10000) # !!!
Последняя попытка плана вызывает исключение cufftAllocFailed. Если я уменьшу размер преобразования (с 64 КБ), я могу получить пакет из 10 000, но в настоящее время мне нужны преобразования размером 64 КБ.
Мой вопрос: это жесткое ограничение в CUFFT? И если да, то где в документации CUDA [2] или CUFFT [3] указаны ограничения на размер преобразования по сравнению с пакетом (по сравнению с размером?)?
[1] http://scikits.appspot.com/cuda
[2] http://developer.download.nvidia.com/compute/DevZone/docs/html/C/doc/CUDA_C_Programming_Guide.pdf
[3] http://docs.nvidia.com/cuda/pdf/CUDA_CUFFT_Users_Guide.pdf