- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear customer,
The MKL FFT function for execution's required input datatype is pointer for complex/floating array, not address of pointer. You probably need define the data as MKL_Complex8 * which size is N*N. Please do following work:
MKL_Complex8 *data = (MKL_Complex8*)malloc(N*N*sizeof(MKL_Complex8)); /*MKL_Complex8 **data =(MKL_Complex8 **) malloc(N*sizeof(MKL_Complex8*)); for(k=0; k<N*N; k++){ data= (MKL_Complex8*)malloc(N*sizeof(MKL_Complex8)); }*/ .... /*for(j=0; j<N; j++) { free(data ); }*/ free(data);
You could refer FFT sample to write.
Best regards,
Fiona
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear Fiona,
Thanks for your reply. I have tried it, and it works, but I need to do my computations in parallel, so, I need to each thread has it's own data. I got it that I have to pass array (not multidim array) to the function, but I need to find the way to parallelize it. For instance,
for (int i=0; i<numthreads; i++) DftiComputeForward (FFT, x);
Now, with one pointer, if I do like &x[i*N/numthreads*N] it is not working.
Thanks,
Sem
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Sem,
Please refer this link of sample for parallel computing with one common descriptor/multiple descriptor. Thanks.
Best regards,
Fiona
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page