cufftHandle plan = new cufftHandle();で
int planRet = JCufft.cufftPlan1d(plan, size, cufftType.CUFFT_Z2Z, 1);
System.out.println("planRet: " + cufftResult.stringFor(planRes) + "(" + planRet + ")");
planRet: CUFFT_INVALID_VALUE(4)というエラーが戻ってきています。
ドキュメントだと、cufftPlan1dが出す値は以下の6種類。
CUFFT_INVALID_VALUEは出てこないはずなのに…
Return Values ---- CUFFT_SETUP_FAILED CUFFT library failed to initialize. CUFFT_INVALID_SIZE The nx parameter is not a supported size. CUFFT_INVALID_TYPE The type parameter is not supported. CUFFT_ALLOC_FAILED Allocation of GPU resources for the plan failed. CUFFT_SUCCESS CUFFT successfully created the FFT plan. JCUFFT_INTERNAL_ERROR If an internal JCufft error occurred
ソースも読んでみましたが、
private static native int cufftPlan1dNative(cufftHandle plan, int nx, int type, int batch);というところであきらめました。
CUDA のドキュメントを見てもcufftPlan1dはCUFFT_INVALID_VALUEは出さないみたいなので、この先を読んでいったところで泥沼っぽい…