1

这个问题将在 Python 命令行中使用 scikits.cuda [1],但可以等效地在纯 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 异常。如果我减小变换的大小(从 64K 开始),我可以得到一批 10'000,但目前我需要 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

4

1 回答 1

2

计划中有大约 2^27 个元素的硬性限制。

于 2012-12-06T01:09:38.570 回答