You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
`mkl_fft` started as a part of Intel® Distribution for Python* optimizations to NumPy, and is now being released
8
-
as a stand-alone package. It can be installed into conda environment from Intel's channel using:
9
+
as a stand-alone package. It offers a thin layered interface for the Intel® oneAPI Math Kernel Library (OneMKL) FFT functionality that allows efficient access to native FFT optimizations from a range of NumPy and SciPy functions. As a result, its performance is close to the performance of native C/Intel® OneMKL. The optimizations are provided for real and complex data types in both single and double precisions for in-place and out-of-place modes of operation. For analyzing the performance use [FFT benchmarks](https://github.com/intelpython/fft_benchmark).
10
+
11
+
Thanks to Intel® OneMKL’s flexibility in its supports for arbitrarily strided input and output arrays both one-dimensional and multi-dimensional Fast Fourier Transforms along distinct axes can be performed directly, without the need to copy the input into a contiguous array first. Furthermore, input strides can be arbitrary, including negative or zero, as long as strides remain an integer multiple of array’s item size, otherwise a copy will be made.
12
+
13
+
More details can be found in ["Accelerating Scientific Python with Intel Optimizations"](https://proceedings.scipy.org/articles/shinma-7f4c6e7-00f) from Proceedings of the 16th Python in Science Conference (SciPy 2017).
14
+
15
+
---
16
+
# Installation
17
+
`mkl_fft` can be installed into conda environment from Intel's channel using:
@@ -34,22 +43,12 @@ If command above installs NumPy package from the PyPI, please use following comm
34
43
Where `<numpy_version>` should be the latest version from https://software.repos.intel.com/python/conda/
35
44
36
45
---
46
+
# How to use?
47
+
## `mkl_fft.interfaces` module
48
+
The recommended way to use `mkl_fft` package is through `mkl_fft.interfaces` module. These interfaces act as drop-in replacements for equivalent functions in NumPy and SciPy. Learn more about these interfaces [here](https://github.com/IntelPython/mkl_fft/blob/master/mkl_fft/interfaces/README.md).
37
49
38
-
Since MKL FFT supports performing discrete Fourier transforms over non-contiguously laid out arrays, OneMKL can be directly
39
-
used on any well-behaved floating point array with no internal overlaps for both in-place and not in-place transforms of
40
-
arrays in single and double floating point precision.
41
-
42
-
This eliminates the need to copy input array contiguously into an intermediate buffer.
More details can be found in [SciPy 2017 conference proceedings](https://github.com/scipy-conference/scipy_proceedings/tree/2017/papers/oleksandr_pavlyk).
47
-
48
-
---
49
-
50
-
The `mkl_fft` package offers interfaces that act as drop-in replacements for equivalent functions in NumPy and SciPy. Learn more about these interfaces [here](https://github.com/IntelPython/mkl_fft/blob/master/mkl_fft/interfaces/README.md).
51
-
52
-
While using these interfaces is the easiest way to leverage `mk_fft`, one can also use `mkl_fft` directly with the following FFT functions:
50
+
## `mkl_fft` package
51
+
While using the interfaces module is the recommended way to leverage `mk_fft`, one can also use `mkl_fft` directly with the following FFT functions:
53
52
54
53
### complex-to-complex (c2c) transforms:
55
54
@@ -84,6 +83,7 @@ numpy.allclose(mkl_res, np_res)
84
83
```
85
84
86
85
---
86
+
# Building from source
87
87
88
88
To build `mkl_fft` from sources on Linux with Intel® OneMKL:
89
89
- create a virtual environment: `python3 -m venv fft_env`
0 commit comments