この質問では、Pythonコマンドラインでscikits.cuda [1]を使用しますが、純粋なC / CUDA(私は試していません)でも同様に試すことができます。
多くの入力(非常に多くのバッチ)に適用される1D複合体から複合体への変換のCUFFT計画を作成しようとしています。テスラ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例外が発生します。変換のサイズを(64Kから)減らすと、10000のバッチを取得できますが、現在は64Kサイズの変換が必要です。
私の質問は:これは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