Lines Matching refs:cufft

18   Mat_CUFFT    *cufft    = (Mat_CUFFT *)A->data;  in MatMult_SeqCUFFT()  local
19 cufftComplex *devArray = cufft->devArray; in MatMult_SeqCUFFT()
20 PetscInt ndim = cufft->ndim, *dim = cufft->dim; in MatMult_SeqCUFFT()
26 if (!cufft->p_forward) { in MatMult_SeqCUFFT()
30 PetscCallCUFFT(cufftPlan1d(&cufft->p_forward, dim[0], CUFFT_C2C, 1)); in MatMult_SeqCUFFT()
33 PetscCallCUFFT(cufftPlan2d(&cufft->p_forward, dim[0], dim[1], CUFFT_C2C)); in MatMult_SeqCUFFT()
36 PetscCallCUFFT(cufftPlan3d(&cufft->p_forward, dim[0], dim[1], dim[2], CUFFT_C2C)); in MatMult_SeqCUFFT()
45 PetscCallCUFFT(cufftExecC2C(cufft->p_forward, devArray, devArray, CUFFT_FORWARD)); in MatMult_SeqCUFFT()
55 Mat_CUFFT *cufft = (Mat_CUFFT *)A->data; in MatMultTranspose_SeqCUFFT() local
56 cufftComplex *devArray = cufft->devArray; in MatMultTranspose_SeqCUFFT()
57 PetscInt ndim = cufft->ndim, *dim = cufft->dim; in MatMultTranspose_SeqCUFFT()
63 if (!cufft->p_backward) { in MatMultTranspose_SeqCUFFT()
67 PetscCallCUFFT(cufftPlan1d(&cufft->p_backward, dim[0], CUFFT_C2C, 1)); in MatMultTranspose_SeqCUFFT()
70 PetscCallCUFFT(cufftPlan2d(&cufft->p_backward, dim[0], dim[1], CUFFT_C2C)); in MatMultTranspose_SeqCUFFT()
73 PetscCallCUFFT(cufftPlan3d(&cufft->p_backward, dim[0], dim[1], dim[2], CUFFT_C2C)); in MatMultTranspose_SeqCUFFT()
82 PetscCallCUFFT(cufftExecC2C(cufft->p_forward, devArray, devArray, CUFFT_INVERSE)); in MatMultTranspose_SeqCUFFT()
92 Mat_CUFFT *cufft = (Mat_CUFFT *)A->data; in MatDestroy_SeqCUFFT() local
95 PetscCall(PetscFree(cufft->dim)); in MatDestroy_SeqCUFFT()
96 if (cufft->p_forward) PetscCallCUFFT(cufftDestroy(cufft->p_forward)); in MatDestroy_SeqCUFFT()
97 if (cufft->p_backward) PetscCallCUFFT(cufftDestroy(cufft->p_backward)); in MatDestroy_SeqCUFFT()
98 PetscCallCUDA(cudaFree(cufft->devArray)); in MatDestroy_SeqCUFFT()
126 Mat_CUFFT *cufft; in MatCreateSeqCUFFT() local
141 PetscCall(PetscNew(&cufft)); in MatCreateSeqCUFFT()
142 (*A)->data = (void *)cufft; in MatCreateSeqCUFFT()
143 PetscCall(PetscMalloc1(ndim + 1, &cufft->dim)); in MatCreateSeqCUFFT()
144 PetscCall(PetscArraycpy(cufft->dim, dim, ndim)); in MatCreateSeqCUFFT()
146 cufft->ndim = ndim; in MatCreateSeqCUFFT()
147 cufft->p_forward = 0; in MatCreateSeqCUFFT()
148 cufft->p_backward = 0; in MatCreateSeqCUFFT()
149 cufft->dim[ndim] = m; in MatCreateSeqCUFFT()
152 PetscCallCUDA(cudaMalloc((void **)&cufft->devArray, sizeof(cufftComplex) * m)); in MatCreateSeqCUFFT()