Turn on suggestions

Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

- Intel Community
- Software Development SDKs and Libraries
- Intel® oneAPI Math Kernel Library & Intel® Math Kernel Library
- DFTI_UNIMPLEMENTED for 3D real-to-complex transform

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Mute
- Printer Friendly Page

Henry_G_Intel

Employee

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

02-12-2004
03:27 AM

78 Views

DFTI_UNIMPLEMENTED for 3D real-to-complex transform

Hello,

I'm trying to do a 3D real-to-complex DFT using the following code:

SUBROUTINE FFTBRC(C,N,ISN)

USE prec

USE MKL_DFTI

USE prec

USE MKL_DFTI

TYPE (DFTI_DESCRIPTOR), POINTER :: dfti_handle

INTEGER :: status, N(3), ISN

COMPLEX(q) :: C(*)

INTEGER :: status, N(3), ISN

COMPLEX(q) :: C(*)

LOGICAL ::class_error

CHARACTER(DFTI_MAX_MESSAGE_LENGTH) :: error_message

CHARACTER(DFTI_MAX_MESSAGE_LENGTH) :: error_message

status = DftiCreateDescriptor &

(dfti_handle, &

DFTI_DOUBLE, &

DFTI_REAL, 3, N)

DFTI_REAL, 3, N)

if (status .ne. 0) then

error_message = DftiErrorMessage (status)

print*, 'DftiCreateDesriptor ', error_message

endif

status = DftiCommitDescriptor (dfti_handle)

status = DftiComputeForward (dfti_handle, C)

error_message = DftiErrorMessage (status)

print*, 'DftiCreateDesriptor ', error_message

endif

status = DftiCommitDescriptor (dfti_handle)

status = DftiComputeForward (dfti_handle, C)

status = DftiFreeDescriptor (dfti_handle)

RETURN

END

END

The error message returned after the call to DftiCreateDescriptor is DFTI_UNIMPLEMENTED. In case it matters, the input grid is 4 x 4 x 4. I'm using MKL 7.0 beta (l_mkl_b1_7.0.007), the Intel 8.0 Fortran compiler, and Red Hat Linux 7.3.

Can you give an estimate of when the MKL DFTI will be able to do 3D real-to-complex transforms?

Thanks,

Henry

Link Copied

9 Replies

Todd_R_Intel

Employee

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

02-12-2004
06:03 PM

78 Views

Henry,

1D real-to-complex transforms are currently supported and the plan is to implement 2D real-to-complex transforms for the MKL 7.0 gold release. I don't know whatcurrent plans there are to implement the 3D case.

Doesanyone else on the forum have need of a 3D real-to-complex DFT? What sort of applications are making use of these transforms?

Todd

Henry_G_Intel

Employee

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

02-13-2004
12:01 AM

78 Views

Todd,

Bad luck for me. Obviously, I think 3D real-to-complex DFT's are useful. The computational chemistry application that I'm tuning performs 3D real-to-complex transforms. I've also worked on molecular docking applications that perform Fourier correlation using real coordinates. Most of the scientific libraries that I've used have 3D real-to-complex DFT routines.

Henry

Todd_R_Intel

Employee

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

02-13-2004
04:34 PM

78 Views

Perhaps bad luck and perhaps not. The development team is considering this request for support of 3D real-to-complex implementation.

And thanks for the further detail. Anyone else out there looking for 3D real-to-complex DFT routines?

-Todd

heinono1

Beginner

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

04-15-2004
09:08 PM

78 Views

I also need 3D real-to-complex FFT.

Am I correct that 3D real-to-complex FFT is not implemented

on MKL 6.1? I can create a descriptor and commit the descriptor, but the results are just garbage.

Intel_C_Intel

Employee

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

04-16-2004
05:56 PM

78 Views

3D r2c is not implemented in 6.1. Unfortunately the software did not return the correct information.

This will be one of the next areas we give attention to.

Bruce

heinono1

Beginner

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

04-16-2004
07:12 PM

78 Views

Ooops, my bad. My MKL version is 6.1.1.004. The descriptor is committed

alright without error messages, but I cannot make sense of the fft numbers.

I am just curious if there are known problems with 3D r2c DFT in mkl 6.1.1.004.

Thanks,

Olle

Henry_G_Intel

Employee

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

04-19-2004
08:57 PM

78 Views

Hi,

I'm surprised that the call to DftiCreateDescriptor doesn't return DFTI_UNIMPLEMENTED for your 3D r2c.

Can you tell us something about your application? I'm just curious about other algorithms that do 3D r2c transforms.

Thanks,

Henry

heinono1

Beginner

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

04-22-2004
04:20 PM

78 Views

Hi. I do micromagnetic simulations. A quick and easy way to calculate magnetostatic interactions involves using FFT (the equations for the magnetostatic fields are convolutions in real space). Since the quantities are all real it can potentially cut down on memory usage and CPU time by using real2complex FFT. I have implemented the fftw library - the 3D r2c fftw works fine in terms of memory reduction, but the best performance in speed I have obtained is many times slower (!) than using the c2c fft from mkl 6.1.1. This involved various trials using the threaded fftw library (very slow!) or the non-threaded fftw library. My final(?) fix in lieu of intel fixing the multi-dimensional r2c invloved a workaround with temporary storage in complex form to use the mkl c2c fft, then repacking only the independent elements in a real matrix, do the matrix multiplication and then carefully repack the result in a temporary complex array to do the back-transform. The performance in the end is about the same as using the c2c fft but memory usage is reduced (not by 50% but but about 30 - 40%).

Olle

Intel_C_Intel

Employee

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

04-22-2004
11:10 PM

78 Views

Thanks for the explanation on your usage of the 3D real transform. Unfortunately we cannot in the short term be helpful to you. However, we have demand for this feature from several customers and realize the importance of completing this feature.

Bruce

For more complete information about compiler optimizations, see our Optimization Notice.