2010年4月2日金曜日

JCudaで頓挫

CUDAをJavaから呼び出すライブラリのJCudaを使ってみようと試していますが、
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種類。

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
CUFFT_INVALID_VALUEは出てこないはずなのに…
 ソースも読んでみましたが、
private static native int cufftPlan1dNative(cufftHandle plan, int nx, int type, int batch);
というところであきらめました。
CUDA のドキュメントを見てもcufftPlan1dはCUFFT_INVALID_VALUEは出さないみたいなので、この先を読んでいったところで泥沼っぽい…

0 件のコメント:

コメントを投稿