Skip to content

Commit 7b7dd8b

Browse files
authored
update readme file (#188)
* update readme file * address comments
1 parent 384fcb6 commit 7b7dd8b

File tree

1 file changed

+16
-16
lines changed

1 file changed

+16
-16
lines changed

README.md

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,17 @@
44
[![Conda package with conda-forge channel only](https://github.com/IntelPython/mkl_fft/actions/workflows/conda-package-cf.yml/badge.svg)](https://github.com/IntelPython/mkl_fft/actions/workflows/conda-package-cf.yml)
55
[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/IntelPython/mkl_fft/badge)](https://securityscorecards.dev/viewer/?uri=github.com/IntelPython/mkl_fft)
66

7+
# Introduction
78
`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:
918

1019
```
1120
conda install -c https://software.repos.intel.com/python/conda mkl_fft
@@ -34,22 +43,12 @@ If command above installs NumPy package from the PyPI, please use following comm
3443
Where `<numpy_version>` should be the latest version from https://software.repos.intel.com/python/conda/
3544

3645
---
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).
3749

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.
43-
44-
`mkl_fft` directly supports N-dimensional Fourier transforms.
45-
46-
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:
5352

5453
### complex-to-complex (c2c) transforms:
5554

@@ -84,6 +83,7 @@ numpy.allclose(mkl_res, np_res)
8483
```
8584

8685
---
86+
# Building from source
8787

8888
To build `mkl_fft` from sources on Linux with Intel® OneMKL:
8989
- create a virtual environment: `python3 -m venv fft_env`

0 commit comments

Comments
 (0)